/** \page root_plugin ROOT plugin for DABC (libDabcRoot.so) \subpage root_plugin_doc \n \subpage root_plugin_usage \ingroup dabc_plugins */ /** \page root_plugin_doc Short description of ROOT plugin This should be description of ROOT plugin for DABC. */ /** \page root_plugin_usage Usage of DABC in ROOT Introduction ============ Main motivation for writing of libDabcRoot plugin - provide web interface to the arbitrary ROOT-based analysis. Therefore here functionality of DABC web server and its usage is described DABC Compilation ================ First of all, ROOT itself should be compiled and configured. DABC uses ROOTSYS shell variable, therefore it should be defined before DABC compilation starts. One could use ". your_root_path/bin/thisroot.sh" script. Normal DABC compilation procedure should be performed, [details can be found here](\ref dabc_getting_started). At the end of the DABC compilation libDabcRoot.so library will be created in $DABCSYS/lib subdirectory. Running of web server ===================== After DABC compiled and ". dabclogin" initialization script is called, one just starts root session and creates \ref THttpServer instance at any moment of macro execution. For instance: [shell] root -b -l root [0] new THttpServer("http:8095"); root [1] .x $ROOTSYS/tutorials/hsimple.C hsimple : Real Time = 0.14 seconds Cpu Time = 0.15 seconds (class TFile*)0x2b74510 root [2] After http server is started, one should be able to conntact it with the address `http://your_host_name:8095/` One could continue root usage, creating or deleteing histograms or any other objects - it will not disturb running server. Threads safety ============== Current interface between ROOT application and http server is __threads safe__. There are several threads, which are used in DABC for data organization and communication with clients via http protocol. But all data exchange with ROOT is performed from the main process, where ROOT code is running. Therefore when objects (like histograms or canvases) are streamed, no any user code is executed. JSRootIO ======== Main part of the browser code based on modified [JSRootIO](http://root.cern.ch/drupal/content/trevolutionjs) project, devloped by Bertrand Bellenot. [Here is](http://bellenot.web.cern.ch/bellenot/Public/JSRootIO/) demonstrator, repository is http://root.cern.ch/git/rootjs.git. [Modified](http://web-docs.gsi.de/~linev/JSRootIO/index_local.htm) version provides: - online features - update of objects content - drawing performance optimization - context-menu support - many bug fixes New code integrated into DABC, but also provided as separate repository on github: https://github.com/linev/JSRootIO.git Functionality of the modified code can be tested on http://web-docs.gsi.de/~linev/JSRootIO/index_local.htm THttpServer in ROOT =================== Since May 2014 THttpServer class is included into ROOT repository (versions 6-00 and 5-34). Therefore it is no longer necessary to install DABC to use it with pure ROOT application. One could benefit from DABC when heterogenoius systems, involving other components like DAQ and slow-control, are planned. THttpServer class (and several others) will remain some time in DABC package to support older ROOT versions. For any comments and wishes contact \n Sergey Linev S.Linev(at)gsi.de */