THttpServer for ROOT Bertrand Bellenot, CERN Sergey Linev, GSI Darmstadt 28.02.2014.

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 4: Web Browsing.
IWay Service Manager 6.1 Product Update Scott Hathaway iWay Software Copyright 2010, Information Builders. Slide 1.
Lesson 4: Web Browsing.
Wireless LAN Topology Visualiser Project Supervisor: Dr Arkady Zaslavsky Project Team Members: Jignesh Rambhia Robert Mark Bram Tejas Magia.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
CP476 Internet Computing Browser and Web Server 1 Web Browsers A client software program that allows you to access and view Web pages on the Internet –Examples.
E-Commerce The technical side. LAMP Linux Linux Apache Apache MySQL MySQL PHP PHP All Open Source and free packages. Can be installed and run on most.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
© 2010 UEI, Inc. All Rights Reserved UEIPAC HMI.
Bertrand Bellenot root.cern.ch ROOT I/O in JavaScript Reading ROOT files from any web browser ROOT Users Workshop
Reading ROOT files in any browser ROOT I/O IN JAVASCRIPT Bertrand Bellenot CERN, PH-SFT.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
DIRAC Web User Interface A.Casajus (Universitat de Barcelona) M.Sapunov (CPPM Marseille) On behalf of the LHCb DIRAC Team.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
Test Of Distributed Data Quality Monitoring Of CMS Tracker Dataset H->ZZ->2e2mu with PileUp - 10,000 events ( ~ 50,000 hits for events) The monitoring.
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
The Internet  Internet Hardware connected together Creates a massive worldwide network  Hardware Computers Communication lines  Interlinked collection.
THttpServer class Sergey Linev (GSI). Some history Development was inspired by JSRootIO why not achieve similar functionality with online ROOT application?
JavaScript ROOT Bertrand Bellenot (CERN) Sergey Linev (GSI)
Experiences, limitations and suggested improvements The ALICE DQM Software and ROOT ROOT Users Workshop Barthelemy von Haller & Adriana Telesca for the.
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
DABCDABC J. Adamczewski-Musch, H.G. Essel, S. Linev Software development for CBM DAQ J. Adamczewski-Musch, H.G. Essel, S.
CMS pixel data quality monitoring Petra Merkel, Purdue University For the CMS Pixel DQM Group Vertex 2008, Sweden.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
Go4 v3 - J.Adamczewski, H.G.Essel, S.Linev IT/EE Palaver Go4 version 3.
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
1 23.July 2012Jörn Adamczewski-Musch TRB / HADAQ plug-ins for DABC and Go4 Jörn Adamczewski-Musch GSI, Experiment Electronics: Data Processing group EE-meeting,
Developments and applications of DAQ framework DABC v2 Jörn Adamczewski-Musch, Nikolaus Kurz, Sergey Linev GSI / Experiment Electronic.
DABCDABC D ata A cquisition B ackbone C ore J.Adamczewski, H.G.Essel, N.Kurz, S.Linev 1 Work supported by EU RP6 project.
13 June 2001M.Al-Turany/Root20011 Mohammad Al-Turany Go4 GSI Darmstadt 13 June 2001.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
CMS Luigi Zangrando, Cern, 16/4/ Run Control Prototype Status M. Gulmini, M. Gaetano, N. Toniolo, S. Ventura, L. Zangrando INFN – Laboratori Nazionali.
ROOT I/O in JavaScript Browsing ROOT Files on the Web For more information see: For any questions please use following address:
GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GGO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4G.
Web-based Access to ROOT at D-Zero Joel Snow Langston University/D0 Collaboration CHEP 2001 Displaying histograms dynamically generated by ROOT in a Web.
Online Monitoring System at KLOE Alessandra Doria INFN - Napoli for the KLOE collaboration CHEP 2000 Padova, 7-11 February 2000 NAPOLI.
Web-based Access to ROOT at D-Zero Joel Snow Langston University/D0 Collaboration ROOT 2001 Displaying histograms generated by ROOT in a Web BrowserDisplaying.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
JavaScript and Ajax (Internet Background) Week 1 Web site:
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
Reading ROOT files in (almost) any browser.  Use XMLHttpRequest JavaScript class to perform the HTTP HEAD and GET requests  This class is highly browser.
Overview Web Technologies Computing Science Thompson Rivers University.
Lect5.ppt - 02/23/06 CIS 4100 Systems Performance and Evaluation Lecture 6 by Zornitza Genova Prodanoff.
CMS Luigi Zangrando, Cern, 16/4/ Run Control Prototype Status M. Gulmini, M. Gaetano, N. Toniolo, S. Ventura, L. Zangrando INFN – Laboratori Nazionali.
Computing Facilities CERN IT Department CH-1211 Geneva 23 Switzerland t CF CC Monitoring I.Fedorko on behalf of CF/ASI 18/02/2011 Overview.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
 Internet Hardware connected together Creates a massive worldwide network  Hardware Computers Communication lines  Interlinked collection of smaller.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
