Apr 1, 2000
DIM, a Portable and Efficient Package for Information Publishing,
Data Transfer and Interprocess Communications
The real-time systems of HEP experiments are presently highly
distributed, possibly on heterogenous CPU's. In many applications, there
is an important need to make information available to a large number of
other processes in a transparent way. For this purpose the "RPC-like"
systems are not suitable, since most of them rely on polling from the
client and one-to-one connections.
DIM is a very powerful alternative to those systems. It provides a
named space for processes to publish information (Publishers) and a very
simple API for processes willing to use this information (Subscribers).
It fully handles error recovery at the Publisher and Subscriber level,
without additional software in the application.
DIM is available on a large variety of platforms and operating systems
with C and C++ bindings. It is presently used in several HEP
experiments, while it was developed in the DELPHI experiment and is
maintained at CERN.
We shall present its capabilities and examples of its use in HEP
experiments in domains ranging from simple data publishing to event
transfer, process control or communication layer for an Experiment
Control Package (SMI++). We shall also present prospective for using it
as communications layer for future experiment's control systems.