The ALMA Common Software (ACS) is a software framework that provides the infrastructure for the Atacama
Large Millimeter Array and other projects. ACS, based on CORBA, offers basic services and common design
patterns for distributed software.
Every properly built system needs to be able to log status and error information. Logging in a single computer
scenario can be as easy as using fprintf statements. However, in a distributed system, it must provide a way to
centralize all logging data in a single place without overloading the network nor complicating the applications.
ACS provides a complete logging service infrastructure in which every log has an associated priority and
timestamp, allowing filtering at different levels of the system (application, service and clients). Currently the
ACS logging service uses an implementation of the CORBA Telecom Log Service in a customized way, using
only a minimal subset of the features provided by the standard.
The most relevant feature used by ACS is the ability to treat the logs as event data that gets distributed
over the network in a publisher-subscriber paradigm. For this purpose the CORBA Notification Service, which
is resource intensive, is used. On the other hand, the Data Distribution Service (DDS) provides an alternative
standard for publisher-subscriber communication for real-time systems, offering better performance and featuring
decentralized message processing.
The current document describes how the new high performance logging service of ACS has been modeled and
developed using DDS, replacing the Telecom Log Service. Benefits and drawbacks are analyzed. A benchmark
is presented comparing the differences between the implementations.
Trending near real-time data is a complex task, specially in distributed environments. This problem was typically
tackled in financial and transaction systems, but it now applies to its utmost in other contexts, such as hardware
monitoring in large-scale projects. Data handling requires subscription to specific data feeds that need to be
implemented avoiding replication, and rate of transmission has to be assured. On the side of the graphical client,
rendering needs to be fast enough so it may be perceived as real-time processing and display.
ALMA Common Software (ACS) provides a software infrastructure for distributed projects which may require
trending large volumes of data. For theses requirements ACS offers a Sampling System, which allows sampling
selected data feeds at different frequencies. Along with this, it provides a graphical tool to plot the collected
information, which needs to perform as well as possible.
Currently there are many graphical libraries available for data trending. This imposes a problem when trying
to choose one: It is necessary to know which has the best performance, and which combination of programming
language and library is the best decision. This document analyzes the performance of different graphical libraries
and languages in order to present the optimal environment when writing or re-factoring an application using
trending technologies in distributed systems. To properly address the complexity of the problem, a specific set of
alternative was pre-selected, including libraries in Java and Python, languages which are part of ACS. A stress
benchmark will be developed in a simulated distributed environment using ACS in order to test the trending