the application of corba in a generic data acquisition program

20
The Application of CORBA in a Generic Data Acquisition Program

Upload: eldon

Post on 15-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

The Application of CORBA in a Generic Data Acquisition Program. SRCG Team. Geoff Mant Paul Stephenson Mike Miller Steve Kinder Karen Ackroyd N Vasanthi. Motivation. Construction of Data Acquisition program for a combined technique station. Integration of Unix, PC and VME environments. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Application of CORBA in a Generic Data Acquisition Program

The Application of CORBA in a Generic

Data Acquisition Program

Page 2: The Application of CORBA in a Generic Data Acquisition Program

SRCG Team

Geoff Mant Paul Stephenson Mike Miller Steve Kinder Karen Ackroyd N Vasanthi

Page 3: The Application of CORBA in a Generic Data Acquisition Program

Motivation

Construction of Data Acquisition program for a combined technique station.

Integration of Unix, PC and VME environments. Provide software with a common ‘Look and Feel’

across stations to make set up and data collection easy. Integrating all detectors and ancillary equipment into one interface.

Create “plug and play” components with well defined interfaces using object-oriented programming principles to provide flexibility to cope with future changes.

Provide an interpreter for complicated and rapidly changing experiment protocols

Page 4: The Application of CORBA in a Generic Data Acquisition Program

Schematic

Beam-line Components

Devices

GUI Interpreter

EPICS Devices

Page 5: The Application of CORBA in a Generic Data Acquisition Program

Design Decisions

• UML (Unified Modelling Language) for analysis and design.

• C++ for OS-9 programming.• Java for beam-line components and graphical user

interface (easier to program, large number of built in class libraries, garbage collection, threads, portability).

• CORBA for middleware (Orbacus)• Jython as an interpreter• Allow multiple client access.

Page 6: The Application of CORBA in a Generic Data Acquisition Program

Component Overview

OE Object

GUIABA/App

ADC McLennan:MotorSRS122:Motor

McLennan:Motor

Existing Code

Page 7: The Application of CORBA in a Generic Data Acquisition Program

Why CORBA

• Industry standard supported by the OMG• Provide connectivity between VME, PC and Unix

systems• Orbacus CORBA was chosen for its C++ and Java

flavours and its was FREE or so we thought!• Robust communication, hiding socket programming

and retaining a strongly typed interface. i.e. multiple idl files specifying wide interfaces.

Page 8: The Application of CORBA in a Generic Data Acquisition Program

Features

• Factories for object creation • Name Server for location of objects• Event Server for asynchronous

communication• XML for configuration

Page 9: The Application of CORBA in a Generic Data Acquisition Program

Event Service

Overall Design

ClientClient

Client

OE Server

Object Server

Naming Service

Page 10: The Application of CORBA in a Generic Data Acquisition Program

Naming Service

Application framework

Client

ObjectServer

Table Slit

Page 11: The Application of CORBA in a Generic Data Acquisition Program

Adapter Pattern - Server side

«interface»Temperature

TemperatureImpl

LaudaWaterBath

_OrbacusTemperatureImplBase

+Update()

«interface»IObserver

«datatype»TemperatureEvent

Create AnyInsert the Temperature Event into AnyPublish on the EventService

«interface»IObservable

TemperatureBase

ObservableComponent

Adapter pattern to provide some independence from the middle-ware and also to allow the components to interact as a monolithic system should the need arise.

Page 12: The Application of CORBA in a Generic Data Acquisition Program

Adapter Pattern - Client side

«interface»Temperature

Client

TemperatureAdapter «interface»OrbacusTemperature

StubForOrbacusTemperature

ObservableComponent

«interface»IObservable

+Update()

«interface»IObserver

Create a filter for events with TemperatureEvent datatypeSubscribe to the Event Service with filterMethod inform notifies all IObservers

«interface»Subscriber

The client side adapter contains code to allow the re-connection to the server if this has died and been restarted.

Page 13: The Application of CORBA in a Generic Data Acquisition Program

Creation of Objects

+find() : Findable+addFactory()

Finder

«interface»Findable

+configure()+create()

«interface»Factory

+configure()+create() : Findable

LocalFactoryAdapterFactory

1 0..*

«interface»Temperature

Server StartupParse the xml resource fileCreates a local factorycreate NetServicecreate EventServicecreate an adapter factoryadd local and adapter factories to findercreate the factoryImplconfigure from resource data

+configure()+create()

FactoryImpl

TemperatureImpl

Serial

Page 14: The Application of CORBA in a Generic Data Acquisition Program

Drawbacks

• Cost of Orbacus(Iona) CORBA licence• Now frozen at release 3.1.3• Old OMG CORBA specification• Can’t pass Java objects, although if you know

its only Java to Java serialization is one option.• We have used inheritance based CORBA

which is now problematic on the server side. Tie mechansim would be better but not ideal.

• numerous idl interfaces (pro or con?)• Java multiple inheritance in our design

Page 15: The Application of CORBA in a Generic Data Acquisition Program

• Aligns beamline for data collection.

• OEMove provides a standard tool to allow the control and set up of Optical Elements.

• Easily configurable for different stations.

• One tool meets needs of many projects.

Align Beam-line

Page 16: The Application of CORBA in a Generic Data Acquisition Program

• Standard absorption edge scan interface.

• Will support multiple modes, Angle, KSpace and Fast.

• GUI completely detached from control.

• Scans done via JCLAM (scripting language - python extension).

Xafs

Page 17: The Application of CORBA in a Generic Data Acquisition Program

• Data collection making good progress, tested with Q4 and MAR180 & MAR345 detectors.

• Same GUI independent of detector in use.

• Detector specific bits provided by Detector implementation.

PX Data Collection

Page 18: The Application of CORBA in a Generic Data Acquisition Program

• Configuration of the timer frame generator for multiple frames and profiles

• Detector set-up with memory usage feedback.

• Data output details

NCD Configuration

Page 19: The Application of CORBA in a Generic Data Acquisition Program

• Load, save and execute scripts

Interpreter

Page 20: The Application of CORBA in a Generic Data Acquisition Program

Future

• Another brand of CORBA• Utilise Java offering• RMI over IIOP• Get rid of OS-9 in favour of Linux• SOAP