G.Kruk - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

G.Kruk

Description:

Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application Section developers – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 20
Provided by: Bertr60
Category:
Tags: jira | kruk

less

Transcript and Presenter's Notes

Title: G.Kruk


1
Development Process of Accelerator Controls
Software
  • G.Kruk
  • L.Mestre, V.Paris, S.Oglaza, V. Baggiolini,
    E.Roux
  • and Application Section developers

2
Agenda
  • Development process
  • Issues
  • How we addressed them?
  • Conclusions

3
Development Process
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
Operational Consoles
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
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
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
Target examples
  • Compiling sources
  • ant compile
  • Building distribution of the product
  • ant dist
  • Releasing new version of the product
  • ant release

8
Common-Build constraints(Directory structure)
  • equipstate/
  • build.xml
  • product.properties
  • product.xml
  • people
  • src/
  • java/
  • test/

9
Common-Build constraints(Build file)
  • equipstate/
  • build.xml
  • product.properties
  • product.xml
  • people
  • src/
  • java/
  • test/

Regular Ants build file that imports targets
from Common-Build (always the same)
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
Common-Build constraints (Products descriptor)
  • equipstate/
  • build.xml
  • product.properties
  • product.xml
  • people
  • src/
  • java/
  • test/

Descriptor of the product and its direct
dependencies
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
Dependencies management
Production repository
3rd party repository
Product A
Lib A
Lib B
equipstate
product.xml
ltproduct nameequipstate gt lt!-- --gt
ltdependenciesgt ltdep productLibA
version1.2.8 /gt ltdep
productProductA /gt lt/dependenciesgt lt/produc
tgt
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 produc
t.xml people src/ java/ test/
ant getjars
15
Release Management
  • Release Tool
  • Also based on Ant
  • Both for Java and C/C products
  • Can be used without Common-Build

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
Release management(Production repository)
  • Aliases
  • PRO - production version
  • PREV - previous versions (version which was
    replaced by PRO)
  • NEXT - next version to be tested before
    becoming PRO

dist
accsoft
macsy
leir
client
equipstate
domain
PRO
PREV
NEXT
0.5.1
0.5.2
0.6.0
0.6.1
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//ltpath_to_the_distgt/macsy/equipstate/PRO/equ
    ipstate.jnlp

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
Write a Comment
User Comments (0)
About PowerShow.com