CSE541: Web Applications Special Thanks to M. Abdur Rahman.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Go4 v2.2 Status & Overview CHEP 2003
Web Technologies Computing Science Thompson Rivers University
JavaScript ROOT
Lesson 4: Web Browsing.
HADES Event Builder Status HADES Coll. Meeting XXX, Lisboa
Distributed object monitoring for ROOT analyses with Go4 v.3
3D graphics in JavaScript ROOT
Lesson 4: Web Browsing.
Web Technologies Computing Science Thompson Rivers University
Presentation transcript:

THttpServer for ROOT Bertrand Bellenot, CERN Sergey Linev, GSI Darmstadt

B.Bellenot, S.Linev, THttpServer for ROOT2 JSRootIO  Written on JavaScript, works in all major browsers IE, Firefox, Opera, Safari, Android, …  Allows to draw many kinds of ROOT objects TH1, TH2, TH3, TProfile, TGraph, THStack, TCanvas  Demonstrator:  Interactive graphics directly in the browser: changing of draw style, zooming, bins info update of statistic in stat box different context menu commands  Main aim – display objects from ROOT files PRO - no need for special code on the web server CONTRA – not possible to update data dynamically

B.Bellenot, S.Linev, THttpServer for ROOT3 JSRootIO for online?  JSRootIO is file-based difficult to use for online tasks not really scales for big systems  Much more benefits if will run online one would see live results from running experiment from any place of the world  One need special web application, which can provide online data to JSRootIO

Web server for ROOT  THttpServer class provides web server for arbitrary ROOT application  In any place of ROOT macro: root [0].x $ROOTSYS/tutorials/hsimple.C root [1] new THttpServer();  No any changes in ROOT framework are required  No any changes in user code are required B.Bellenot, S.Linev, THttpServer for ROOT4

B.Bellenot, S.Linev, THttpServer for ROOT5 hsimple.C in web browser

Main classes  TRootSniffer - `sniffer`for objects hierarchies in TFolder, TFile/TDirectory, TTree, TCollection  THttpEngine – abstract class for implementing http protocol TMongoose – embeddable web server, based on  TFastCgi – FastCGI protocol implementation  supported by all major web servers like Apache, MS IIS, lighttpd,...  THttpServer – central class receive http requests from engine(s) http requests processed by sniffer takes care about threads safety B.Bellenot, S.Linev, THttpServer for ROOT6

THttpServer  Any object can be registered in TFolder structure: root [5] h1 = new TH1I(“h1”, “title”, 5, 0, 5); root [6] serv->Register(“folder”, h1);  Following http requests are processed:  xml file with objects hierarchy, used to build tree structures in browser  binary zipped data, produced by object streaming  binary zipped data of current streamer infos  png image, produced from TCanvas  returns generic (or user-defined) html page, shown before B.Bellenot, S.Linev, THttpServer for ROOT7

