Sources, Targets and Interactions LabVIEW and the LHC
Sources, Targets and Interactions ADE Rapid Application Development Environment based on LabVIEW 2
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 3
Sources, Targets and Interactions EN-STI-ECE-MTA 4
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 5
Sources, Targets and Interactions Why was RADE developed? 6
Sources, Targets and Interactions The Origin Magnets 1750 Circuits Tests 7
Sources, Targets and Interactions Outline MTA Why RADE? The challenge Coping with large applications RADE today Future 8
Sources, Targets and Interactions The Challenge 9
Sources, Targets and Interactions The Challenge 10
Sources, Targets and Interactions The Challenge Linux Windows Mac GPN TN DB CM W RBA C Timing Files PLC DAQ 11
Sources, Targets and Interactions RAD(E) RAD(E) (rapid application development) is a concept that products can be developed faster and of higher quality through: Gathering requirements Prototyping Defer design improvements to the next release Less formality in reviews and communication Re-use of software components 12
Sources, Targets and Interactions ICALEPCS Paper ID MOMIB08 13 Extreme Programming methods Small increments Minimal planning Cross-functional team working on all aspects Demonstrated to the stakeholders frequently Minimizing risks Fast changes and adaptations. Development Methods
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 14
Sources, Targets and Interactions The Scope Application characteristics: Short development time Rapidly evolving Light and independent 15
Sources, Targets and Interactions Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment Integration with CERN infrastructures LabVIEW Initial Requirements 16
Sources, Targets and Interactions 17 RADE Palette
Sources, Targets and Interactions 18 LabVIEW user application LabVIEW C/C++ shared lib Java Server SDD S PLC MTA- lib RBA C RIO SQL TG M ALARM eLogBook RADE Core Technology
Sources, Targets and Interactions 19 RADE Applications
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 20
Sources, Targets and Interactions Coping With Large Applications 21
Sources, Targets and Interactions Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment Integration with CERN infrastructures Source control and distribution Instance generation Templates and documentation Automated tests and builds LabVIEW Large Application Requirements 22
Sources, Targets and Interactions Source Control 23
Sources, Targets and Interactions Continuous Integration 24
Sources, Targets and Interactions Continuous Integration Linux Windows and Mac Open stack and VPN 25
Sources, Targets and Interactions Continuous Integration 26
Sources, Targets and Interactions Continuous Integration 27
Sources, Targets and Interactions Continuous Integration 28
Sources, Targets and Interactions Continuous Integration 29 Continuous Integration (CI) Manual RADE build time 40h 1h
Sources, Targets and Interactions Software repository 30
Sources, Targets and Interactions Distribution Online Installer 31
Sources, Targets and Interactions Distribution RADE Installer 32
Sources, Targets and Interactions Distribution 33
Sources, Targets and Interactions Dedicated Templates 34
Sources, Targets and Interactions Project Generation 35
Sources, Targets and Interactions Typical design Create, Use & Destroy 36
Sources, Targets and Interactions Development help Design patterns and templates in RADE LabVIEW Guides Code review: make maintainable, and performant 37
Sources, Targets and Interactions Peer Programming 38
Sources, Targets and Interactions The missing link 39
Sources, Targets and Interactions Middleware integragion 40 CERN Middleware PXI on the accelerator complex Server Device/property/field definitions Clients RIO palette (Rade Input/Output) Get, Set and Subscribe Operators User Application CMW Server
Sources, Targets and Interactions Distributed Architecture System I/O 41 LabVIEW RT SL C NI Real-Time Hypervisor CPUs, RAM I /O Shared Memory Trigger NI Real-Time Linux
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 42
Sources, Targets and Interactions RADE has become adult LabVIEW has started getting out of the Lab Copes with the classical software development challenges Enables LabVIEW to be used for accelerator applications RADE today 43
Sources, Targets and Interactions Training Support LabVIEW TemplatesConfiguration filesDocumentation DB Files JAP C libs PLCCMWJava The Framework 44
Sources, Targets and Interactions Hardware Support & Hardware Software PXI CompactRIO DAQ LabVIEW TestStand DIAdem and other NI products 45
Sources, Targets and Interactions Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future 46
Sources, Targets and Interactions Future Challenges 47
Sources, Targets and Interactions Future Challenges 48
Sources, Targets and Interactions Large system management How to manage a large installation? Management System Monitoring Security Re-install Updates 49
Sources, Targets and Interactions Watch these! The LHC by Brian Cox The LHC Extreme programming by Elisabeth Hendrickson Extreme programming What the agile manifesto left out by Brian Marick What the agile manifesto left out Practicing Continuous Integration by David Cramer Practicing Continuous Integration The Actor Framework by Stephen Mercer The Actor Framework ZMQ is the answer by Ian Barber ZMQ is the answer 50
Sources, Targets and Interactions Questions 51
Sources, Targets and Interactions