160 likes | 166 Views
Explore the motivation, development strategy, architecture, installation, components, repository structure, and test suites of XAL Version 2. Discover how XAL has evolved to accommodate new features and capabilities, multi-site development, and complicated deployment. Get insights into the development plan and collaboration diagram. Learn about the site extensions, repository structure, and the importance of test suites.
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