Presentation is loading. Please wait.

Presentation is loading. Please wait.

Aida; Accelerator Integrated Data Access

Similar presentations


Presentation on theme: "Aida; Accelerator Integrated Data Access"— Presentation transcript:

1 Aida; Accelerator Integrated Data Access
Middleware Continued Episode 3; Verdi’s Revenge M. Claussen, R. MacKenzie, R. Sass, H. Shoaee, K. Underwood, G. White Could be pronounced ADA? Now that we have an acronym it might start getting real. May EPICS Collaboration Meeting - Paul Scherrer Institut

2 The Un-classic not-so-thin client with a JVM & XML
In the Last Episode… The Un-classic not-so-thin client with a JVM & XML CDEV CORBA compliant ORB Channel Access CORBA compliant ORB Non-IOC Application Cloud CDEV CORBA compliant ORB Channel Access CDEV CORBA compliant ORB Channel Access IOC Applications May EPICS Collaboration Meeting - Paul Scherrer Institut

3 EPICS Collaboration Meeting - Paul Scherrer Institut
The Current Episode Support get/set/monitor any data from/to any source We’re looking at several Corba Telecom services to support monitors and message logging. Notify Service build on Event service. Can subscribe, filter etc. Not a CA replacement but may allow us to do CA-like monitors. Has a nice GUI that allows you to look at all “Channels” and filters and see what’s happening. May EPICS Collaboration Meeting - Paul Scherrer Institut

4 EPICS Collaboration Meeting - Paul Scherrer Institut
Supporting Ideas Name and schema mapping Data location discovered at runtime. CORBA middleware & services Server resilience (auto reconfigure on server down) API and OPI Language and OS independent Collections, Aliases, Range Names Have supporting databases that does hierarchical and networked-like name resolution. Aorba doesn’t have failover built in yet but there’s a spec and a committee. If we wait long enough it may do most everything. Object Programming I/F. Corba is OO so try to support both. Static (system) and dynamic named collections are important. Pick out pieces of arrays e.g. SECT27:WIRE:[ ].TWISS.MEAS.X..PSI May EPICS Collaboration Meeting - Paul Scherrer Institut

5 Name and Schema Mapping
Gere’s a sample logical record and data it can access. You discover this using the name service which will be hierarchical, collections, regular expressions and a partridge in a pear tree. Each name.attribute{.attribute}0+ maps to a database query May EPICS Collaboration Meeting - Paul Scherrer Institut

6 EPICS Collaboration Meeting - Paul Scherrer Institut
Salient Features Given a name.attribute, AIDA finds the source and appropriate query Uses its own name services Data Location and Query persist/cached (not rediscovered) C++ & Java Bindings Can code as API or OPI As API can have Aida servers that can be used as in a procedural program. May EPICS Collaboration Meeting - Paul Scherrer Institut

7 EPICS Collaboration Meeting - Paul Scherrer Institut
Simple OO Example Class QUAD { private AIDA d; QUAD( string name ) { d = new AIDA(name); } float get( string attribute ) { return d.get(‘’B_desired’’); } float[2][6] getTwiss() { org.omg.CORBA.Any t= d.getAny(‘’Model.Twiss’’); ... QUAD fred(‘’quad:pr04144’’); float bfieldwanted = fred.get(‘’B_desired’’); float twiss[2][6] = fred.getTwiss(); First example is QUAD magnet. The program wants to get both the desired B field of the quad, and its Curant Snyder, or “Twiss” parameters. So first it instantiates a QUAD with its name. The constructor of the QUAD instantiates an AIDA object telling it the name. The AIDA object constructor [d = new AIDA(name) ] does all of the processing to work out which server and service (if we use services) is responsible for the named QUAD. It does as much processing as it can with the information given. Then when an attribute of the quad is wanted the application level QUAD class get() uses the AIDA get() to get the “B_desired” attribute. In this example the attribute the application wants is hard coded, but AIDA supports attribute discovery as one of its basic goals. This example is just for simplicity. The second get shows how we use the CORBA Any system to get an arbitrary type. In this case a 2 dimensional array is requested – the twiss parameters from the example name mapping 2 slides ago). May EPICS Collaboration Meeting - Paul Scherrer Institut

8 EPICS Collaboration Meeting - Paul Scherrer Institut
Where We’re At Have a complete set of requirements. Accessed EPICS & old SLC data via Corba. Java Corba -> JDBC -> Oracle C++ Corba -> ODBC -> Oracle Sample Name & attribute databases with query mapping to get data Have a Java Orb on VMS Testing Notify Service for Monitors Ready to implement something real We’re prototyped all the basic paths. Have a bit more exploring to do and then Aida vs. CDEV Arbitrary hierarchical / networked namespace including aliases, collections etc. Namespace and mapping in Oracle. VMS Java Orb made me a Java believer Interfaces all defined in IDL What’s next? May EPICS Collaboration Meeting - Paul Scherrer Institut

9 EPICS Collaboration Meeting - Paul Scherrer Institut
Cosmic CUD MANAGE CUD DISPLAYS IOC SLC DB Alpha SCP CUD DISPLAY Aida Fighting Mad CUD disease!! Control System Migration Challenge Continuously Updating Displays Current system is a hodgepodge of Old and a Kludged EPICS interface Used heavily in the Control Room OLDs CUDS are hand coded Need to display data from anywhere in the system Uses most of the basic pieces; Monitors, get/put multi database access. CUD DISPLAY Oracle CUD Configuration May EPICS Collaboration Meeting - Paul Scherrer Institut


Download ppt "Aida; Accelerator Integrated Data Access"

Similar presentations


Ads by Google