FastCGI support  Protocol for interfacing interactive programs with web servers  Supported by all major web servers Apache, lighttpd, MS IIS, Cherokee, Hiawatha, LiteSpeed, Kerio, Nginx, Resin, Roxen, Zeus...  One benefits from common infrastructure user access, security, encryption, balancing,...  Can run in parallel to HTTP server B.Bellenot, S.Linev, THttpServer for ROOT8 ROOT http FastCGI Apache http

Project state  Developed since mid 2013  Works with ROOT 5.14 and 6.00  Tested on Linux and Windows  No external dependencies mongoose is just two source files mongoose is GPL2, can be replaced by civetweb with MIT license FastCGI is optional, provided by all Linux distributions  For the moment available on: B.Bellenot, S.Linev, THttpServer for ROOT9

Current applications  Integrated into DABC DABC is DAQ framework, used in different experiments now also provides generic web interface for online software  DAQ – DABC, MBS (GSI standard DAQ)  slow control – FESA (CERN/GSI accelerator control), EPICS, DIM  online analysis – Go4, ROOT  Integrated with Go4 Go4 is analysis framework with QtRoot online monitoring interface now also web interface without changing user-code  Evaluated by different groups in GSI: HADES, SuperFRS, R3B  Could be used in AMORE framework of ALICE B.Bellenot, S.Linev, THttpServer for ROOT10

Possible developments  Replace mongoose by ROOT TThread/TSocket classes many parts of original mongoose code can be reused, ~1 month of work  Implement caching on the server preventing application from overload, ~1 week of work  Implement more http requests  convert object into xml with TBufferXML, ~1 hour of work  stream object into JSON representation directly  no need for ROOT I/O in JavaScript  one need TBufferJSON class, ~2 weeks of work  access to object members in simple text form  mostly implemented, ~3 days of work  provide command interface via http protocol  any user-defined commands with extra parameters  user authentication with standard http methods B.Bellenot, S.Linev, THttpServer for ROOT11

More than web interface  One can use http protocol to communicate with any running ROOT application  From any script: wget wget  For many cases no need for extra sockets and special protocols B.Bellenot, S.Linev, THttpServer for ROOT12

Backup slides B.Bellenot, S.Linev, THttpServer for ROOT13

Use case – HADES B.Bellenot, S.Linev, THttpServer for ROOT14 TRB Event builder hld files hld DABC stream HYDRA2 web browser go4 gui EvBld

Use case – HADES  DABC as DAQ system collects data from TRBs store HLD files deliver data to online analysis  Stream event source to connect DAQ HYDRA2 analysis gets data directly via socket instead of temporary hld files  THttpServer for analysis monitoring no any change in HYDRA2 itself  Monitor DAQ and analysis via same interface B.Bellenot, S.Linev, THttpServer for ROOT15

Use case – HADES  Online analysis  Many processes in parallel doing same events or different events  Histograms collector (to be done) B.Bellenot, S.Linev, THttpServer for ROOT16 Event builder DABC stream EvBld hld files HYDRA2 Histograms collector

B.Bellenot, S.Linev, THttpServer for ROOT17 Go4ExampleSimple in web browser

B.Bellenot, S.Linev, THttpServer for ROOT18 Use case – DAQ and slow-control middleware DABC MBS EPICS slow-control variables ROOT online analysis http go4 online analysis FESA beam profiles DABC DAQ status and log information

Use case – several DABC nodes B.Bellenot, S.Linev, THttpServer for ROOT19 MBS FESA MBS go4 online analysis EPICS ROOT analysis DABC http DABC Master http socket http socket FastCGI Apache http Preferable Optional

B.Bellenot, S.Linev, THttpServer for ROOT20 Alternatives to web browser DABC http socket web browser go4 gui with native ROOT graphics SOAP, JSON console-based tools DABC API

B.Bellenot, S.Linev, THttpServer for ROOT21 How it works – hierarchy request wget

B.Bellenot, S.Linev, THttpServer for ROOT22 How it works – item request wget serveritemrequest

B.Bellenot, S.Linev, THttpServer for ROOT23 How it works – history request wget