(1) CESAR the Cern Ea SoftwAre Renovation Project Vito Baggiolini, SL/CO
(2) Outline Organizational Aspects –Requirements –Project phases and milestones –Methods –People Technical Aspects –Architecture –Java 2 Enterprise Edition –Design –Current state of work Conclusions Vito Baggiolini SL/CO
(3) Outline Organizational Aspects –Requirements –Project phases and milestones –Methods –People Technical Aspects –Architecture –Java 2 Enterprise Edition –Design –Current state of work Conclusions Vito Baggiolini SL/CO
(4) The SPS Experimental Areas ~ 2000 physics users ~ 6.3 km of beam lines ( SPS circumference) ~ 1000 pieces of physics equipment Frequent changes –Settings –Installations –Users The only place for HEP in CERN until LHC Vito Baggiolini SL/CO
(5) Our Users and their Requirements EA Physicists –Preparation & tuning of beamlines –Maintenance of beamline settings database –Expert troubleshooting Experimental Physicists –Apply beamline settings –Collect information about machine and beamline state Operators –Monitoring and troubleshooting –Helpdesk, problem follow-up –Communication with all users –Admin of Experiment database (members/privileges) HW Specialists & Piquet –Hardware installation, test and diagnosis –Maintenance of hardware infrastructure database All users –Take safe access to experimental zones –Browse through log files –Want secure computer access from outside CERN
(6) Project Phases & Milestones Start-up 2001:“We know how to build the system” Full slice through control system in new software; Nodal for mission critical parts and “normal” users Start-up 2002: “We control a Beam line” New software for physicists and selected users Nodal for North Area and specialists Start-up 2003: Production release Full functionality in new software; Nodal totally phased out Start-up 2004: End of CESAR Project After a 1 year of validation, amendments, polishing documentation, preparation of long-term maintenance Vito Baggiolini SL/CO
(7) Methods and Tools Methods –“Goal Directed Project Management” for organization –“Unified Software Development Process” for software –Object-oriented Methodology Tools –Java Enterprise Platform (same as used for E-Commerce) –CERN supported development tools and infrastructure (e.g. PS-SL Middleware) Principles for choosing methods & tools –Integrate products, avoid reinventing wheel –(Industry) standards –Mainstream technology to attract good & motivated people –Support is vital Vito Baggiolini SL/CO
(8) People 7 CESAR developers (30-90%) –SL/EA: 3 operators, 1 fellow –SL/BI: 1 technical engineer –SL/CO: 1 technical engineer, 1 engineer (myself) 2 other team members: –2 domain experts (EA and BI) very actively participating Excellent collaboration with Users/Experts –EA physicists (representing end-users) –Operators –HW specialists, Piquet Vito Baggiolini SL/CO
(9) Collaborations Cesar is a collaboration between four SL groups: EA, CO, BI, PO But also collaborations with –PS-SL Middleware Project –AS/IDS (“EDH people”), PS/CO: Java Tools –SL/BI: Server framework for Front-ends –Helix: Operator W2K console + Java Servers –SL/MR: help for database design
(10) Outline Organizational Aspects –Requirements –Project phases and milestones –Methods –People Technical Aspects –Architecture –Java 2 Enterprise Edition –Design –Current state of work Conclusions Vito Baggiolini SL/CO
(11) CESAR Architecture Beamline Graph. User Interfaces Scripting Facility Server Frontends User PC Middleware Collim.Magnet Wire- chamber Computer Security Motor Data Mod. Magea Data Mod. WireCh Data Mod. Timing Module “3-Tier Architecture ” Settings & Config Database Tuning Tasks Surveillance Programs Expert Programs Access Programs
(12) Java 2 Enterprise Edition (J2EE) What is J2EE? –The standard way of building 3-Tier Java applications –A recommended architecture + development guidelines –Aimed at electronic commerce applications –A “container” in which to run your application –The container does all the “difficult things”… …developers concentrate on domain-specific functionality The “difficult things” you don’t need to develop –Integration Objects + Relational Databases –Automatic persistence –Resource management (memory, threads, DB connections, …) –Security + Access control J2EE is “The” Open Industry Standard for Enterprise Applications –“Application Servers” are available from over 30 vendors –All major players + Open source initiatives
(13) Middleware Recommended J2EE Architecture Server Frontends User PC Appl Server (“Container”) EJBean 1EJBean 2 Web Browser Web Server Relational DataBase Existing Applications Graphical User Interface
(14) Appl Server (“Container”) CESAR J2EE Architecture Beamline EJBean Graph. User Interfaces Scripting Facility Server Frontends User PC Middleware Motor EJBean Magnet EJBean Wirech. EJBean Motor Data Mod. Magea Data Mod. XWCA Data Mod. Timing Bean Timing Module Relational DataBase
(15) Glossary J2EE: Java 2 Enterprise Edition –Standard Java Platform to build 3-Tier applications 3-Tier Application -- an application in 3 layers: –Graphical User Interface on User PCs –Stable Core functionality on Servers –Hardware access on Front-end computers J2EE Application Server –A software platform that implements the J2EE Standard Enterprise Java Beans (EJB) or simply “Beans” –Software components running on Application Servers Bean Container –The part of the application server that contains the Beans
(16) Graphical User Interface WC 2 Config App Server (Container) Middleware WireCh D.M. Physics User Lets work with WireCh 2... Middleware HV Controller 2 HighVolt Wirechamber Graphical User Interface Start WireCh. GUI Panel WireCh 2 setHv() getHv() getProfile() Create WireCh. Bean Work! Connect to Container Persistence E.g. check/update Hardware Configuration Load its settings RefHighVolt
(17) App Server (Container) Extrapolation to Beamline Settings Middleware Motor DataMod. Magea DataMod. Motor DataMod. Middleware Beamline Control Graphical User Interface Hardware Config Beamline Settings Beamline Layout Work on H GeV e - Beamline H2 Layout = [ Tax1,Bend1, Coll3, …] H2 = [ Tax1, Bend1, Coll3, …] 150 GeV e - Mot5 Tax1Bend1Coll3 Mot3Mot4 150 GeV e - = [ ]
(18) Extrapolation to Beamline Settings App Server (Container) Middleware Motor DataMod. Magea DataMod. Motor DataMod. Middleware Beamline Control Graphical User Interface Hardware Config Beamline Settings Beamline Layout Beamline H2 Layout = [ Tax1,Bend1, Coll3, …] H2 = [ Tax1, Bend1, Coll3, …] 150 GeV e - Mot5 Tax1Bend1Coll3 Mot3Mot4 150 GeV e - = [ ]
(19) Middleware WC 2 Config Claude, HW Specialist Login: Claude Password: ****** WireChamber Graphical User Interface WireCh D.M. WireCh 2 setHv()getHv()restoreHv() Middleware RefHighVolt HV Controller 22 HighVolt Security Service Claude is is a known user; Role: Specialist Specialists are allowed to use setHv() Set Hv to 2 kV! Access Ctrl (1) Tune WireCh 2
(20) Middleware WC 2 Config Jean, Observer Login: Jean Password: ****** WireChamber Graphical User Interface WireCh D.M. WireCh 2 setHv()getHv()restoreHv() Middleware RefHighVolt HV Controller 22 HighVolt Security Service Jean is is a known user; Role: Observer Observers are not allowed to use setHv() Set Hv to 20 kV! Access Ctrl (2) Play with WireCh 2 STOP
(21) 3 rd Party Products J2EE Application Server –Now: Borland Application Server (for ~ 1 year) –Soon: Oracle Application Server (same as EDH) Oracle database Framework for building GUIs –Based on “Netbeans” Framework (open source) PS-SL Middleware Biscoto server framework + BI expert panels
(22) Design Simple concepts –intuitive Architecture –simple development guidelines Strongly typed –Class hierarchy with few base classes at the top –Many classes ~300 (many related classes) –Equipment-specific classes Applying Design Patterns
(23) Equipment-specific Classes MagnetPanel (GUI) MagnetStatus (information) MagnetEJB (persistence) MagnetDm (Eq access) uses creates MagnetTable displays persistence
(24) Current State of Work (1) Requirements –List of all (?) use cases –Relevant use cases described in detail –GUI sketches Analysis & Design –Relevant use cases analyzed –Architecture mostly described in UML –“Base classes” agreed on and documented in UML Miscellaneous –Coding conventions –Glossary
(25) Current State of Work (2) Prototypes –EJBs + Database tables for 80% of equipment (physics functionality only) –Access system (second prototype) –GUI Panels for status display and surveillance –GUI Framework + First Explorer prototype Operational products –Spectrometer with Momentum analysis –Timing distribution via Middleware –Direct equipment access from Java –Scripting language (Jython)
(26) Conclusions Excellent team spirit and collaborations Good progress –Architecture settled –Prototypes for functionality due in May –No delays for start-up milestones foreseen (yet ;-) Using Mainstream technology –Object methodology and Design Patterns –Java 2 Enterprise Edition And existing products –J2EE Application Server, Oracle, Netbeans, Jython –Middleware, Biscoto, …
(27)
(28) Scope & Objectives “Geographical” scope –Beamlines in North and West Area (+ CNGS ?) Objectives inside scope –Building and deploying the new software according to the requirements of EA and BI –Smooth migration without affecting normal operations –Documentation allowing for 3rd party maintenance –Training of BI experts, EA physicists and operators on new system –Preparation for long-term maintenance Outside scope –Day-to-day EA operations –Maintenance of old system –Training of end users (experimental physicists) Vito Baggiolini SL/CO