14-Dec-2010IT/EE-Palaver, Dietrich Beck Status CS-Framework Introduction Status Lessons Learned.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
COM vs. CORBA.
Programming Paradigms and languages
Computer Software 3 Section A Software Basics CHAPTER PARSONS/OJA
CS Framework Workshop 2013 Welcome!
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Systems Analysis and Design in a Changing World, 6th Edition
Introduction to Software Testing
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
Ch. 31 Q and A IS 333 Spring 2015 Victor Norman. SNMP, MIBs, and ASN.1 SNMP defines the protocol used to send requests and get responses. MIBs are like.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Introduction to the CS framework Definition of a framework Requirements Example Idea Cooking recipe Some statements Dietrich Beck,
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
26 February 2009Dietrich Beck FPGA Solutions... FPGA and LabVIEW Pattern Generator Multi-Channel-Scaler.
Module CC3002 Post Implementation Issues Lecture for Week 6 AY 2013 Spring.
Designing a HEP Experiment Control System, Lessons to be Learned From 10 Years Evolution and Operation of the DELPHI Experiment. André Augustinus 8 February.
An Introduction to Software Architecture
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
DSCIntProc with LabVIEW 8.2 Motivation "Shared Variables" Difference to LabVIEW 7.1 New Configuration Tools.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
1 Alice DAQ Configuration DB
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
11 March 2008IT&EE Palaver, Dietrich Beck Neues vom CS-Framework Motivation Grundlagen Entwicklungen der letzten Jahre Status und Ausblick.
Processes Introduction to Operating Systems: Module 3.
Report on data acquisition and control systems of trap facilities Dietrich Beck, DVEE/GSI, 23 th of May 2002
A Control System Framework Control System Workshop, 12 May 2003, A Control System Framework A control system framework for small (?) experiments.
01-Feb-2007Dietrich Beck, GSI LabVIEW DIM-Interface Motivation Event and DIM Basics Idea of LV-DIM Interface Example Performance.
5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
February 18, 2010Dietrich Beck CS-Framework Overview (for newcomers) Ideas behind CS Cooking recipe Main Features...
The Control System (not only) for SHIPTRAP Dietrich Beck, DVEE/GSI, Motivation Requirements {The ISOLTRAP Control System SHIPTRAP and EU-Networks}
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
– Introduction and Status – The way – The result F. Herfurth 1, D. Beck 1, M. Block 1, S. Koszudowski 1, S. Nagy 2, D. Neidherr 2, C. Rauth 1, J. Savory.
A Control System Framework DVEE Palaver, 4/2003, Dietrich Beck, A Control System Framework A control system framework for experiments at.
3-Feb-2011CS-Workshop 2011, Dietrich Beck Overview CS-Framework Introduction (Over)view Lessons Learned.
MICE CM28 Oct 2010Jean-Sebastien GraulichSlide 1 Detector DAQ o Achievements Since CM27 o DAQ Upgrade o CAM/DAQ integration o Online Software o Trigger.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Mar 18, 2003PFIS CDR1 Control System Summary of Changes Since PDR All the motors, drivers, sensors, switches, etc. have been chosen Built up a mechanism.
7 February 2008Dietrich Beck CS-Framework Overview Ideas behind CS Cooking recipe Main Features...
Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 1 1/11/2004 Day 2, Part 1 Estimating Software Size Section 2 Calculating.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
CS – a control system framework Dr. Dietrich Hans Beck, DVEE, GSI 20 November 2002.
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
February 18, 2010Dietrich Beck CS-Status Results from workshop 2009 – what was planned for 2009 – what was done in 2009 Statistics Miscellaneous.
Data Link Layer. Data link layer The communication between two machines that can directly communicate with each other. Basic property – If bit A is sent.
Introduction to the CS framework Definition of the CS framework Requirements Example Idea Cooking recipe Some statements Dietrich Beck,
Database Issues Peter Chochula 7 th DCS Workshop, June 16, 2003.
Ch. 31 Q and A IS 333 Spring 2016 Victor Norman. SNMP, MIBs, and ASN.1 SNMP defines the protocol used to send requests and get responses. MIBs are like.
T Iteration Demo LicenseChecker I2 Iteration
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Overview of today’s lecture Major components of an operating system Structure and internal architecture of an operating system Monolithic Vs Micro-kernels.
“This improved a lot since I started using Tango (three years ago) from scratch so I'm happy to see the efforts from the developers. Still there is room.
28-Feb-2013CS-Workshop 2013, Dennis Neidherr CS-Framework - Overview Intro and Overview Status Outlook.
Introduction Current Status Outlook and Time Schedule
The Development Process of Web Applications
CS-Framework Overview
Introduction to Software Testing
An Introduction to Software Architecture
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Scaling to Larger Systems
CS-Status Results from workshop 2008 Statistics Miscellaneous
Chapter 13: I/O Systems.
Presentation transcript:

