Use of interactive SVG maps and web services to monitor CMS tracker


The complexity of the hep detectors for LHC (CMS Tracker has more than 50 millions of electronic channels), the large number of people in charge of it (more than 100 people from 10 labs distributed worldwide) and the availability of the Grid computing environment require novel ways to visualize data coming from detector for use in online monitoring.We suggest here an approach that takes advantage of the distributed computing environment.Web services will ship the data from the control room to the user desktop in the form of svg maps. These contain the monitoring information represented in a compact way and have interactive features that allow the user to diagnose quickly detector problems.


SVG (Scalable Vector Graphics) W3C specification is slowly becoming a standard way to show graphically information on the Web in 2D. Some outstanding use of it to represent statistical data on geographical maps shows how sending a svg file plus some Javascript code may allow an user with a SVG enabled browser to display and interact with the information sent in many ways. The quality of maps rivals the paper equivalent with a interactivity impossible on paper.Real-time update of the map is also possible through Javascript. We would like to explore here if this approach is possible also with CMS tracker monitoring data. We have already developed a map of the tracker and we would like to see if monitoring can be done by sending this map + data coming from control room in svg. This would avoid the necessity to use a special program (in Java or C++) to see the map:a normal browser with an SVG plugin will suffice.

Web services instead are used to develop a standard interface to all information providers used for detector monitoring.


SVG is already being used in HEP (and outside HEP) visualisation tools as a standard way to export 2D graphics. For this use it should replace the postscript format since it has the same capability to represent vector graphics (shapes, text and embedded images).If you compress the text file, it is also more compact.
Svg images can be zoomed and panned exactly like a postscript images. By adding Javascript code other interactive features can be added. In our case the most important are:

Web access to monitoring data

Monitoring the CMS tracker requires access to the following data sources: We want for example to: Since each data source has a different api, we define a single XML format for tracker data and instead of accessing the data directly, we use web services that act as gateways to data sources. The data is transformed in this xml format and sent back to the SVG image when the user requires new data to display. The data about the geometry are only accessed once, at the beginning of a interactive session , and produce the sending of the SVG image itself. In some cases,when the data to be sent is too much, it can be transferred directly in the SVG format thus replacing the previous image.

The tracker map

In the past the main visualization tool for monitoring was a histogram presenter that would show a set of histograms and tables updated regularly. The CMS tracker has more than 50 milions channels organized in 16540 modules each one being a complete detector: its monitoring requires many thousands of histograms to be computed every few minutes. An histogram presenter is not enough: people in charge for monitoring need a representation that would show all modules at once in a single computer screen with single modules information coded in some way. This is the representation implemented in the SVG image. This "tracker map" is obtained in the following way: since the single module is flat , we imagine to disassemble the whole tracker and to assemble it again on a flat surface putting the single modules in positions which are connected to their spatial position. Data from each one of the data sources described in the previous paragraph can be represented on this map. For example the single module can show coded with a color: Holes or hot spots in the map can pinpoint detector problems.In this case the interactive nature of the map is essential. In this use for Web monitoring, the map has the additional advantage of minimizing data transfer (of course this map can be used also locally in the control room).


The architecture of the system can be seen in this image. The web browser can connect to many data servers:one for each data source. To implement the data servers as web services we used Tomcat + Axis. Axis (working as a Tomcat servlet) provides web services following the W3C definition with SOAP and WSDL. Both the request and the answer are sent in a SOAP envelope. Up to now the data servers can provide data from two different sources : The implementation of these Web services is described in detail elsewhere.

Implementation:the SVG map

When the user requests data to the service, the first time he gets an SVG image of the tracker containing Javascript code. This image is built using the geometrical data of the detector and can be of two differend types:
  1. Tracker map with overlayed modules:this is good if you want to see exactly how modules overlap.
  2. Tracker map with separated modules: in this case each module (also in a stereo pair) is represented by a separate polyline.

In addition to the normal interactivity of SVG images (zoom and panning) we added through Javascript functions:

Implementation:real time update of the map

Further requests of data are done using Javascript. This request is done using a different API for Javascript embedded in the Adobe plugin and Javascript embedded in the browser. These tests were done using a Adobe plugin, so we used the first method, but after the release of Mozilla/Firefox with SVG native support, we will require the second method.

In the first method we use the geturl function. If the XML file is successfully received, we use the parseXML function to parse the file attaching it to the DOM document containing the SVG map. Then we can traverse the tree updating the SVG with the new data.

In the second method the XMLHttpRequest object is used to contact the remote server. It has many methods that allow to contact the data server, to receive the data asynchronously and to extract them directly from the document's DOM tree (no need to do parsing).
Tracker map with single event, integrated signal from 50 events.


The test was done on a PC with a Pentium IV CPU and with both the Linux and Windows operating system. The version of the Adobe plugin to view SVG was 3.01 on Linux and 3.02 on Windows.
The size of the Ascii file containing the tracker map in SVG is around 3 MB. The time necessary to have the map loaded in the browser is around 20 seconds. This time is due mostly to extract the data and build the DOM tree for the SVG image which contains around 100,000 nodes. The time necessary to transfer the data from the remote computer was negligible in our case (it depends on the speed of the Internet connection. After these 20 seconds all the local image manipulations provided by the interface (zoom , pick,etc) are fast. Also printing the image on screen is done excellently by the Adobe plugin.

Unfortunately the real time update of the map with Javascript is too slow and can be used only if you have to change a small portion of the image. The traversal of the complete DOM tree requires 5 minutes on Windows and 7 minutes on Linux! For this reason it is a lot faster to send new data directly in SVG format and update the SVG image by loading a new one which replaces completely the previous image (because this only requires 20 seconds).

At last for this kind of application it is unrealistic to send a new event in XML format and use these data to update the image. This approach is easy to be implemented in Javascript but the speed of execution of Javascript code on computers is nowaday too slow. From this point of view a Java client is a lot more efficient since ,from our tests, it processes the same amount of data (a XML tree with 100,000 nodes) in around 10 seconds[].

Does this limit the use of SVG in our application? Not necessarily but you must be warned that you have to limit the local processing of the image to operations that don't require big reprocessing of the image (in terms of % of nodes to be processed). This requires the development of a special strategy where for example:

  1. When one clicks on a module, a request is sent to a server for an histogram of the module and this, after the data is received, is represented in a special window below the tracker map.
  2. To get information from other data servers you must click for example on a button that links the data server. The result is a new SVG image that replaces completely the actual image but has the same interface (Of course this can also be opened in another window of the browser).
  3. To get more detail you cannot use the same tree of the original image: the tracker has 50,000,000 channels! But we can proceed like we proceed for the module histograms in point 1. We can have a special area reserved for such detailed zoom and when one requests it by clicking on a module, the data about the module is requested to a server and displayed by updating the content of this window.


    Given the fact that the tracker is now in construction and data taking will start in 2007, this was first of all a feasibility study for real time monitoring from Internet using web services and SVG maps. The results show that monitoring a detector like CMS tracker from Internet should be feasible but with some limitations due to poor performance of Javascript in the browser. At least the following use case is feasible without problems. A monitoring program working in the control room can save every few seconds on a server Web an SVG image with the integrated signal map for the last events Anywhere in the world, an expert can in less than 20 seconds with a normal browser access it and check that everything is ok with the 17000 modules of the tracker. In case of problems he knows exactly which parts of the detectors are misbehaving and he can request using the same image more informations about these modules(histograms). The use of web services is essential in order to get data from different sources. The use of a map is also essential since it decreases the quantity of data to transfer. You don't have to transfer thousands of histograms but a single pictur with a suitable interface.