This document describes a possible architecture for physics applications for the LCLS.
- Objective
- Desktop
- Basic Modelling Environment
- Architecture
- Applications
- Tool Summary
- Red Flags
- Required Additions to SLC Control System
- Required Solutions
- Job List
- Questions
- R&D
- Details
- Error Handling, Logging and Viewing
- Glossary
- References
Anchor | ||||
---|---|---|---|---|
|
OBJECTIVE
From the Requirements for High level Software Applications
High-level applications packages refers to the controls software used by physicists and
accelerator operators to:
- tune or optimize the beam,
- to keep the beam running stably in the optimized state,
- monitor performance for long-term optimization
- to diagnose problems with machine performance
- detect, prioritize and notify of fault conditions
...
Anchor | ||||
---|---|---|---|---|
|
DESKTOP
Our target desktop processors will be x86 CPUs running RedHat linux, with the GTK window system (see Details). The executables may be housed on either AFS or NFS filesystems (see Filesystem). Each user (including control room heads) additionally requires their own configuration file area - the precise configuration seen by each head may be unique therefore. This is a feature of XAL and the other desktop technologies we'll use. That configuration file area will be NFS because a long-lived executable (>25hrs - the AFS token lifetime) must be able to write to it at any time.
...
Non-XAL unix based applications in general (eg matlab) can also be developed ahead of the XAL modeling environment using Aida to get R-matrices and Twiss parameters etc from the SLC model environment.
Figure 3
Anchor | ||||
---|---|---|---|---|
|
ARCHITECTURE
This section articulates the specific libraries, packages and programs that will be used to implement the LCLS high level applications.
...
Proposal: develop new applications assuming JFC/Swing. If the first couple are not performing adequately, convert to SWT/Jface. Use Eclipse as a launching platform.
Anchor | ||||
---|---|---|---|---|
|
APPLICATIONS
This section points out likely implementations of each of the applications as they are listed in Requirements for High level Software Applications.
...
Package | Implementation |
---|---|
Fast Feedback | Dealt with elsewhere |
Configuration Control | |
Data Archiver | Exists in SLC for SLC devices ("History"). Data archiver for EPICS in LCLS is under discussion. Paul Chu reports that EPICS archiver itself considered too slow, so SNS use PVLogger. AIDA can presently acquire both SLC and EPICS Archiver data. Propose: when LCLS EPICS archiver is decided, write AIDA server, and implement additions to browser so both sources can be accessed via AIDA |
Error Logging | |
Watchdog |
Anchor | ||||
---|---|---|---|---|
|
TOOL SUMMARY
This section summarises utilities that will be used to develop LCLS applications.
...
Not a good idea to prescribe these for everyone. Three good open source choices for our technology stack are emacs+jdee, Netbeans (including matisse) and the Eclipse IDE. All three include CVS integration.
Anchor | ||||
---|---|---|---|---|
|
RED FLAGS
Some important choices or questions.
...
XAL file generation directly from Oracle. Is there a mechanism to flag items in the oracle db for inclusion in the lattice? Danger is people will edit the Oracle db to say move an item to a new z location or include a dummy bpm, and the lattice will change.
Anchor | ||||
---|---|---|---|---|
|
REQUIRED ADDITIONS TO SLC CONTROL SYSTEM
...
Pulse-id acquisition by Correlation Plots. Presently broken needs to be fixed.
Anchor | ||||
---|---|---|---|---|
|
REQUIRED SOLUTIONS
This section lists functional components of the LCLS modeling applications architecture which for which we need to decide on a vendor:
- Numerical Analysis package, for matrix manipulation and linear algebra. Some classes of XAL extend JAMA 4, this may be sufficient.
- J2EE compliant Application Server. Application Servers include technology for accessing databases (eg oracle) and displaying information to the web. This will be useful for displaying static control data, model information and other slow control configs etc, to the web and to the Integrated Control Program. Suggest Apache Jakarta, plus PHP, Xerces, Xalan, etc.
Anchor | ||||
---|---|---|---|---|
|
JOB LIST
Lists some jobs that might otherwise be forgotten.
- SQL script and other munging to get from Oracle db description of geometry and devices to a lattice description in an XAL input file.
- The XAL tracker. An XAL application which tracks the lattice and produces a 2nd XAL file containing the twiss parameters for each device, plus other per-element parameters.
- Add acceleration and solenoid elements to XAL.
- Check XAL's linear algebra support. Done: it uses JAMA -see ref.
- Create a Skills Matrix for applications, eg, XML and associated technologies (DOM, XSL etc), Oracle and associated technologies (SQL, PHP, persistence).
Anchor | ||||
---|---|---|---|---|
|
QUESTIONS
Verify AFS client for Windows is not workable.Anchor verifyAFSclient verifyAFSclient
Find best performing Windows X11 server for JFC/Swing clients.Anchor bestWindowsX11 bestWindowsX11
How complex is the conversion of Oracle DB to XAL lattice? Does the db contain enough to emit a lattice? Mark Woodley warns that there are probably many things necessary in the XAL lattice which need not be in the DB (marker points), and many things in the DB which should not be in the lattice. This latter class includes things like dummy BPMs, so not simply the case that everything of a given class should be in the lattice. People change the z of things in the DB. May be a good idea to have a "Skeleton" XAL file (maybe processed by xsl/php).Anchor q_dbgeoonly q_dbgeoonly
Verify there is no "KMOD to BDES" requirement?Anchor kmodtobdes kmodtobdes - That is, is there a Lattice Diagnostics requirement for online applications, and a need to keep magnet "fudge factors"?
- Which XAL applications allow one to update the EPICs magnet k-values after a successful model run?
- Does XAL really not model acceleration? If not how is it useful for SNS?
- Verify that XAL does not model a plane coupled system.
- Does XAL offer matrix manipulation, linear algebra and fitting adequate for the LCLS? Ans: yes, uses JAMA.
- How long does XAL take to parse an XAL beamline? It has to build a DOM tree, which can't be negligible. Since that is a requirement of every XAL application at initialization its an important performance bottleneck.
How many beamline descriptions should there be?Anchor q_numbeamlines q_numbeamlines - What is the canonical list of XAL physics apps?
- Does LCLS need SVD based orbit minimization? Is there an orbit minimization in XAL?
Anchor | ||||
---|---|---|---|---|
|
R&D
This section outlines some constrained R&D we should do to check architecture decisions.
...
Eclipse includes two software distribution mechanisms: first requires "pull" (the user initiates the update), 2nd is Java Web Start, which checks for updates at predefined intervals.
Anchor | ||||
---|---|---|---|---|
|
DETAILS
This section gives details behind architectural statements made above.
...
LIPS LCLS integrated physics system
SIPS SLAC integrated/interactive physics system
iSCP Integrated SLAC Control System
SOMA SLAC online modeling applications.
Anchor | ||||
---|---|---|---|---|
|
TECHNOLOGY GLOSSARY
- Oracle: The enterprise db contains static data on devices and their beamline geometry.
- XAL: Existing software which contains a lattice tracker, java bean classes for programs to deal with accelerator devices in an object oriented way, and code for building GUI applications based on Swing.
- XML (see references): A computer language for writing files containing structured data. XML is used by XAL as the language of its input model files. Data in XML is trivially transformed via XSL into other forms, such as HTML for easy display on the web, or other XML files suitable for other programs or putting into a db.
- AIDA (Accelerator Independent Data Access), a Java API to EPICS Channel Access, SLC database device data, BPM and magnet data and control, EPICS and SLC history data, SLC modeling data.
- Err - a platform and language independent (java & c++) error handling framework for creating and logging error messages.
- global message: error or warning text message typically going to some log like cmlog, and viewed by a user through a browser like cmlog browser. A global message is on generated by a front-end computer or an application that thinks it's worth telling the world about. compare to local message
- local message: a message generated by an application that is intended only for viewing by the application's user at that time. Eg "0 is not a permitted number of iterations to average bpm readings".
Anchor | ||||
---|---|---|---|---|
|
REFERENCES
- XAL http://www.sns.gov/APGroup/appProg/xal/xal.htm
- XML entry in Wikipedia http://en.wikipedia.org/wiki/XML
LCLS lattice files http://www-ssrl.slac.stanford.edu/lcls/linac/optics/Anchor ref_latticefiles ref_latticefiles - JAMA http://math.nist.gov/javanumerics/jama/
http://www.diamond.ac.uk/CMSWeb/Downloads/diamond/Events/EPICS/XAL_Applications_Correlator_Framework.pdfAnchor ref_XAL_applications ref_XAL_applications
...