Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / examples / Simulator / README
blob4dc43385061bef6ba773e701f422ba392ff1cfa6
3 Documentation for the Simulator/DOVE demo
5 Purposes: 1) To show how the event service can be used to as a medium to
6           transport monitoring events including data.
7           2) To show how objects implemented in Java can access/can be accessed
8           by TAO objects.
9           3) To show the feasability of the DOVE framework as mentioned in
10           http://www.cs.wustl.edu/~schmidt/dove.html and
11           http://www.cs.wustl.edu/~schmidt/DOVE_and_LifeCycleService.ps.gz
12           4) To serve as a visual demonstration tool for scheduling and event
13           service configurations and applications.
15 Application: Using the Event Service as distribution media, event
16              consumers and event suppliers are needed. The central
17              element in the Event Service is a so called, event channel.
18              The event channel transports events from suppliers to
19              consumers. Filtering can be activated.
20              The mapping to DOVE is the following:
21              Event Channel -    DOVE Agent
22              DOVE Browser
23              and/or DOVE MIB -  Monitor/Event Consumer
24              Event Supplier -   Monitored Application (here
25                                 an object supplying recorded scheduling
26                                 and dummy information)
27              Logging Supplier - Monitored Application (here an object supplying
28                                 creation times and updating a flag to record
29                                 actual EC arrival and dispatching times in
30                                 the scheduling information data structure
31                                 viewed by the browser)
32              Dual EC Supplier - Monitored Application (here an object supplying
33                                 separate Navigation and Weapons data sets
34                                 in separate generating threads, which use
35                                 separate push
36                                 viewed by the browser)
38 Implementation:
39              The events contain structs with avionics information.
40              They are generated by the monitored application and are
41              consumed by the DOVE Browser, a JAVA applet or application running
42              on a different machine and/or location. The collected metrics are
43              displayed in the Browser.
45              When an event arrives from the event supplier, a consumer inspects
46              the data field in the event. The field is a CORBA::Any, so
47              no assumptions can be made about the kind of data in the event.
49              A C++ Supplier pushes events containing a
50              navigation or weapons struct to the Event Service.
51              The latency and other machine metrics are read from
52              a file, which contains recorded scheduling information.
53              The Event Service  dispatches the events to any number of
54              DOVE Browsers/MIBs which are implemented using JAVA/C++.
55              The DOVE Browser extracts the data of the structs and dispatches
56              it to various Visualization Components.
59 For more information refer to:
60         $TAO_ROOT/docs/releasenotes/index.html
63 Requirements:
64            * C++ compiler
65            * ACE/TAO environment,
66            * Visibroker 3.2+ for Java
68 !!RELEASE CHANGES:
69         - the file make.bat has been expanded for use on NT
71         - the file ss has been moved one level up and it got
72           renamed to "start_services". So use it to start the
73           naming and event service.
75         - it is no longer required to start the scheduling service
77         - the file make.bat has been expanded and refined for use on NT
78           The following make targets are defined:
79             make clean - removes all class files and idl generated java files
80             make realclean - updates idl files, does a make clean
81             make vb - makes the browser, using visibroker for java
82             make vbjava - remakes only the java files using vbjc
83             make jdk - makes the browser, using jdk
84                        (the demo does not currently work with jdk)
86 Parts of the Demo:
88         * DOVE Browser (implemented in Java using Visibroker 3.2/3.3 for Java)
90         * Event Supplier, can be seen as a monitored object, called
91           DOVE Application (implemented in C++ using TAO)
93         * Logging Supplier, can be seen as a monitored object, called
94           DOVE Application (implemented in C++ using TAO) - rather than
95           providing canned simulation data, allows the actual EC arrival and
96           dispatching information to be recorded in the scheduling data
98         * Dual EC Supplier, can be seen as a monitored object, called
99           DOVE Application (implemented in C++ using TAO) - provides a paired
100           event and scheduling services for control over event prioritization.
102         * DOVE MIB, storing event data on persistent storage and keeping
103           track of statistical data (implemented in C++ using TAO)
105 Files:
106         Common:
107         NavWeap.idl - IDL definition of the Weapons and Navigation structures
108         README - this readme file
110         Event Supplier:
111           (in directory  $TAO_ROOT/orbsvcs/tests/Simulator/Event_Supplier/)
112         DualEC_Sup.cpp - Dual EC Event Supplier
113         DualEC_Sup.h   - Dual EC Event Supplier class definitions
114         Event_Sup.cpp - Event Supplier
115         Event_Sup.h   - Event Supplier class definition
116         Logging_Sup.cpp - Event Supplier for EC logging
117         Logging_Sup.h   - Event Supplier for EC logging class definition
118         Makefile      - Event Supplier Makefile
119         (Event_Con.cpp, Event_Con.h - Event Consumer for testing)
120         svc.conf - helper file
122         DOVEBrowswer:
123           (in directory  $TAO_ROOT/orbsvcs/tests/Simulator/DOVEBrowser/)
124                 AnswerEvent.java  - Having my own Events
125                 AnswerListener.java - Listener for these Events
126                 DataHandler.java  - Base class for all Data Handlers
127                 DemoCore.java - Core of the Demo to connect Observables
128                                 with Observers
129                 DemoObservable.java - Base class for Observables
130                 DoubleVisComp.java  - Visualization Component
131                                       (will be a JavaBean) for Doubles
132                 DOVEBrowser.java - Wrapper around DemoCore
133                 DOVEBrowserApplet.java - Applet wrapper around DemoCore
134                 MTQueue.java - synchronized queue for multi-threaded access
135                 MTDataHandlerAdapter.java - uses the Adapter and Active Object
136                                             patterns to provide early demuxing
137                                             of ORB upcalls onto multiple
138                                             synchronized queues managed by
139                                             data handler threads
140                 NS_Resolve.java  - Resolving the inital reference
141                                    to the Naming Service
142                 NavWeapDataHandler.java  - Specialized Data Handler for
143                                            Navigation and Weapons data
144                 NavigationVisComp.java - Visualization Component
145                                          (... JavaBean) for Navigation data
146                 ObservablesDialog.java - Dialog window for connecting
147                                          Observables with OBservers
148                 Properties.java - constant definitons
149                 PushConsumer.java - Event Service Push Consumer
150                 PushConsumerFactory.java - Factory for the Consumer
151                 Queue.java - Queue for the DoubleVisComp
152                 VisComp.java - Base class for the Visualization Components
153                 WeaponsVisComp.java - Visualization Component for Weapons
156         DOVE MIB:
157           (in directory  $TAO_ROOT/orbsvcs/tests/Simulator/DOVEMIB/)
158                 DOVEMIB.[cpp,h] - Core routines, connection to the
159                                   Event Channel
160                 Node.[cpp,h] - Nodes used by the AnyAnalyser
161                 AnyAnalyser.[cpp,h] - Anaylser for CORBA anys, storing the
162                                       contained types in persistent storage
163                 NodeVisitor.h - base class definition of a Visitor
164                 PrintVisistor.[cpp,h] - Able to print a given tree
165                                         of type nodes, which is
166                                         generated by the Any analyser
169 Compiling:
170         Common:
171                 Be sure that you have _not_ built with
172                 TAO_LACKS_EVENT_CHANNEL_ANY enabled.
174                 And, be sure that the following are built:
176                 "compile $TAO_ROOT/orbsvcs/orbsvcs"
177                 "compile $TAO_ROOT/orbsvcs/Event_Service"
178                 "compile $TAO_ROOT/orbsvcs/Naming_Service"
179                 "compile $TAO_ROOT/orbsvcs/Scheduling_Service"
181         UNIX platforms:
183                 Then, just run "make" in top level Simulator
184                 directory.  The DOVEBrowser requires VisiJava's
185                 idl2java and vbjc.  If they are not on your PATH,
186                 or in the default location specified in
187                 DOVEBrowser/Makefile, you'll have to specify the
188                 location in the "make" invocation.  For example:
190                   make VISIJAVA_BIN=/usr/local/VisiJava-3.2
192         NT:
193                 Open the Event_Sup.dsw workspace found in the
194                 Event_Supplier directory in MSVC++ 5.0+ and build
195                 the Event_Sup, Logging_Sup, and DualEC_Sup projects.
197                 From a console window, change to the DOVEBrowser
198                 directory and run "make vb" to build the browser using
199                 Visibroker.  The first time you do this, you will need to
200                 run "make setup" to copy the correct files into the directory.
201                 You may also want to do a "make realclean" each time you
202                 rebuild in case there were changes to IDL files.
204 Starting:
206         Start in the following order on different ORB ports:
207                 * Naming Service
208                 * Event Service
210                 You can use "start_services" on Unix machines. The
211                 script is located in $TAO_ROOT/orbsvcs/tests.
213         Event Supplier (simulation data):
214                 Event_Sup -f MLF.dat -m 1000
216                 // -m 1000 for 1000 events sent by the supplier
217                 // -f MLF.dat to read scheduling data from this file as input
220         Logging Supplier (live latency and latency jitter data):
221                 Logging_Sup -f MLF.dat -m 1000
223                 // -m 1000 for 1000 events sent by the supplier
224                 // -f MLF.dat to read operation names from this file as input
227         Dual EC Supplier (live latency and jitter data over two channels):
228                 DualEC_Sup -f MLF.dat -m 1000
230                 // -m 1000 for 1000 events sent by the supplier
231                 // -f MLF.dat to read operation names from this file as input
233         DOVE Browser:
234                 vbj DOVEBrowser
235                 (also supported: vbj DOVEBrowser -nameserviceior <IOR>
236                                  vbj DOVEBrowser -nameserviceport <port>
237                                  vbj DOVEBrowser -dualECdemo)
239                 or
241                 gatekeeper
242                 cd /visigenic/vbroker/lib
243                 jar xf vbjorb.jar
244                 jar xf vbjtools.jar
245                 "setting the Naming Service IOR in the DOVEBrowser.html file"
246                 appletviewer DOVEBrowser.html
250         DOVE MIB:
251                 DOVEMIB -f myfile -m 100
253                 // -m 100 for storing the next 100 events
254                 // -f <name of the file in which it will be stored>