Managed by UT-Battelle for the Department of Energy Open XAL Open Development of the XAL Accelerator Application Framework Christopher K. Allen Tom Pelaia Oak Ridge National Laboratory
2Managed by UT-Battelle for the Department of Energy Presentation_name XAL Workshop: May 3 – 5, 2010 In May of 2010 SNS sponsored the first workshop with specific emphasis on XAL. – Six institutions were represented Cosylab, ESS, FRIB, GANIL, TRIUMF, and SNS Workshop was oriented toward XAL developers – What changes/features do developers want? – Is there enough common interest (in XAL) to make collaborative development mutually beneficial? – If so, how do we go about it? I discuss the outcome of this meeting and actions following.
3Managed by UT-Battelle for the Department of Energy Background: What is XAL? High-level application framework for accelerator systems –Java –Developed for SNS Hardware configuration and connection –Device oriented –EPICS Channel Access client support Online accelerator physics modeling –Machine synchronized, or historical data, design parameters… Presentation_name Application for monitoring all XAL applications Also ships with a suite of pre-cooked applications
4Managed by UT-Battelle for the Department of Energy XAL in the Control System Hierarchy Accelerator Hardware EPICS ABeans SCiP Hardware Abstraction XAL Matlab Python/Ruby Device Abstraction Control Applications App GUI Scripting/tools
5Managed by UT-Battelle for the Department of Energy XAL Requirements Java: J2SE 6 with JDK Ant 1.7 Subversion 1.6 (Jython 2.1) (JRuby 1.4) Presentation_name
6Managed by UT-Battelle for the Department of Energy XAL Resources For more information For source code svn co xal Presentation_name
7Managed by UT-Battelle for the Department of Energy Open XAL Inception Workshop decided to proceed with collaborative development –Start fresh with new repository and agreed to coding standards –Initial project design and code standards –Identified initial tasks and responsible parties The new code base is to be called “Open XAL” Presentation_name
8Managed by UT-Battelle for the Department of Energy Workshop Summary Open XAL is a (collaborative) effort to standardize XAL –Remove SNS-specific components –Re-factor brittle code –Simplify deployment –Expedite development Open to all developers –Core code is controlled, however. Specifications are available. –Management of site specific code (XAL Extensions) is left to the individual institutions. Open to all users –Source and executable is available via SourceForge Presentation_name
9Managed by UT-Battelle for the Department of Energy Status Six months since workshop –Initial specifications and designs completed and online –Repository, mailing list, and task management are online –So far two institutions (other than SNS) have actively contributed Presentation_name Continuing forward –Code migration has begun –Quarterly (online) meetings
10Managed by UT-Battelle for the Department of Energy Open XAL Design –Repository/Versioning –Code base structure –Task lists –Code standards –Software design Presentation_name
11Managed by UT-Battelle for the Department of Energy Conclusions – Open XAL Collaboration in the continuing development of XAL Consolidate the divergent branches of XAL –Make XAL more general by removing site specific code –Make XAL more versatile with site extensions which other facilities develop SNS committed to providing support Thank you for your attention! Presentation_name XAL SNS J-PARC LANL SLAC
12Managed by UT-Battelle for the Department of Energy Open XAL Project Structure Beginning with well-defined project structure –Core and (site) extensions –Versioning –Code base organization (next slide) Presentation_name
13Managed by UT-Battelle for the Department of Energy Coding Standards Multiple developers –Code must be understood –Documentation is crucial (Javadoc!) Open XAL Core –Must be robust – need quality control –Policies for working with Open XL core Presentation_name Too many rules No rules
14Managed by UT-Battelle for the Department of Energy Open XAL Core Separate user and test branches –Core binary can ship without test code –Test suite mirrors development packages Presentation_name Test suites for code validation (developers) XAL core (users and developers) xalcore.jar xaltest.jar
15Managed by UT-Battelle for the Department of Energy Open XAL Evolution Presentation_name
16Managed by UT-Battelle for the Department of Energy Open XAL Project Hosting –Repository on SourceForge –Subversion is versioning tool Development (Follow example of EPICS Collaboration) –Multi-site –Versioned releases –Core and (site) extensions code branches Presentation_name