Download presentation
Presentation is loading. Please wait.
Published byCorey Waters Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.