1 / 20

The Application of CORBA in a Generic Data Acquisition Program

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.

eldon
Download Presentation

The Application of CORBA in a Generic Data Acquisition Program

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Application of CORBA in a Generic Data Acquisition Program

  2. SRCG Team • Geoff Mant • Paul Stephenson • Mike Miller • Steve Kinder • Karen Ackroyd • N Vasanthi

  3. 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

  4. Schematic GUI Interpreter Beam-line Components EPICS Devices Devices

  5. 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.

  6. Existing Code Component Overview ABA/App GUI OE Object ADC McLennan:Motor SRS122:Motor McLennan:Motor

  7. 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.

  8. Features • Factories for object creation • Name Server for location of objects • Event Server for asynchronous communication • XML for configuration

  9. Overall Design Client Client Client Naming Service Event Service OE Server Object Server

  10. Application framework Client Naming Service Table Slit ObjectServer

  11. Adapter Pattern - Server side 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.

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

  13. Creation of Objects

  14. 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

  15. Align Beam-line • 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.

  16. Xafs • 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).

  17. PX Data Collection • 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.

  18. NCD Configuration • Configuration of the timer frame generator for multiple frames and profiles • Detector set-up with memory usage feedback. • Data output details

  19. Interpreter • Load, save and execute scripts

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

More Related