You are here: GSI Wiki>DABC Web>DabcNews (2015-11-17, LinevSergey)EditAttach



17.11.2015 Production release 2.9.0

Major new features:
  • libDabcHadaq
    • support of UDP packets sorting, enables use of TRB3 with two Ethernet links
    • support of on-the-fly TDC calibration
    • web interface for control combiner and TDC calibration
  • libDabcStream
    • run any stream code in DABC
    • support of native stream histograms, access to them via http protocol
    • possibility to run stream code parallel on many threads
    • integration with hadaq to provide monitoring and ROOT store directly in DABC
  • libDabcRoot
    • decouple TTree storage from other plugins
    • use it in stream plugin for TTree storage

This is last production release before version 3.0


15.10.2014 Production release 2.7.0

New version 2.7.0 was tagged.

Major changes: fully redesigned JavaScript code to display data from http server. Now JSROOT is base library.

-- LinevSergey - 15 Oct 2014


27.11.2013 Production release 2.6.0

New version 2.6.0 was tagged.

Major change in this version is close integration with Go4. From one side, with DABC functionality web interface provided to the go4analysis. One could now monitor histograms and graphs from arbitrary go4-based analysis. From other side, any DABC-based application can be monitored in go4 gui, which gives possibility to use native ROOT graphics.

Also many new features provided for MBS support in DABC. One could connect logger and command channel of MBS to the DABC and observe them via web browser. With next MBS release more advanced features will be provided.

-- LinevSergey - 27 Nov 2013

10.10.2013 Intermediate 2.3.5 version

New version 2.3.5 was tagged in the repository. Many efforts were done to introduce new functionality, but development is not yet finished.

New features:
  • clear hierarchy organization
    • support of the native data types and arrays (get rid of string conversion)
    • folder/item name no longer depends from objects hierarchy in dabc
  • clear http addressing scheme
    • folders and items names directly map into http address
    • like http://server:8090/Folder/Item/
    • possibility to display only part of hierarchy
    • or just simple display of single item
    • several kinds of requests
  • meaningful FESA plugin
  • binary store of hierarchy data (very preliminary)
  • player for the stored data (very preliminary)
  • access control to the published data (htdidgets method, only global file)
  • support of https protocol
  • command interface - possibility to control application via web

Some info can be find in presentation. This intermediate version could be used when due to any reasons trunk is not compiled or not working.

-- LinevSergey - 10 Oct 2013

31.07.2013 Consolidation of dabc::Buffer class

dabc::Buffer class plays central role in zero-copy data-flow concept of DABC. Together with memory pool, buffers queues and input/output ports it provides possibility to transfer data between different modules (or even different nodes) without any copy of the data (as long as transport layer supports this).

After the last changes dabc::Buffer now is derived from dabc::Reference class, which helps to perform different cleanup tasks automatically. As benefit, one can use dabc::Buffer class in many other places, where dabc::Reference was supported. For instance, one could attach buffer to dabc::Command instance.

dabc::Reference class was improved as well. Now it is normal smart pointer, which fully conforms C++ concepts (no any const_cast necessary). Now assignment operator always create copy of reference (increments object ref counter). With left-shift operator one can move references.

-- LinevSergey - 31 Jul 2013

30.07.2013 More functionality for hierarchy classes

After redesign of JavaScript ROOT graphics many possibilities are now opened for adding interactive components into dabc http server.

As extremely important new feature, history recording for arbitrary item in dabc::Hierarchy was introduced. Means predefined number changes of any item in the hierarchy can be automatically recorded. Content of such history recording can always be requested from the server via special http://server/gethistory request. Together with item changes one could record absolute time when change was happened. As a result, in browser one can always display time plot for any value like ratemeter or event number or whatever else. History recording can be used to collect and show log information.

New feature solves very old and well-known problem of any monitoring environment. Each kind of monitoring software must provide actual state of the system, but not each software can answer on simple question - that was several seconds (minutes, hours) before? Now in browser one could always obtain answer!

Feature used in the DabcGo4 plugin to record messages and debug output of analysis. Feature used in DabcMbs plugin to record output, produced from mbs status record (similar to rate command).

Potentially it also possible to save all such history data in binary files and use such files later to reconstruct and inspect recorded data afterwards. In some sense it is analogue to EPICS archiver functionality. If one goes one step further, it is possible to implement SQL interface for storing such data, which opens later much better possibility to work with and use such data.

-- LinevSergey - 30 Jul 2013

20.07.2013 Improved JSRootIO graphics

New DABC 2.3.0 release is available. Main changes in this version - fully redesigned graphics, used to display ROOT objects in the web browser. Changes are aimed to improve performance, usability and provides number of new features compare to original development of Bertrand.

List (not full) of major changes:
  • context menu - many new functions will be provided via such menu
  • comfort zooming - very like to native ROOT
  • creation and update of stat box for TH1 and TH2 histograms
  • correct treatment of log scales, possibility of toggling logscales
  • autozoom functionality - automatic zooming to non-zero content
  • significant performance grow (Firefox on Linux draws big histograms 10 times faster)
  • full refactoring of code, providing painter classes (analogue to ROOT painters)
  • easy possibility to update drawn object (important for monitoring)

Offline example can be used to test new features with files.

Motivation for JavaScript graphics redesign was requirement to provide more flexibility to the users in building webpages, containing ROOT graphics. Now it is possible to insert interactive ROOT elements practically in any place of web page. Of course, such feature immediately used by DABC-based http server to display and update ROOT objects drawing. Tested design with table 3x3 is very simple, but shows that approach is working. Of course, layout and functionality of objects browser in DABC web-application will be improved in next versions.

-- LinevSergey - 20 Jul 2013

