160 likes | 284 Views
XAL Version 2. Software Components Deployment Repository Structure Test Suites. Christopher K. Allen, ORNL. Outline: XAL Version 2. Motivation Development Strategy Version 2 Architecture Installation Components Repository structure Test Suites Summary Open Issues. 1. Motivation.
E N D
XAL Version 2 Software Components Deployment Repository Structure Test Suites Christopher K. Allen, ORNL
Outline: XAL Version 2 • Motivation • Development Strategy • Version 2 Architecture • Installation • Components • Repository structure • Test Suites • Summary • Open Issues XAL Meeting - ICALEPCS 2007
1. Motivation "Engineers believe that if it ain't broke, it doesn't have enough features yet." — Scott Adams. 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 • 3rd party software • New Architecture to supported the evolved framework • XAL2 XAL Version 1 XAL Version 2 XAL Meeting - ICALEPCS 2007
2. XAL 2 Development Plan Version 2 Development • Maintain working “operational” version • Migrate/develop XAL 2 concurrently into different repository • New installations from XAL 2 repository operation Working Repository (Version 1) XAL migration Development Repository (Version 2) XAL XAL Meeting - ICALEPCS 2007
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 3 Original XAL Conceptual Design XAL Meeting - ICALEPCS 2007
3. XAL2 Components 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? EPICS xalapps.jar (MIC) xalapps.jar (MRC) xalservice2.jar (connection) xalcore2.jar (hardware) xalhware2.jar (online model) xaltools2.jar xaltest2.jar (testsuites) XAL Meeting - ICALEPCS 2007
3. XAL2 Installation Effort CAJ JCA xalservice2.jar (connection) xalhware2.jar (hardware) xalmodel2.jar (online model) xaltools2.jar xal.xml DB node_map model_params element_map XAL Meeting - ICALEPCS 2007
XAL2 Collaboration Diagram 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 XAL Meeting - ICALEPCS 2007
3. XAL2 Site Extensions • We have addressed “core” XAL • XAL elements common to all sites • “Extension” XAL • Specific to site • Developed by site xalservice2.jar (connection) xalhware2.jar (hardware) jparchware.jar (J-PARC HW) snshware.jar (SNS HW) XAL Meeting - ICALEPCS 2007
3. XAL2 Repository Structure • Accommodate: • Component builds • Multi-site development • Multi-site extensions • Management? • Test suites? • High-priest of XXX.jar? XAL Meeting - ICALEPCS 2007
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 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?! XAL Meeting - ICALEPCS 2007
5. Summary 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 XAL Meeting - ICALEPCS 2007
6. Open Issues • Repository management • 3rd Party software • Testing • Schedule • Responsible parties • … XAL Meeting - ICALEPCS 2007
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." Software Development and Social Values XAL Meeting - ICALEPCS 2007