next up previous contents
Next: Data Acquisition Systems Up: Introduction Previous: Introduction   Contents

High Performance Distributed Systems

With increasing measurement precision and data rates in experimental high energy physics, data acquisition systems grow and new architectures have to be investigated. Namely distribution is used to exploit local data buffering and processing in order to reduce the amount of information that has to be stored. The design of such a distributed system becomes a research problem in itself. Although splitting up the duties in a system can be used to address performance problems, it complicates the system and makes it less comprehensible. Design and Implementation of a data acquisition system that may undergo several modifications throughout its decade long lifetime thus represent a major challenge. Brute force storage of all gathered data is not possible by means currently available, or projected to be available by the experiment´s installation. Hence, a flexible distributed architecture seems to be a promising way to meet the requirements of such experiments.

We wondered which technique could assist us in conceiving the tasks posed. Ideally, the same paradigm should be applicable for design and implementation. The main challenge when selecting an appropriate methodology shall lie in finding one that allows to the system to be simplified at different levels. This makes it easier to comprehend the systems functionality and therefore support its modification and extension. The object oriented engineering approach is a highly favoured candidate for this task. Not only because of the direct mapping to object oriented programming languages and tool support, but also because of its powerful abstraction: every system component, hardware or software can be described and modelled using object technology. Details specific to a subsystem can be hidden. Interfaces can be defined explicitly and are easier to manage than with traditional concepts. Such interface objects can help to reduce the coupling between participants. At this stage, we leave the field of pure object-orientation behind us and advance to component based software engineering. This technique is characterised by self contained software blocks that can be combined in order to form a full system. Object-orientation becomes the means to realise software components.

Although we stressed the issue of simplifying design, implementation and maintenance of all subsystems, we must not forget the performance of the software components. In particular, communication between components that are locally separated may suffer from performance critical paths. Object orientation itself does not deal with performance issues. Consequently, as a rich heritage of literature teaches us, some work has to be invested in order to achieve good performance with object-oriented systems[BDV$^$98,GBJG98,vRBM96,GS96,GS99a,Sch95b,CRJ87,HP91,JBG97]. Two major deficiencies can be identified: (i) Limited processing performance due to unoptimised communication software layers[BDV$^$98, pp. 13][GBS$^$98, p. 13][HvR96][GS98b][SG99][GG99a, pp. 218]. (ii) Unpredictable scalability behaviour due to a lack of emphasis on this issue [BDV$^$98, pp. 16] [GBS$^$98, pp. 13] [GS97b] [GS97c] [SMFGG98]. These issues result in indeterminate behaviour in terms of processing time growth and increasing memory requirements. Although the above-cited contributions address the problems, we do not encounter solutions that satisfy the environment of systems with high efficiency requirements. Current research deals with speed and scale units that are one to two orders of magnitude smaller than for the system that we investigate. These systems however, that are designed for scientific research now, could become the commercial systems of the future. It is therefore vital to perform engineering research for such systems now. Only then we will have solutions ready when the market needs them.

Object oriented inter-subsystem communication is discussed extensively throughout this dissertation. Even if its importance may not be seen during use-case and requirements analysis steps, it becomes an essential issue when discussing concrete design alternatives. The system requirements and existing models of object communication have to be understood in order to achieve a consistent and well performing system.

This dissertation shows that it is indeed feasible to deploy object-oriented technology to achieve simplification and extensibility of the overall system by simultaneously delivering high performance. When speaking of performance, we follow the definition of the IBM's dictionary of computing[McD93]:

Definition 1   Performance is the total effectiveness of a (computer) system.

Effectiveness is measured relative to the required optimum performance. In a distributed data acquisition system we encounter heavy demands on performance. Such systems must be treated separately as the combination of performance issues and distribution requires new techniques. Therefore we introduce a new term for such kind of systems:

Corollary 1   A high performance distributed system guarantees that the requirements on the effectiveness of its specified services are met.

This description causes us to presume that hardware and software have to collaborate in order to meet the requested quality of service. Software alone cannot guarantee that the operational requirements are met, but we can provide basic building blocks that support performance critical operation. We will further see that current standardised object oriented middleware[Emm97, pp. 641-642][CHY$^$98, pp. 18-30][YS98, pp. 64-71][SGH$^$97][Gmb98] is not yet suitable for high performance distributed systems. Either the available tools have to be complemented or design patterns have to be reimplemented to meet the requirements of high energy physics data acquisition.


next up previous contents
Next: Data Acquisition Systems Up: Introduction Previous: Introduction   Contents
Johannes Gutleber
1999-10-29