Online Data ing Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2 Masaki Ishitsuka 1, Masahiro Kuze 1, Yasunobu Sakamoto 3 CHEP2010@ taipei, 10/20/2010 1. Tokyo Institute of Technology, 2. CNRS/IN2P3-APC Laboratory (Paris), 3. Tohoku Gakuin University
DAQ sub-systems Network-distributed data acquisition system Local area network on site shifter firewall off site persons DAQ subsystems and monitoring information are distributed in local network Requirements for online monitoring 1. A lot of connections to DAQ sub-systems must be handled 2. ing information must be available from outside of firewall CHEP@Taipei, 2010/10/20 2
Online monitor framework General software framework for online data monitoring Collects information from network distributed systems All information are handled as collections of histograms HistogramPackage : Common interface via network Displays to shifters far from experimental sites via internet DAQ sub-systems Create and update HistogramPackages Server Collects HistogramPackages from DAQ sub-systems Viewer Connect to Server and create graphical plots Two types with different technologies: Java, web browser CHEP@Taipei, 2010/10/20 3
HistogramPackage Common interface via network DAQ sub-systems to Server Server to Viewers Collections of histograms Package name (String) : used for identification Update serial ID (Integer) : used for checking updates Array of ed Objects Histograms (1-D and 2-D) Graphs (normal graph and timed graph) Updates all histograms at the same time Send updates of the histograms at once CHEP@Taipei, 2010/10/20 4
Overview of Online framework DAQ sub-systems Local area network web server www Server HTTP web version of Viewer TCP Java version of Viewer Available from everywhere via Internet CHEP@Taipei, 2010/10/20 5
DAQ sub-systems Server Skelton shared memory Server Provider thread process Viewers Several DAQ sub-systems can communicate in parallel Viewer gets all HistogramPackages with one connection CHEP@Taipei, 2010/10/20 6
Data transition to Viewers DAQ sub-systems have triggers to start updating data DAQ sub-systems Skelton shared memory Server Provider Viewer always wait for updates of the package notify updates via condition variables wait for updates of the packages always wait for updates of the packages CHEP@Taipei, 2010/10/20 7
Viewer Available from everywhere via Internet Independent to platform (Windows, Mac OS, Linux) Free from additional plug-ins or libraries Technologies Java : Swing with Java web start technologies web : Google web toolkit, Ajax, Canvas (HTML5) Create graphical plots on viewer sides Dynamic control of plots (zooming, changing colors, ) GUI layouts are automatically generated by files Panels, tables,tabs, scroll bars etc.. Specifics of objects (colors, width, font, draw options, ) Additional objects (legend, axis, text, ) CHEP@Taipei, 2010/10/20 8
Data stream to Viewer Server Java Viewer TCP binary High performance web Server Server Proxy HTTP / Ajax Web browser Viewer Easy to access CHEP@Taipei, 2010/10/20 9
Screen shots of Viewer dummy data Web browser version on Google Chrome dummy data Java version CHEP@Taipei, 2010/10/20 10
GUI generation (Tabbed panels) <package title= Dummy"> <tabbedpanel> <tab title= Main"> <tabbedpanel> <tab title= Readout"> </tab> <tab title="disk"> </tab> <tab title="dead channels"> </tab> </tabbedpanel> </tab> <tab title= Module"> </tab> </tabbedpanel> </package> CHEP@Taipei, 2010/10/20 11
GUI generation (Tables) second table first table <package title= Dummy"> <tabbedpanel> <tab title= Main"> <tabbedpanel> <tab title= Readout"> <table col= 2 row= 1 > <table col= 2 row= 2 > <canvas /> <canvas /> <canvas /> <canvas /> </table> <canvas /> </table> </tab> </tab> </tabbedpanel> </package> CHEP@Taipei, 2010/10/20 12
Control of graphical objects Legend of objects dummy data Additional line for reference Draw Option : AL extra y-axis <canvas name="c_disk" title="disk usage"> <histo name="g_disk_available" maximum="600" minimum="0 line-color="black" fill-color="light_gray draw-option="al" /> <histo name="g_disk_used" line-color="red" fill-color="pink linked-axis="a_used" draw-option="al" /> <graph name="g_disk_full" draw="0, 500: 60, 500 line-color="green" draw-option="al" /> <y2-axis name="a_used" direct="y" pos="right" title="data rate [GB] minimum="0" maximum="10" line- color="red" line-width="1 font-color="red" label-font-color="red" /> <legend list="g_disk_available, g_disk_used" /> </canvas> CHEP@Taipei, 2010/10/20 13
Control of graphical objects dummy data 2-D histogram <canvas name="c_module_state"> <histo name="histo_2d" draw-option="al" maximum="4" minimum="0" line-color="white" line-width= 4 /> <color-axis color-pattern="blue,green,yellow,red" label="off,stable,warning,error;0.5,1.5,2.5,3.5 label-font-size="0.9" line-color="none" /> </canvas> CHEP@Taipei, 2010/10/20 Color axis 14
Summary Developed general software framework for online monitoring Network-distributed systems create HistogramPackage s Server collects the packages Viewer makes graphical plots from the packages Two types of Viewer were developed Available from everywhere via Internet The GUI layouts are controlled by files Developed for the Double Chooz experiment Already being used on-site for the detector commissioning CHEP@Taipei, 2010/10/20 15
Technologies for Viewer Java version Swing Java web start web browser version HTML technologies (Ajax + Canvas) Google Web Toolkit compiler from Java to HTML + java script GUI components GUI event handlers Ajax : Unsynchronized communication to web servers Canvas : Vector graphics on web pages CHEP@Taipei, 2010/10/20 16