160 likes | 380 Views
Open XAL. Open Development of the XAL Accelerator Application Framework. Christopher K. Allen Tom Pelaia Oak Ridge National Laboratory. XAL Workshop: May 3 – 5, 2010. In May of 2010 SNS sponsored the first workshop with specific emphasis on XAL. Six institutions were represented
E N D
Open XAL Open Development of the XAL Accelerator Application Framework Christopher K. Allen Tom Pelaia Oak Ridge National Laboratory
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. Presentation_name
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… Also ships with a suite of pre-cooked applications Application for monitoring all XAL applications Presentation_name
XAL in the Control System Hierarchy App App App App App App Control Applications Matlab Python/Ruby Scripting/tools GUI Device Abstraction XAL Hardware Abstraction EPICS ABeans SCiP Accelerator Hardware
XAL Requirements • Java: J2SE 6 with JDK • Ant 1.7 • Subversion 1.6 • (Jython 2.1) • (JRuby 1.4) Presentation_name
XAL Resources • For more information http://www.ornl.gov/~t6p/Main/XAL.html https://wiki.ornl.gov/sites/xaldocs/default.aspx • For source code svn co https://YourID@xaldev.svn.sourceforge.net/svnroot/xaldev/trunk xal Presentation_name
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
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
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 • Continuing forward • Code migration has begun • Quarterly (online) meetings Presentation_name
Open XAL Design • Repository/Versioning • Code base structure • Task lists • Code standards • Software design Presentation_name
Conclusions – Open XAL 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! SNS J-PARC LANL SLAC Presentation_name
Open XAL Project Structure • Beginning with well-defined project structure • Core and (site) extensions • Versioning • Code base organization (next slide) Presentation_name
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 Too many rules No rules Presentation_name
Open XAL Core • Separate user and test branches • Core binary can ship without test code • Test suite mirrors development packages XAL core (users and developers) Test suites for code validation (developers) xalcore.jar xaltest.jar Presentation_name
Open XAL Evolution Presentation_name
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