An Engineering Editor Tool Based on the SOA Application Framework ...

5 downloads 20496 Views 157KB Size Report
cess communication and the widespread cross-platform application framework for desktop and embedded development QT by Trolltech Inc. In addition to the ... built. To each cloned Property an ICE-Bridge will be attached. Both the publisher ...
Astronomical Data Analysis Software and Systems XVIII c 2009 ASP Conference Series, Vol. 411, D. Bohlender, D. Durand and P. Dowler, eds.

An Engineering Editor Tool Based on the SOA Application Framework of the LINC-NIRVANA LBT Interferometer Juergen Berwein, Florian Briegel, Frank Kittmann, Alexey Pavlov, and Wolfgang Gaessler Max Planck Institute for Astronomy, Heidelberg, Germany Abstract. LINC-NIRVANA is a German-Italian Fizeau (imaging) interferometer for the Large Binocular Telescope (LBT) on Mt. Graham in Arizona, U.S.A.. During the development of LINC-NIRVANA (LN) software a flexible application framework for high performance service-oriented architecture (SOA) based systems was needed. In this paper we present the current development status of this framework, which was realized at the Max Planck Institute for Astronomy in Heidelberg, Germany.

1.

Introduction

The LBT interferometer LINC-NIRVANA requires high-performance distributed instrument control software, which not only supports the management of simple data-type-based status and configuration, but also the management of complex ones such as vectors and image data. Therefore a flexible and extendable framework for service-oriented architecture (SOA) based systems was needed. Our framework is based on the the middleware called ICE by ZeroC Inc. for interprocess communication and the widespread cross-platform application framework for desktop and embedded development QT by Trolltech Inc. In addition to the core framework an easily configurable engineering called Dr. Greenthumb (see Section 3.) and an observation support tool called b5 (see Section 4.) was developed, which enables instrument engineers or observers to supervise and interact with multiple services within a distributed environment. 2.

Components and Interaction

The framework consists of the following components as seen in Figure 1. • Joint instances of Joints are arranged in a double linked out-tree structure. They represent the hierarchical data structure within the distributed application of LINC-NIRVANA. • Properties are data containers which can be attached to a Joint. They are weak typed, so that any kind of data type which is supported by our framework can be placed into them. • ICE-Bridges provide an interface to exchange data over the network by using the object-oriented middleware ICE. An instance of a Bridge can be connected to other ICE-Bridges to synchronize Property data. 289

290

Berwein et al.

Figure 1.: Interaction Sequence shows how two services connect and synchronize data. The sequence is described in detail in Sections 2.1. and 2.2.

• QT-Bridges are used for automatic GUI updates. QT-Bridges act slightly different than ICE-Bridges, because they are always only connected to a Property of the publisher or the subscriber. Because of this, a QT-Bridge is just needed locally. • Actors are objects, which can be attached to a Property. The processing method of the Actor is triggered before the actual setting of the data is performed. Within the object user defined actions can take place. 2.1.

Publisher Activities

1. The publisher creates a new Joint node inside the local process. 2. The publisher provides a certain node of its Joint tree through a common remote interface. 3. During distribution, to each Property of this subtree an ICE-Bridge gets attached. When a subscriber connects, the data structure of the requested subnode is serialized and sent through a common interface to the subscriber. 4. Whenever a Property value is changed the new data is sent through the attached ICE-Bridge to all subscribers. 2.2.

Subscriber Activities

1. The subscriber creates a new Joint node, like at the publisher side. 2. The subscriber connects over a common remote interface to a publisher’s Joint. The serialized publisher’s subtree is sent to the subscriber. 3. A clone of the publisher’s subtree which was sent during connection is built. To each cloned Property an ICE-Bridge will be attached. Both the publisher and subscriber exchange their ICE-Bridge remote interfaces to send data in both directions. 4. When the Property value is changed the new value is pushed through the publisher’s ICE-Bridge. Through a local QT-Bridge an automatic GUIElement update with the new value can be achieved.

An Engineering Editor Tool 3.

291

Dr. Greenthumb

Dr. Greenthumb is a GUI Application to display, edit and analyze configuration data provided by distributed services. It is used for several engineering tasks, like displaying motor positions in a plot. The application is able to connect to multiple distributed services which provides information in the tree structure described above.

Figure 2.:

The GUI application is able to display and log distributed data. Attached actors are used to perform actions on certain data nodes. As shown in Figure 2 the GUI includes: • Plot Buffer Display: The Plot Buffer Display enables the user to temporarily store Property values of a certain Property into a buffer. The buffer content can be displayed in a curve, exported or printed. • Service Locater: The Service Locater is used to find distributed services in the network. By selecting a listed service and connecting to it, the distributed configuration tree is added to the config view of Dr. Greenthumb. • Property Attributes: To each Property additional parameters can be added like units, precision etc. 4.

b5

The idea for yet another display tool was to build it as a service-oriented architecture. The graphical layout and most of the functionality of the display tool b5 (e.g. ability to handle and display FITS images, image operations such as

292

Berwein et al.

zoom, pan, colormapping, cut levels, WCS support, etc.) was inspired by the tools DS9 and Skycat.

Figure 3.: The b5 display tool includes the connection management to instrument services, plug-in interfaces to the graphical display for user interaction and monitoring, and a plug-in interface to seamlessly integrate widgets for controlling and monitoring the instrument and data pipelines.

As shown in Figure 3 the b5 application includes: • CameraService Propertytree: Property Tree (Joint) with the configuration and runtime parameters for the CameraService. • CameraService Widget: Zoomed Toolbarwidget for the Camera Service connected to the Propertytree through an Ice-Bridge. • b5 Displaytool: b5 connected to a simple CameraService, with toolbar widgets for the Camera-, Temperature- and Fitswriter-Service. There is also the “on-the-fly” star search in the main view enabled, drawing a rectangle if the cursor is near a star.

Suggest Documents