14-Dec-2010IT/EE-Palaver, Dietrich Beck Status CS-Framework Introduction Status Lessons Learned

14-Dec-2010IT/EE-Palaver, Dietrich Beck Starting Point (  2001) Control System –Control devices (power supplies, function generators, timing, complex experimental procedure…) –No process control –DAQ and data processing is only a minor issue –Integrate things that were not developed to work together as a system Ever changing set-up –The same experiment is never done twice –Reconfiguration of complete hardware (seconds!) –Integration of new hardware (next beam-time) Small and medium size experiments –No dedicated staff for control systems –Different experiments but similar problems to solve (configuration, complex timing schemes, similar hardware,…) …  What about a “Framework”?

14-Dec-2010IT/EE-Palaver, Dietrich Beck "Framework" Wikipedia: “…a software framework is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code, thus providing specific functionality…” Common Code – Standardization –re-usability of software components –maintainability of software components –same look and feel at different experiments –ease transfer of know-how User Code - Specialization –concentrates on experiment specific requirements –extension of framework, specializing code

14-Dec-2010IT/EE-Palaver, Dietrich Beck Different Points of View – A Framework is... Developer: User: (here: pocket knife)... a tool box... something ready to use (sth. to solve a problem) without additional work (= the solution!)

14-Dec-2010IT/EE-Palaver, Dietrich Beck Definition of the CS-Framework control system = framework + add-ons EE/KS and contributors experiment bug reports, new features requested add-ons may become part of framework bug fixes, new features, maintenance Cycle Control AFG Timing+DAQ HV GUI

14-Dec-2010IT/EE-Palaver, Dietrich Beck PHELIX (Petawatt High-Energy Laser for Heavy Ion Experiments) (slide by S. Götte, GSI) Up to 3 MJ electrical energy converted to 1kJ light energy or 0.5 Petewatt laser power documented “shots” (Dec. 2010). About 10k process variables distributed on 15+ nodes in 2 buildings

14-Dec-2010IT/EE-Palaver, Dietrich Beck Quad-Triple Trap Mass Spectrometer ISOLTRAP High-precision mass determination of unstable nuclei with a Penning trap mass spectrometer at ISOLDE/CERN Quad-Triple Trap Mass Spectrometer ISOLTRAP High-precision mass determination of unstable nuclei with a Penning trap mass spectrometer at ISOLDE/CERN –Nuclear-, Astro-, Fundamental Physics –  m/m  (typically!) –via cyclotron frequency of stored ions –“sub-µs ion-juggling” every second

