Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 M. Bellato (INFN – Padova) L. Berti (INFN – Legnaro) D. Ceccato.

Slides:



Advertisements
Similar presentations
Mobile Agents Mouse House Creative Technologies Mike OBrien.
Advertisements

What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
COM vs. CORBA.
Eric Colon Royal Military Academy CoRoBA, an Open Framework to integrate Multi-Sensor Robotic Systems.
COURSE: COMPUTER PLATFORMS
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Remote Method Invocation
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Principles of Object-Oriented Software Development The language Java.
CMS Michele Gulmini, CHEP2003, San Diego USA, March Run Control and Monitor System for the CMS Experiment Michele Gulmini CERN/EP – INFN Legnaro.
The Architecture of Transaction Processing Systems
March 2003 CHEP Online Monitoring Software Framework in the ATLAS Experiment Serguei Kolos CERN/PNPI On behalf of the ATLAS Trigger/DAQ Online Software.
L. Granado Cardoso, F. Varela, N. Neufeld, C. Gaspar, C. Haen, CERN, Geneva, Switzerland D. Galli, INFN, Bologna, Italy ICALEPCS, October 2011.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Client/Server Architectures
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
CMS Michele Gulmini, Cern, DAQ Weekly 07/05/ RCMS – Plan of work Michele Gulmini DAQ Weekly 7th May 2002.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Boosting Event Building Performance Using Infiniband FDR for CMS Upgrade Andrew Forrest – CERN (PH/CMD) Technology and Instrumentation in Particle Physics.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
CMS Luigi Zangrando, Cern, 05/03/ RCMS for XDaq based small DAQ Systems M. Gulmini, M. Gaetano, N. Toniolo, S. Ventura, L. Zangrando INFN – Laboratori.
C.Combaret, L.Mirabito Lab & beamtest DAQ with XDAQ tools.
SUMA: A Scientific Metacomputer Cardinale, Yudith Figueira, Carlos Hernández, Emilio Baquero, Eduardo Berbín, Luis Bouza, Roberto Gamess, Eric García,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
1 CS122B: Projects in Databases and Web Applications Spring 2015 Notes 03: Web-App Architectures Professor Chen Li Department of Computer Science CS122B.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
7. CBM collaboration meetingXDAQ evaluation - J.Adamczewski1.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Overview of DAQ at CERN experiments E.Radicioni, INFN MICE Daq and Controls Workshop.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
The Process Manager in the ATLAS DAQ System G. Avolio, M. Dobson, G. Lehmann Miotto, M. Wiesmann (CERN)
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Online Monitoring for the CDF Run II Experiment T.Arisawa, D.Hirschbuehl, K.Ikado, K.Maeshima, H.Stadie, G.Veramendi, W.Wagner, H.Wenzel, M.Worcester MAR.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CMS Luigi Zangrando, Cern, 16/4/ Run Control Prototype Status M. Gulmini, M. Gaetano, N. Toniolo, S. Ventura, L. Zangrando INFN – Laboratori Nazionali.
Online Monitoring System at KLOE Alessandra Doria INFN - Napoli for the KLOE collaboration CHEP 2000 Padova, 7-11 February 2000 NAPOLI.
02/02/20001/14 Managing Commands & Processes through CORBA CHEP 2000 PaduaPadua Sending Commands and Managing Processes across the BaBar OPR Unix Farm.
CMS Luigi Zangrando, Cern, 16/4/ Run Control Prototype Status M. Gulmini, M. Gaetano, N. Toniolo, S. Ventura, L. Zangrando INFN – Laboratori Nazionali.
Mobile Analyzer A Distributed Computing Platform Juho Karppinen Helsinki Institute of Physics Technology Program May 23th, 2002 Mobile.
M. Caprini IFIN-HH Bucharest DAQ Control and Monitoring - A Software Component Model.
Online Software November 10, 2009 Infrastructure Overview Luciano Orsini, Roland Moser Invited Talk at SuperB ETD-Online Status Review.
Clara Gaspar, February 2010 DIM A Portable, Light Weight Package for Information Publishing, Data Transfer and Inter-process Communication.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Computer System Structures
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Remote Method Invocation
Controlling a large CPU farm using industrial tools
#01 Client/Server Computing
M. Gulmini, G, Maron, N. Toniolo, L. Zangrando
Star Online System Claude A. Pruneau, Mei-li Chen, Adam Kisiel, and Jeff Porter CHEP 2000, Padova, Italy.
Prof. Leonardo Mostarda University of Camerino
The Performance and Scalability of the back-end DAQ sub-system
Tools for the Automation of large distributed control systems
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
#01 Client/Server Computing
Presentation transcript:

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 M. Bellato (INFN – Padova) L. Berti (INFN – Legnaro) D. Ceccato (INFN – Legnaro) M. Gulmini (INFN – Legnaro) G. Maron (INFN - Legnaro) N. Toniolo (INFN – Legnaro) G. Vedovato (INFN – Legnaro) S. Ventura (INFN – Padova) X.Q. Yang (INFN – Legnaro) Java Based Run Control for CMS Small DAQ Systems Abstract #305

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 CMS small DAQ systems CMS small DAQs use the CMS DAQ model (RU, EB, BU, RCN) with components scaled down (performances and/or size) according to the needs. Hardware and software components may differ on each small DAQ, so that PLATFORM and OPERATING SYSTEM independence are an important requirement for a Run Control System. CMS small DAQs use the CMS DAQ model (RU, EB, BU, RCN) with components scaled down (performances and/or size) according to the needs. Hardware and software components may differ on each small DAQ, so that PLATFORM and OPERATING SYSTEM independence are an important requirement for a Run Control System. RU BUBU BUBU Level 1 Trigger Event Manager Detector Frontend Event Builder Controls Readout Builder Units Computing Services

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Java Run Control System achieves PLATFORM (SPARC, Pentium, PowerPC) and OPERATING SYSTEM (Solaris, Linux, vxWorks) independence using extensively CORBA and Java. Web based techniques have been used to provide a Web Graphical User Interface. Java Run Control System (JRCS) Objective : Provide an easy to customize Run Control framework for CMS small DAQs (and for small DAQs in general).

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 CORBA and JAVA CORBA (Common Object Request Broker Architecture): distributed object framework proposed by the Object Management Group (OMG), that allows transparent invocation of object methods on a network. supports several programming languages, including Java and C++. Evaluated CORBA implementations: – Orbix (C++ and Java) – Visibroker (C++ and Java) – TAO (C++) – JDK 1.2 (Java) JAVA provides platform and operating systems independence executing code on a Java Virtual Machine (JVM). Java Virtual Machines are freely available for almost all platforms. Java is a really powerful OO programming language; embedded multithreading, high level communication protocols support (CORBA, RMI, sockets,...), native C/C++ interface (JNI), and Web support (applets, swing classes) are only some features.

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 JRCS Overview Configuration Manager GUI Job Manager Information Manager CORBA Communication Backbone Root Component Manager DAQ Component Manager DAQ Component Manager DAQ Component Manager DAQ Component CORBA TCP, IPC, pthreads... CORBA Name Server

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Component Manager (I) User Interface Root Manager Component Manager DAQ Component Manager DAQ Component Manager DAQ Component Experiment Control Event Builder Event Filter Managers ReadOut FilterUnit Managers ReadOut FilterUnit Tasks CHSM Theoretically rigorous language system used for implementing Concurrent, Hierarchical, finite State Machine (Harel’s state chart) Outputs C++ code Developed and written by Paul J. Lucas and Fabio Riccati Run control system for Chorus has been written with CHSM by Fabio Riccati ATLAS Run control system is based on CHSM Component Managers are organized as a tree, where the leaves are directly connected to the DAQ Component to control. The user interacts with the system using a GUI that sends commands to the Root Manager. Component Managers are based on the Harel’s State Charts (CHSM package). The Finite State Machines are the same for all the Component Managers. Component Managers are organized as a tree, where the leaves are directly connected to the DAQ Component to control. The user interacts with the system using a GUI that sends commands to the Root Manager. Component Managers are based on the Harel’s State Charts (CHSM package). The Finite State Machines are the same for all the Component Managers.

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Component Manager software layers Two Finite State Machines have been implemented. A ‘Communication FSM’ manages the communications between Component Managers. A ‘Component FSM’ manages the DAQ Component behaviour; the actions associated to a state transition have to be customized depending on the DAQ Component to control, overriding one C++ class methods (State Transition Implementation). Two Finite State Machines have been implemented. A ‘Communication FSM’ manages the communications between Component Managers. A ‘Component FSM’ manages the DAQ Component behaviour; the actions associated to a state transition have to be customized depending on the DAQ Component to control, overriding one C++ class methods (State Transition Implementation). C++ / Java Interface Server / Client Java Native Interface Server / Client Implementation CORBA Java Virtual Machine Java State Transition Interface Component Finite State Machine State Transition Implementation (User code) CHSM C++ Communication Finite State Machine C++ Component Manager software layers

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 class CmpTaskBase { public:... virtual bool enterAction() {} virtual bool exitAction() {} virtual void configAction() {} virtual void abortAction() {} virtual void startAction() {} virtual void stopAction() {} virtual void pauseAction() {} virtual void resumeAction() {} virtual void resetAction() {}... }; #include "tcp_server.h" #include "tcp_client.h" #include "CmpTaskBase.h“ class CmpTaskImpl : public CHSM_set, public CmpTaskBase { public: CmpTaskImpl(CHSM_SET_ARGS): CHSM_set(CHSM_SET_INIT), CmpTaskBase() {} bool enterAction() {...} bool exitAction() {...} void configAction(){sendCmdToTask(CTF_CONFIG);} void abortAction() {sendCmdToTask(CTF_ABORT);} void startAction(){sendCmdToTask(CTF_START);} void stopAction(){sendCmdToTask(CTF_STOP);} void resetAction(){sendCmdToTask(CTF_RESET);}... private: voidsendCmdToTask(int cmd) {...};... }; State Transition Interface State Transition Implementation (User code)

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Auxiliary services Configuration Manager:  Component managers’ tree structure  Component Managers configuration  DAQ component setup and configuration Actually on flat files; integration with a DBMS planned Job Manager:  Launches, kills and monitors JRCS servers and DAQ components Information Manager:  Handles status information of the several components  Manages Log and Error Messages  Message dispatcher; error, log and status messages are sent to the subscribed clients (for instance a GUI); messages can be synchronous (consequence of a control command) or asynchronous (for instance the crash of a DAQ component)

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 User Interface (I) Web based Graphical User Interface Several approaches have been investigated Servlet approach (at the very beginning):  All the functionalities are embedded in a Web Server; problematic Applet approach :  a CORBA applet has been developed; it manages all the CORBA client code providing a nice API to the GUI developer  Graphical part can be made using Java swing classes; many integrated development tools are available. Applet GUI (swing) APPLET ( Link ) CORBA JRCS Applet approach

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 User Interface (II) Web based Graphical User Interface Dynamic HTML approach :  The communication ‘CORBA applet’ is used  Graphical part is done using HTML and Javascript  A Javascript wrapper providing an API to the JRCS has been implemented  The Java/Javascript interface is provided by LiveConnect, a javascript interpreter provided with modern browsers  The graphical development is quite difficult, no very good development tools found HTML ( Static GUI ) JAVASCRIPT ( Dynamic GUI ) APPLET ( Link ) LiveConnect CORBA JRCS Dynamic HTML approach

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 User Interface (III) Other approaches are suitable: GUI as CORBA application (Java, C++) Character user interface (command scripts)  JAVASCRIPT!!! (see next slide) Java application

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Command Sequencer function sendCommand(cmd) { document.JSWrapper.sendCommand(cmd, Params); } function wait(sec) { document.JSWrapper.wait(sec); } function userScript() { sendCommand (BOOT,””); sendCommand (CONFIG,””); sendCommand (START,”FileOutput=DATA&Run=5”); wait (600); sendCommand (STOP,””); sendCommand (RESET,””); sendCommand (SHUTDOWN,””); } Using Javascript the final user can write sequences of control commands Netscape/IE/Rhino Javascript Interpreter JavaScript Library HTML/JavaScript/Swing (User Code) Java - CORBA Netscape/IE/JRE JVM UI software layers

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 GUI

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Conclusions Java is a really powerful programming language: main troubles with JNI Integration with CORBA makes the system really platform and OS independent JRCS is suitable to control DAQs with up to few tens of components due to overheads introduced by CORBA. Web based techniques are suitable to implement GUIs; by our experience the applet approach is actually to prefer to the dynamic HTML approach. JRCS was tested the first time on a real environment on July ’99 for the CMS muon chamber testbeam DAQ (see talk B315) Future: Work is still in progress... JRCS will be integrated with other DAQs: CMS muon chamber DAQ in Legnaro CMS muon chamber testbeam DAQ ( CERN – July 2000) CMS RPC (INFN-Bari) ?? Other experiments in Legnaro (PRISMA,...)

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 M. Bellato (INFN – Padova) L. Berti (INFN – Legnaro) D. Ceccato (INFN – Legnaro) M. Gulmini (INFN – Legnaro) G. Maron (INFN - Legnaro) N. Toniolo (INFN – Legnaro) G. Vedovato (INFN – Legnaro) S. Ventura (INFN – Padova) X.Q. Yang (INFN – Legnaro) Java Based Run Control for CMS Small DAQ Systems Abstract #305

Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 Error Detection and Recovery Error detection and recovery procedures have been implemented The Information Manager is the core of the ‘Error Detection System’ since it handles the status information of the several components; Every server can be started and killed independently to the others. Each server checks periodically its CORBA connections; when a connection problem is detected an automatic reconnection procedure starts; Error recovery actions can be done by the GUI DAQ dependent automatic error recovery procedures have to be implemented according to the needs (the ‘command sequencer’ feature helps!!);