Online Data Monitoring Framework Based on
Histogram Packaging in Network Distributed Data
Acquisition Systems
Tomoyuki Konno1, Anatael Cabrera2
Masaki Ishitsuka1, Masahiro Kuze1,
Yasunobu Sakamoto3
1. Tokyo Institute of Technology, 2. CNRS/IN2P3-APC Laboratory (Paris),
3. Tohoku Gakuin University
Network-distributed data acquisition system
• DAQ subsystems and monitoring information are distributed in local network
•
Requirements for
online monitoring1. A lot of connections to DAQ sub-systems must be handled
2. Monitoring information must be available from outside of firewall
D A Q su b -s ys te ms
Local area network
off site persons firewall
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
•
Monitor Server
– Collects HistogramPackages from DAQ sub-systems
•
Monitor Viewer
– Connect to Monitor Server and create graphical plots
HistogramPackage
•
Common interface via network
– DAQ sub-systems to Monitor Server
– Monitor Server to Monitor Viewers
•
Collections of histograms
– Package name (String) : used for identification
– Update serial ID (Integer) : used for checking updates
– Array of Monitored Objects
• Histograms (1-D and 2-D)
• Graphs (normal graph and timed graph)
•
Updates all histograms at the same time
Overview of Online Monitor framework
web server DAQ sub-systems Java version of Monitor Viewer TCPLocal area network
www HTTP XML Monitor Server Available from everywhere via Internet web version of Monitor Viewer
Monitor Server
• Several DAQ sub-systems can communicate in parallel
• Monitor Viewer gets all HistogramPackages with one connection
Monitor
Skelton ProviderMonitor
Monitor Server shared memory Monitor Viewers DAQ sub-systems thread process
Data transition to Viewers
•
DAQ sub-systems have triggers to start updating data
Monitor
Skelton ProviderMonitor
Monitor Server shared memory Monitor Viewer DAQ sub-systems notify updates via condition variables wait for updates of the packages
always wait for updates of the
packages always wait for
updates of the package
Monitor 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 XML files
– Panels, tables ,tabs, scroll bars etc..
– Specifics of objects (colors, width, font, draw options, …)
Data stream to Viewer
XML XML
XML
Monitor Server Java Viewer
TCP binary Web browser Viewer XML XML XML web Server XML XML XML HTTP / Ajax Monitor Server Proxy High performance Easy to access
Screen shots of
Monitor Viewer
dummy data
dummy data Java version
Web browser version on Google Chrome
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>
GUI generation (Tables)
<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> first table second table
<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" />
dummy data
Additional line for reference
extra y-axis
Legend of objects
Draw Option : AL
Control of
dummy data
<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>
Control of
graphical objects
Color axis 2-D histogramSummary
•
Developed general software framework for online
monitoring
– Network-distributed systems create “HistogramPackage”s
– Monitor Server collects the packages
– Monitor Viewer makes graphical plots from the packages
•
Two types of Monitor Viewer were developed
– Available from everywhere via Internet
– The GUI layouts are controlled by XML files
•
Developed for the Double Chooz experiment
Technologies for Monitor 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