17.11.2015 Production release 2.9.0
Major new features:
- 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
- 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
- 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
code to display data from http server. Now JSROOT is base library.
- 15 Oct 2014
27.11.2013 Production release 2.6.0
New version 2.6.0
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.
- 27 Nov 2013
New version 2.3.5
was tagged in the repository.
Many efforts were done to introduce new functionality, but development is not yet finished.
- 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.
- 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.
- 31 Jul 2013
30.07.2013 More functionality for hierarchy classes
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.
- 30 Jul 2013
20.07.2013 Improved JSRootIO graphics
New DABC 2.3.0 release
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)
can be used to test new features with files.
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.
- 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:
- 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.
- Any go4 analysis can run HTTP server. Just add additional arguments when starting analysis from batch "go4analysis -file name.lmd -http 8095"
- 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");'
- 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,
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,
- 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 ...
- 15 Jun 2013
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 https://subversion.gsi.de/dabc/tags/109-03/
marks last DABC version,
which could be used for compilation of actual ROClib
20.04.2012: Repository location is changed
Now DABC repository located at https://subversion.gsi.de/dabc
. 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 https://subversion.gsi.de/dabc/head 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 dabc.gsi.de 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: https://subversion.gsi.de/goofy/dabc/branches/ver2
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.
- 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,
variable should be set.
If not set,
is set to
path by DABC. This means, that
should point to path where Java include directory is located.
Or one can set
explicitly in dabclogin.sh script.
- 30 Mar 2009