14-Dec-2010IT/EE-Palaver, Dietrich Beck Cooking Recipe for the CS Framework One development tool  LabVIEW Standardization  object oriented approach, base classes Distribution to many nodes  DIM ( –Event driven communication for everything –Scaling to large systems by distribution –Remote access –… SCADA functionality (alarming, trending, …)  LabVIEW DSC module

14-Dec-2010IT/EE-Palaver, Dietrich Beck Event Driven Communication DIM ( –Peer-to-peer connection, no intrinsic bottle neck –Named service as concept (a name server aids in setting up connections) –“service”: publisher-subscriber-pattern, one-to-many –“command service”: command-pattern, many-to-one CS objects communicate via –DIM services: publishing/subscribing to state information –DIM commands: triggering actions synchronous commands (timeout, “expire date”,…) everybody may talk to everybody Events provide the interface between –device object and it’s GUI object –device object and application layer –hierarchical state machines –… Design Approach - First: communication layer, Second: framework Connectivity to other programming languages and OSs CallerCallee Back-end (SCADA, GUI,...) Middleware (communication,.) Front-end (devices, drivers,...) 3-layers

14-Dec-2010IT/EE-Palaver, Dietrich Beck Object Orientation (OO) with CS "BaseClass" provides basic functionality (communication layer, active threads,...) "DeviceClass" adds functionality according to specs of device type "DS345". Instantiation: one object per device "BaseClass" "Device Class" inheritance AFG1 AFG2 AFG3 of course: classes for GUIs, Sequencer, State machines,... OO implemented by CS using pure LabVIEW (no LVOOP)

14-Dec-2010IT/EE-Palaver, Dietrich Beck Standardization of Services and Cmds _birthday, time/date of creation _classID, class name _condition, object created successfully… _systemID, name of (sub)system _accessID, reservation mechanism... _evtCounter, number of cmds received status of threads…Ping, thread alive? GetDescriptors (Introspection!!!) Reset (override by child classes) … _deviceGUI, name of GUI classInitialize, init interface _deviceID, ID string of deviceClose, close interface _deviceState, OK, ERROR, …IDQuery, query device ID… _nomFrequency, frequency set-valueSetFrequency, sets nominal value _actFrequency, frequency get-valueGetFrequency, gets actual value… CSObj THE base class CAEObj send/rec. events BaseProcess threads for events and periodic action DeviceBase basic device properties AFGBase arbitrary function generator…

14-Dec-2010IT/EE-Palaver, Dietrich Beck Status CS-Framework Introduction Status Lessons Learned

14-Dec-2010IT/EE-Palaver, Dietrich Beck Status CS 3.20 based on LabVIEW 2009, WinXP 32bit, Suse 11.2 Scattered into packages (Main, device base (+GUIs), devices, GUIs (configuration, operation,…)) + >20 device classes maintained by db, hb GPL licensed … Test of operational stability (non-stop) Used by about +12 experiments/facilities at GSI and elsewhere CS works as a collaboration Additional tools –Configuration data base (“SQL-server”, editing tools, import, export…) …

14-Dec-2010IT/EE-Palaver, Dietrich Beck SourceForge: downloads, tracker (bugs, features,…)

14-Dec-2010IT/EE-Palaver, Dietrich Beck SCC via GSI

14-Dec-2010IT/EE-Palaver, Dietrich Beck Domain Management System: Process Management in a Distributed Environment

14-Dec-2010IT/EE-Palaver, Dietrich Beck Process Monitoring

14-Dec-2010IT/EE-Palaver, Dietrich Beck Packaging

14-Dec-2010IT/EE-Palaver, Dietrich Beck Documentation via Wiki

14-Dec-2010IT/EE-Palaver, Dietrich Beck Class Documentation via UML Tools

14-Dec-2010IT/EE-Palaver, Dietrich Beck Status CS-Framework Introduction Status Lessons Learned

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – What Users say about CS Lessons Learned – What Users say about CS (from a talk by Stefan Götte, at the NI BIG PHYSICS Round Table, Paris, 2009) Stress Field of the Responsible Person: The OS (XP) and/or the intranet are always unreliable, the programming language (LabVIEW) never really fulfills the need, the framework (CS) is only close to the requirement, the classes of other CS collaborators are typically not usable, there is no way to test things since there is no test system available while the real system is always in use, the users never define what the program has to do, but are not pleased with what the programmer delivers, and they misuse the system additionally. Anyhow: The goal is an easy system where the happy user does not realize what happens behind the scene, which works reliable and for ever (better: till the next LabVIEW version is installed).

14-Dec-2010IT/EE-Palaver, Dietrich Beck “The OS (XP) and/or the intranet are always unreliable” (assumption for design phase) Design principles of major importance A control system must be designed to crash and (auto-)recover from failures of all kinds –Fileserver down –Computer down/reboot Installation of updates Switched-Off/On by users … –Network down –Power cuts –… The system is stressed most, when –everything goes wrong (failures, alarms, sub-system crash…) and –all kinds of asynchronous signals fire at the same time (self-induced DoS-Attack) and –availability is most important.

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – What Users say about CS Lessons Learned – What Users say about CS (from a talk by Stefan Götte, at the NI BIG PHYSICS Round Table, Paris, 2009) Stress Field of the Responsible Person: The OS (XP) and/or the intranet are always unreliable, the programming language (LabVIEW) never really fulfills the need, the framework (CS) is only close to the requirement, the classes of other CS collaborators are typically not usable, there is no way to test things since there is no test system available while the real system is always in use, the users never define what the program has to do, but are not pleased with what the programmer delivers, and they misuse the system additionally. Anyhow: The goal is an easy system where the happy user does not realize what happens behind the scene, which works reliable and for ever (better: till the next LabVIEW version is installed).

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned - Documentation The fundamental problem about documentation Two lines of text are not enough, but Two pages of docs – (almost) nobody will read that * Docs out of date … Solutions HOW-TOs, FAQs Auto-generated documentation –Class documentation, CS2Java  UML –Requires well documented code (again: coding conventions!) –Release notes Demo-system (delayed…) * sometimes not even the first two lines…

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – Generic/Common Tools Generic tools (generic control system GUI, generic device GUIs) Sometimes difficult to understand (  documentation problem) Lot’s of work to maintain Don’t match the users’ needs exactly Either –least common denominator (missing features), or –include all requested features (too complex) “Nobody likes them, but everybody uses them.”

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – Missing Features Identifying missing features sometimes requires telepathic skills results in cool solutions that are finally not used (nice to have versus really useful) –CS Access System –Sequencer –ObjectNets, PetriNets –some base classes …

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – Compatibility Backward Compatibility (“does my old code still work?”) Is maybe THE most important feature of a framework Often results in a impressive mix of different versions (core system v1, base classes v2, GUI v4, device classes v3,…) Makes it hard to correct wrong design decisions Requires clear public library routines or class methods, but… using conventions on what is public/private does not work

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – Users Users are (of course!) the best motivation for the work of the framework- developer are mainly interested in running their experiment and not so much in software development sometimes keep on using old (but working) solutions (a GUI developed in 1991 is still used at about five experiments) – it’s sometimes hard to make a clear cut and this may influence design decisions sometimes develop nice code (reusability, coding conventions, etc...) … and coding conventions /  may use software in a completely different way than it was intended by the developer test our software (the first beam-time is the real test), we don’t have a department with 50 people who do nothing than testing and formal verification of our software

14-Dec-2010IT/EE-Palaver, Dietrich Beck Lessons Learned – The “Saving-Time-Myth” Wikipedia: “…software frameworks … reducing overall development time” (?) Amount of time for solving a problem decreases dramatically, if a problem may be solved with (generic) existing software. “configuration instead of coding” does not change – but the solution is much better may even increase (short-term), compared to a dedicated solution not (!) using the framework (required: training, courses, understanding and application of conventions) decreases (long-term): framework maintained by others, re- usability of code, replacing hardware, coding conventions enforced, maintainability, common language, know-how transfer, …

14-Dec-2010IT/EE-Palaver, Dietrich Beck Experiments using the CS framework... require high flexibility have a large variety of hardware types have up to 10,000 (1M possible) process variables require fast (  100 ns) timing control using dedicated hardware PHELIX PHELIX Motion CaveA SHIPTRAP ISOLTRAP REXTRAP REXTRAP LEBIT LEBIT GSI, Germany Mainz, Germany Greifswald, Germany CERN, Switzerland MSU, USA Lanzhou, China data taking development commissioning Motion CaveA FOPI RISING others... HITRAP LPT TrigaTRAP ClusterTRAP POLARIS, HIJ

14-Dec-2010IT/EE-Palaver, Dietrich Beck Conclusion and Outlook CS 3.20 released for LV2009. about 15 active applications 1,000,000 PVs demonstrated, an even larger number should be feasible 5,000 objects (  hardware devices) demonstrated, an even larger number should be feasible stability of a distributed CS system is better than a few hundred hours of continuous operation about 15 (60) hardware devices supported on SourceForge (Subversion) FAIR: MATS and parts of HITRAP have selected CS as control system framework.

14-Dec-2010IT/EE-Palaver, Dietrich Beck Acknowledgements... Holger Brand, Dietrich Beck, Mathias Richter, Alexander Schwinn, Falk Ziegler, Romain Savreux, Chabouh Yazidjian, Klaus Blaum, Dennis Neidherr, Melanie Wolf, Stefan Schwarz, Josh Savory, Stefan Götte, Maximilian Kugler, Tobias Habermann, Michael Block, Frank Herfurth, Christian Rauth, Stephen Koszudowski, Manas Mukherjee, Thomas Rechel, Martin Feldmann, ……………...