Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This document describes a possible architecture for physics applications for the LCLS.

  1. Objective
  2. Desktop
  3. Basic Modelling Environment
  4. Architecture
  5. Applications
  6. Tool Summary
  7. Red Flags
  8. Required Additions to SLC Control System
  9. Required Solutions
  10. Job List
  11. Questions
  12. R&D
  13. Details
  14. Error Handling, Logging and Viewing
  15. Glossary
  16. References

Anchor
obj
obj

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

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

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

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

See Error Handling, Logging and Viewing below

Watchdog

Anchor
tools
tools

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

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

REQUIRED ADDITIONS TO SLC CONTROL SYSTEM

...

Pulse-id acquisition by Correlation Plots. Presently broken needs to be fixed.

Anchor
solutions
solutions

REQUIRED SOLUTIONS

This section lists functional components of the LCLS modeling applications architecture which for which we need to decide on a vendor:

  1. Numerical Analysis package, for matrix manipulation and linear algebra. Some classes of XAL extend JAMA 4, this may be sufficient.
  2. 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
jl
jl

JOB LIST

Lists some jobs that might otherwise be forgotten.

  1. SQL script and other munging to get from Oracle db description of geometry and devices to a lattice description in an XAL input file.
  2. 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.
  3. Add acceleration and solenoid elements to XAL.
  4. Check XAL's linear algebra support. Done: it uses JAMA -see ref.
  5. Create a Skills Matrix for applications, eg, XML and associated technologies (DOM, XSL etc), Oracle and associated technologies (SQL, PHP, persistence).

Anchor
qs
qs

QUESTIONS

  1. Anchor
    verifyAFSclient
    verifyAFSclient
    Verify AFS client for Windows is not workable.
  2. Anchor
    bestWindowsX11
    bestWindowsX11
    Find best performing Windows X11 server for JFC/Swing clients.
  3. Anchor
    q_dbgeoonly
    q_dbgeoonly
    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).
  4. Anchor
    kmodtobdes
    kmodtobdes
    Verify there is no "KMOD to BDES" requirement?
    1. That is, is there a Lattice Diagnostics requirement for online applications, and a need to keep magnet "fudge factors"?
    2. Which XAL applications allow one to update the EPICs magnet k-values after a successful model run?
  5. Does XAL really not model acceleration? If not how is it useful for SNS?
  6. Verify that XAL does not model a plane coupled system.
  7. Does XAL offer matrix manipulation, linear algebra and fitting adequate for the LCLS? Ans: yes, uses JAMA.
  8. 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.
  9. Anchor
    q_numbeamlines
    q_numbeamlines
    How many beamline descriptions should there be?
  10. What is the canonical list of XAL physics apps?
  11. Does LCLS need SVD based orbit minimization? Is there an orbit minimization in XAL?

Anchor
rnd
rnd

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
details

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

TECHNOLOGY GLOSSARY

  1. Oracle: The enterprise db contains static data on devices and their beamline geometry.
  2. 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.
  3. 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.
  4. 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.
  5. Err - a platform and language independent (java & c++) error handling framework for creating and logging error messages.
  6. 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
  7. 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
refs
refs

REFERENCES

  1. XAL http://www.sns.gov/APGroup/appProg/xal/xal.htm
  2. XML entry in Wikipedia http://en.wikipedia.org/wiki/XML
  3. Anchor
    ref_latticefiles
    ref_latticefiles
    LCLS lattice files http://www-ssrl.slac.stanford.edu/lcls/linac/optics/
  4. JAMA http://math.nist.gov/javanumerics/jama/
  5. Anchor
    ref_XAL_applications
    ref_XAL_applications
    http://www.diamond.ac.uk/CMSWeb/Downloads/diamond/Events/EPICS/XAL_Applications_Correlator_Framework.pdf

...