Presentation is loading. Please wait.

Presentation is loading. Please wait.

14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.

Similar presentations


Presentation on theme: "14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application."— Presentation transcript:

1 14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application Section developers

2 CERN – AB DepartmentG. Kruk – 14.10.2005 2 Agenda Development process Issues How we addressed them? Conclusions

3 CERN – AB DepartmentG. Kruk – 14.10.2005 3 Development Process Operational Consoles All activities from the moment a developer starts a new project to the moment the resulting application is running on operational consoles in the control room

4 CERN – AB DepartmentG. Kruk – 14.10.2005 4 Context in CERN Controls  2002 Support for C developments (under control of Make) No Java development process in place  Java based on small interdependent products ~ 130 products which use about ~140 external libraries Dependencies tree very complicated – up to 10 levels ~ 30 developers  Need for supporting tools  No mature solution on the market  Work started on custom solution

5 CERN – AB DepartmentG. Kruk – 14.10.2005 5 Development Process Issues  Projects and code organization  Source versioning management  Build services (automation of common tasks) Compilation, JAR Documentation generation  Dependencies management  Release management Releasing new versions of software in a dedicated repository  Applications deployment  Issues & bugs tracking (guidelines, naming conventions, directory structure) (CVS) (JIRA)

6 CERN – AB DepartmentG. Kruk – 14.10.2005 6 Build services : Common-Build  Based on Apache Ant Java based open source build tool (like Make) XML based build file defining targets  Functionality of Common-Build Provides predefined targets for everything needed Compilation, packaging (JAR) Source code & specific descriptors generation Documentation generation Code quality Unit testing  Prevents Copy/Paste syndrome  Integration with the infrastructure in place  Minimal effort to start

7 CERN – AB DepartmentG. Kruk – 14.10.2005 7 Target examples  Compiling sources ant compile  Building distribution of the product ant dist  Releasing new version of the product ant release

8 CERN – AB DepartmentG. Kruk – 14.10.2005 8 Common-Build constraints (Directory structure) equipstate/ build.xml product.properties product.xml people src/ java/ test/

9 CERN – AB DepartmentG. Kruk – 14.10.2005 9 Common-Build constraints (Build file) equipstate/ build.xml product.properties product.xml people src/ java/ test/ Regular Ant’s build file that imports targets from Common-Build (always the same)

10 CERN – AB DepartmentG. Kruk – 14.10.2005 10 Common-Build constraints (Services file) equipstate/ build.xml product.properties product.xml people src/ java/ test/ Specifies the services to activate in Common-Build during the build process e.g. JavaDoc generation, unit tests, specific descriptors generation

11 CERN – AB DepartmentG. Kruk – 14.10.2005 11 Common-Build constraints (Product’s descriptor) Descriptor of the product and its direct dependencies equipstate/ build.xml product.properties product.xml people src/ java/ test/

12 CERN – AB DepartmentG. Kruk – 14.10.2005 12 Common-Build constraints (Release check list) equipstate/ build.xml product.properties product.xml people src/ java/ test/ Specifies who has the right to release this product

13 CERN – AB DepartmentG. Kruk – 14.10.2005 13 Dependencies management equipstate Product ALib ALib B Production repository3rd party repository product.xml

14 CERN – AB DepartmentG. Kruk – 14.10.2005 14 Dependencies management equipstate/ build.xml product.properties product.xml people lib/ LibA.jar ProductA.jar LibB.jar src/ java/ test/ equipstate/ build.xml product.properties product.xml people src/ java/ test/ ant getjars equipstate Product ALib ALib B Production repository3rd party repository

15 CERN – AB DepartmentG. Kruk – 14.10.2005 15 Release Management Release Tool  Also based on Ant  Both for Java and C/C++ products  Can be used without Common-Build

16 CERN – AB DepartmentG. Kruk – 14.10.2005 16 What Release does  Extracts the product from the CVS to the dedicated production repository  Builds the product (calling Common-Build)  Installs it in a multi-versioned repository New version is added without modifying the old ones We can always use old versions  Updates product aliases (symbolic links)

17 CERN – AB DepartmentG. Kruk – 14.10.2005 17 Release management (Production repository) domain client dist accsoftmacsyleir equipstate 0.5.10.5.20.6.00.6.1 PROPREVNEXT Aliases:  PRO - production version  PREV - previous versions (version which was replaced by PRO)  NEXT - next version to be tested before becoming PRO

18 CERN – AB DepartmentG. Kruk – 14.10.2005 18 GUI Applications deployment  We use Java Web Start deployment technology [TH3A.2-50] uses a special XML descriptor (JNLP file) to deploy and run applications ensures that all required libraries (cached locally) are up to date  JNLP file specifies how to run the application where required libraries are found  Repository contains all libraries and JNLP file  We added a Web server to enable deployment via Java Web Start  http:// /macsy/equipstate/PRO/equipstate.jnlp

19 CERN – AB DepartmentG. Kruk – 14.10.2005 19 Conclusions  We put in place a very solid development process  The whole process is automated now  We have a suite of integrated tools supporting the process  We succeeded to make the deployment path short and simple  This has been validated operationally


Download ppt "14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application."

Similar presentations


Ads by Google