2.07.2013: HTTP server for arbitrary ROOT and Go4 application

With new DABC 2.2.0 release many new features are introduced.

Major new features:

  1. In any ROOT session one could start HTTP server, which will provide access to existing histograms, canvases, files, .... It is enough to call in ROOT session "DabcRoot::StartHttpServer(8095);" After that in any browser open address http://your_host_name:8095 and see the result.
  2. Any go4 analysis can run HTTP server. Just add additional arguments when starting analysis from batch "go4analysis -file name.lmd -http 8095"
  3. DABC can run central server, which provides access to many client applications. It could be ROOT, Go4 or DABC-based application. Example of configuration file is provided. To connect to such server from ROOT session, it is enough to make call: 'DabcRoot::ConnectMaster("dabcnodename:4444");'
  4. Usage of client-server communication channel allows to monitor state of many processes without providing http server in every such application. DABC server communicate with clients via tiny socket channel, which will consume exactly one thread.

Is is not complete list of new features, but most important of them. Screenshot of browser for server, which connected with two clients and running itself generator application, shown here.

Complete development was inspired by JSRootIO development of Bertrand Bellenot. It gave possibility to stream and show most of ROOT classes. JSRootIO will be the core part of current DABC development in web browser side.

It is just prove of principals, which shows the way how server and browser code can be organized. Many application-specific code need to be implemented. Many other applications (FESA, MBS, EPICS, DIM) can be integrated with such approach.

It is not solution for everything, but concept how online distributed application can be monitored and controlled via normal web browser, benefiting from very advanced JavaScript ROOT graphics, provided by Bertrand.

-- LinevSergey - 02 Jul 2013

15.06.2013: Support of http protocol in DABC

With help of Mongoose web server http introduced into DABC. First tries with dynamic content is performed. Idea is to provide monitoring and controlling of DABC nodes via normal web browser. Simple hierarchy browser and graphical display of DABC ratemeters already implemented.

Usage of web protocols and normal web browsers should improve usability of DABC framework. Similar browsing and monitoring facility will be provided via go4 gui, text-based browser and even pure batch interface. Current development marked as DABC version 2.1.x.

More advanced features will follow soon ...

-- LinevSergey - 15 Jun 2013

15.04.2013: DABC2

Since end of 2012 many changes in DABC2 interface were implemented. Main motivation was to make interface more thread-safe, using references at most places. Also transport interface was radically change - this should simplify integration of external hardware and software components.

11.04.2013: CBM decides to exclude DABC/Go4

On 21st CBM collaboration meeting decision was made to exclude DABC and Go4 from any further activities. Special DABC tag marks last DABC version, which could be used for compilation of actual ROClib package.


20.04.2012: Repository location is changed

Now DABC repository located at There is read access for everybody. There is no need to specify any username/password to checkout it. To checkout and compile dabc just do:

[shell] svn co dabc
[shell] cd dabc; make

30.01.2012: DABC2 is main development branch

After about one year of development and intensive testing DABC2 from now will be main development branch of DABC framework. Since mid 2011 DABC2 was used by CBM collaboration in ROClib, including several testbeams in CERN/PS and Juelich/COSY. DABC2 is still in early beta phase - means minor interface changes are still possible. If everything goes well, DABC2 official release will be in second half of 2012. From this moment on ver2 branch is obsolete and will be removed after some time.


9.05.2011: 1 TB/s with DABC2

First big tests on LOEWE-CSC cluster were performed. 774 nodes were used in so called all-to-all communication test. Special transport schedule was applied, which takes into account cluster routing topology. Test program also includes skip mechanism when some operation cannot be completed in specified time. As result, overall data rate 1.14 TB/s was measured with only 0.7% of skipped packets. With straightforward schedule only 0.8 TB/s was achieved. One still need a lot of improvements to be able use that method in real event-building application, but tests shows that 1 TB/s is achievable with standard components and DABC2!

15.04.2011: First tests on LOEWE-CSC cluster

First performance tests with LOEWE-CSC cluster are performed with dabc2. With special ib-test application one can measure latency, single-wire performance, maximum send and receive rates. Preliminary measurements shows 1.5 microseconds latency and up to 3.1e9 Bytes/s data rates via single node. As next step, all-to-all traffic performance with several hundred nodes will be investigated.

26.01.2011: New layout

Website is reorganized. Doxygen-based documentation is placed in the web. As long as most classes are the same as for DABC v1.1, doxygen documentation only for newer version will be maintained. For the moment it is mostly unuseful.

25.01.2011: New brunch for DABC v2

New brunch is created:

This will be main development brunch for the next year. Version in the trunk will be maintained until new version 2 is ready. Up to this moment CBM DAQ will use version 1.x for production.

25.01.2011: Official release of version 1.1

Current version is officially tagged as 101-00. Source file provided for download. This is version of DABC, which is used for CBM DAQ.

-- LinevSergey - 25 Jan 2011


30.03.2009: Java settings for making DIM inside DABC

DABC package contains DIM which is built by central Makefile. To compile DIM with Java extensions, JDK_INCLUDE variable should be set. If not set, JDK_INCLUDE is set to $JAVA_HOME/include path by DABC. This means, that JAVA_HOME should point to path where Java include directory is located. Or one can set JDK_INCLUDE explicitly in script.

-- HansEssel - 30 Mar 2009
Topic attachments
I Attachment Action Size Date Who Comment
dabc_browser_203_00.pngpng dabc_browser_203_00.png manage 180.0 K 2013-07-20 - 15:54 LinevSergey Web browser for DABC 2.3.0
Topic revision: r22 - 2015-11-17, LinevSergey
This site is powered by FoswikiCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback