diff options
Diffstat (limited to 'TAO/examples/Simulator/README')
-rw-r--r-- | TAO/examples/Simulator/README | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/TAO/examples/Simulator/README b/TAO/examples/Simulator/README new file mode 100644 index 00000000000..6467abb9637 --- /dev/null +++ b/TAO/examples/Simulator/README @@ -0,0 +1,255 @@ +$Id$ + +Documentation for the Simulator/DOVE demo + +Purposes: 1) To show how the event service can be used to as a medium to + transport monitoring events including data. + 2) To show how objects implemented in Java can access/can be accessed + by TAO objects. + 3) To show the feasability of the DOVE framework as mentioned in + http://www.cs.wustl.edu/~schmidt/dove.html and + http://www.cs.wustl.edu/~schmidt/DOVE_and_LifeCycleService.ps.gz + 4) To serve as a visual demonstration tool for scheduling and event + service configurations and applications. + +Application: Using the Event Service as distribution media, event + consumers and event suppliers are needed. The central + element in the Event Service is a so called, event channel. + The event channel transports events from suppliers to + consumers. Filtering can be activated. + The mapping to DOVE is the following: + Event Channel - DOVE Agent + DOVE Browser + and/or DOVE MIB - Monitor/Event Consumer + Event Supplier - Monitored Application (here + an object supplying recorded scheduling + and dummy information) + Logging Supplier - Monitored Application (here an object supplying + creation times and updating a flag to record + actual EC arrival and dispatching times in + the scheduling information data structure + viewed by the browser) + Dual EC Supplier - Monitored Application (here an object supplying + separate Navigation and Weapons data sets + in separate generating threads, which use + separate push + viewed by the browser) + +Implementation: + The events contain structs with avionics information. + They are generated by the monitored application and are + consumed by the DOVE Browser, a JAVA applet or application running + on a different machine and/or location. The collected metrics are + displayed in the Browser. + + When an event arrives from the event supplier, a consumer inspects + the data field in the event. The field is a CORBA::Any, so + no assumptions can be made about the kind of data in the event. + + A C++ Supplier pushes events containing a + navigation or weapons struct to the Event Service. + The latency and other machine metrics are read from + a file, which contains recorded scheduling information. + The Event Service dispatches the events to any number of + DOVE Browsers/MIBs which are implemented using JAVA/C++. + The DOVE Browser extracts the data of the structs and dispatches + it to various Visualization Components. + + +For more information refer to: + $TAO_ROOT/docs/releasenotes/index.html + + +Requirements: + * C++ compiler + * ACE/TAO environment, + * Visibroker 3.2+ for Java + +!!RELEASE CHANGES: + - the file make.bat has been expanded for use on NT + + - the file ss has been moved one level up and it got + renamed to "start_services". So use it to start the + naming and event service. + + - it is no longer required to start the scheduling service + + - the file make.bat has been expanded and refined for use on NT + The following make targets are defined: + make clean - removes all class files and idl generated java files + make realclean - updates idl files, does a make clean + make vb - makes the browser, using visibroker for java + make vbjava - remakes only the java files using vbjc + make jdk - makes the browser, using jdk + (the demo does not currently work with jdk) + +Parts of the Demo: + + * DOVE Browser (implemented in Java using Visibroker 3.2/3.3 for Java) + + * Event Supplier, can be seen as a monitored object, called + DOVE Application (implemented in C++ using TAO) + + * Logging Supplier, can be seen as a monitored object, called + DOVE Application (implemented in C++ using TAO) - rather than + providing canned simulation data, allows the actual EC arrival and + dispatching information to be recorded in the scheduling data + + * Dual EC Supplier, can be seen as a monitored object, called + DOVE Application (implemented in C++ using TAO) - provides a paired + event and scheduling services for control over event prioritization. + + * DOVE MIB, storing event data on persistent storage and keeping + track of statistical data (implemented in C++ using TAO) + +Files: + Common: + NavWeap.idl - IDL definition of the Weapons and Navigation structures + README - this readme file + + Event Supplier: + (in directory $TAO_ROOT/orbsvcs/tests/Simulator/Event_Supplier/) + DualEC_Sup.cpp - Dual EC Event Supplier + DualEC_Sup.h - Dual EC Event Supplier class definitions + Event_Sup.cpp - Event Supplier + Event_Sup.h - Event Supplier class definition + Logging_Sup.cpp - Event Supplier for EC logging + Logging_Sup.h - Event Supplier for EC logging class definition + Makefile - Event Supplier Makefile + (Event_Con.cpp, Event_Con.h - Event Consumer for testing) + svc.conf - helper file + + DOVEBrowswer: + (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEBrowser/) + AnswerEvent.java - Having my own Events + AnswerListener.java - Listener for these Events + DataHandler.java - Base class for all Data Handlers + DemoCore.java - Core of the Demo to connect Observables + with Observers + DemoObservable.java - Base class for Observables + DoubleVisComp.java - Visualization Component + (will be a JavaBean) for Doubles + DOVEBrowser.java - Wrapper around DemoCore + DOVEBrowserApplet.java - Applet wrapper around DemoCore + MTQueue.java - synchronized queue for multi-threaded access + MTDataHandlerAdapter.java - uses the Adapter and Active Object + patterns to provide early demuxing + of ORB upcalls onto multiple + synchronized queues managed by + data handler threads + NS_Resolve.java - Resolving the inital reference + to the Naming Service + NavWeapDataHandler.java - Specialized Data Handler for + Navigation and Weapons data + NavigationVisComp.java - Visualization Component + (... JavaBean) for Navigation data + ObservablesDialog.java - Dialog window for connecting + Observables with OBservers + Properties.java - constant definitons + PushConsumer.java - Event Service Push Consumer + PushConsumerFactory.java - Factory for the Consumer + Queue.java - Queue for the DoubleVisComp + VisComp.java - Base class for the Visualization Components + WeaponsVisComp.java - Visualization Component for Weapons + + + DOVE MIB: + (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEMIB/) + DOVEMIB.[cpp,h] - Core routines, connection to the + Event Channel + Node.[cpp,h] - Nodes used by the AnyAnalyser + AnyAnalyser.[cpp,h] - Anaylser for CORBA anys, storing the + contained types in persistent storage + NodeVisitor.h - base class definition of a Visitor + PrintVisistor.[cpp,h] - Able to print a given tree + of type nodes, which is + generated by the Any analyser + + +Compiling: + Common: + Be sure that you have _not_ built with + TAO_LACKS_EVENT_CHANNEL_ANY enabled. + + And, be sure that the following are built: + + "compile $TAO_ROOT/orbsvcs/orbsvcs" + "compile $TAO_ROOT/orbsvcs/Event_Service" + "compile $TAO_ROOT/orbsvcs/Naming_Service" + "compile $TAO_ROOT/orbsvcs/Scheduling_Service" + + UNIX platforms: + + Then, just run "make" in top level Simulator + directory. The DOVEBrowser requires VisiJava's + idl2java and vbjc. If they are not on your PATH, + or in the default location specified in + DOVEBrowser/Makefile, you'll have to specify the + location in the "make" invocation. For example: + + make VISIJAVA_BIN=/usr/local/VisiJava-3.2 + + NT: + Open the Event_Sup.dsw workspace found in the + Event_Supplier directory in MSVC++ 5.0+ and build + the Event_Sup, Logging_Sup, and DualEC_Sup projects. + + From a console window, change to the DOVEBrowser + directory and run "make vb" to build the browser using + Visibroker. The first time you do this, you will need to + run "make setup" to copy the correct files into the directory. + You may also want to do a "make realclean" each time you + rebuild in case there were changes to IDL files. + +Starting: + + Start in the following order on different ORB ports: + * Naming Service + * Event Service + + You can use "start_services" on Unix machines. The + script is located in $TAO_ROOT/orbsvcs/tests. + + Event Supplier (simulation data): + Event_Sup -f MLF.dat -m 1000 + + // -m 1000 for 1000 events sent by the supplier + // -f MLF.dat to read scheduling data from this file as input + + + Logging Supplier (live latency and latency jitter data): + Logging_Sup -f MLF.dat -m 1000 + + // -m 1000 for 1000 events sent by the supplier + // -f MLF.dat to read operation names from this file as input + + + Dual EC Supplier (live latency and jitter data over two channels): + DualEC_Sup -f MLF.dat -m 1000 + + // -m 1000 for 1000 events sent by the supplier + // -f MLF.dat to read operation names from this file as input + + DOVE Browser: + vbj DOVEBrowser + (also supported: vbj DOVEBrowser -nameserviceior <IOR> + vbj DOVEBrowser -nameserviceport <port> + vbj DOVEBrowser -dualECdemo) + + or + + gatekeeper + cd /visigenic/vbroker/lib + jar xf vbjorb.jar + jar xf vbjtools.jar + "setting the Naming Service IOR in the DOVEBrowser.html file" + appletviewer DOVEBrowser.html + + + + DOVE MIB: + DOVEMIB -f myfile -m 100 + + // -m 100 for storing the next 100 events + // -f <name of the file in which it will be stored> + |