SOFTWARE COMPONENTS DEPLOYMENT REPOSITORY STRUCTURE TEST SUITES XAL Version 2 Christopher K. Allen, ORNL
Outline: XAL Version 2 10/14/2007 XAL Meeting - ICALEPCS Motivation 2. Development Strategy 3. Version 2 Architecture 1. Installation 2. Components 3. Repository structure 4. Test Suites 5. Summary 6. Open Issues
XAL Version 1 XAL Version 2 1. Motivation Many new features and capabilities have been added to XAL since its original design XAL is getting big Not all capabilities fit naturally into the original design Multi-site development(?) Deployment is getting complicated 3 rd party software New Architecture to supported the evolved framework XAL2 "Engineers believe that if it ain't broke, it doesn't have enough features yet." — Scott Adams. 10/14/ XAL Meeting - ICALEPCS 2007
2. XAL 2 Development Plan 10/14/2007 XAL Meeting - ICALEPCS Version 2 Development Maintain working “operational” version Migrate/develop XAL 2 concurrently into different repository New installations from XAL 2 repository operation migration Working Repository (Version 1) XAL Development Repository (Version 2) XAL
5 3 Original XAL Conceptual Design XAL was originally designed with the following objectives: Hware representation (introspective) High-level connection management Fast simulation Tool suite It is natural to break out these components directly into software components 10/14/2007 XAL Meeting - ICALEPCS 2007
3. XAL2 Components 10/14/2007 XAL Meeting - ICALEPCS Create separate JAR files for each component Eases deployment Install in stages Compartmentalize XAL development Mnging team develop. Maintenance Quality control Development is Harder Application development Easier? xalcore2.jar (hardware) xaltools2.jar xalservice2.jar (connection) xalhware2.jar (online model) xaltest2.jar (testsuites) EPICS xalapps.jar (MIC) xalapps.jar (MRC)
3. XAL2 Installation 10/14/2007 XAL Meeting - ICALEPCS xalhware2.jar (hardware) xaltools2.jar xalservice2.jar (connection) xalmodel2.jar (online model) CAJ JCA xal.xml DB Effort model_params element_map node_map
XAL Components What goes where? The number of outgoing edges indicates dependency The number of incoming edges indicates importance (include multi-vertex edges) For example, Break a Core Tool: breaks XAL Core break Online Model breaks applications 8 10/14/2007 XAL Meeting - ICALEPCS 2007 XAL2 Collaboration Diagram
3. XAL2 Site Extensions 10/14/2007 XAL Meeting - ICALEPCS We have addressed “core” XAL XAL elements common to all sites “Extension” XAL Specific to site Developed by site xalhware2.jar (hardware) xalservice2.jar (connection) jparchware.jar (J-PARC HW) snshware.jar (SNS HW)
3. XAL2 Repository Structure 10/14/2007 XAL Meeting - ICALEPCS Accommodate: Component builds Multi-site development Multi-site extensions Management? Test suites? High-priest of XXX.jar?
4. Test Suites Must ensure new code does not break repository Developers love to write testing code (Developers should write testing code) Provide test suites for important code Critical code – must ensure operation Many people are developing XAL With a standard test suite we can check modifications 10/14/ XAL Meeting - ICALEPCS 2007
4. Test Suites Where do we put them? In development branch? Mirror branch (e.g., test.core.model.alg xal.core.model.alg) Separate jar (testxalmodel2.jar) Naming convention? “TestClassName.java” “TestClassName.py” JUnit?! 10/14/ XAL Meeting - ICALEPCS 2007
5. Summary 10/14/2007 XAL Meeting - ICALEPCS XAL has become a very large software system New version would address - deployment - maintenance - usability We can start moving to a version 2 without interrupting operation
6. Open Issues 10/14/2007 XAL Meeting - ICALEPCS Repository management 3 rd Party software Testing Schedule Responsible parties …
Software Development and Social Values A man was crossing a road one day when a frog called out to him and said: "If you kiss me, I'll turn into a beautiful princess“. He bent over, picked up the frog and put it in his pocket. The frog spoke up again and said: "If you kiss me and turn me back into a beautiful princess, I will stay with you for one week.” The man took the frog out of his pocket, smiled at it and returned it to the pocket. The frog then cried out: "If you kiss me and turn me back into a princess, I'll stay with you and do ANYTHING you want". Again the man took the frog out, smiled at it and put it back into his pocket. Finally, the frog asked: "What is the matter ? I've told you I'm a beautiful princess, that I'll stay with you for a week and do anything you want. Why won't you kiss me ?” The man said, "Look I'm a software engineer. I don't have time for a girlfriend, but a talking frog is cool." 15 10/14/2007 XAL Meeting - ICALEPCS 2007
10/14/2007 XAL Meeting - ICALEPCS