Proceedings Article | 10 July 2018
KEYWORDS: LabVIEW, Control systems, Telecommunications, Observatories, Large telescopes, Telescopes, Logic, Switches, Receivers, Data transmission
The Southern African Large Telescope (SALT) telescope control system is realised as a distributed control system, implemented predominantly in National Instruments’ LabVIEW. The telescope subsystems communicate using cyclic, state-based messages. Previously, we explored Data Distribution Service (DDS)—a data-centric publish-subscribe model for distributed application communication and integration, with the aim of using it as our primary communications middleware; however, obstacles uncovered during the implementation and roll-out of DDS prompted us to take a fresh look at the problem. We identified ZeroMQ (ZMQ) and NATS as possible alternative solutions. While ZMQ and NATS are both high-performance asynchronous messaging systems similar to DDS, the main difference between them is that ZMQ, in resemblance to DDS, is brokerless, whereas NATS is brokered. In a brokered system, the message broker mediates communication between a sender and a receiver, minimising the mutual awareness that applications need to have of each other in order to be able to exchange messages. Furthermore, less complexity is required in both the sender and the receiver of a message, when making use of a broker. A drawback of a broker, however, is that it may introduce a possible single point of failure. As a result of the simplicity of the client, coupled with the succinct NATS wire protocol, we were able to incorporate the NATS sender and receiver logic natively in our LabVIEW software. Taking advantage of a native solution removes the maintenance and deployment burden introduced by the use of an external C-language library, which is required for the use of both DDS and ZMQ. During our investigation of ZMQ we uncovered the same obstacles as we did with DDS, which involved the complexities of gracefully shutting down the communications logic when not using an object-oriented programming methodology. Due to legacy software, we have to maintain backward compatibility with a version of LabVIEW which predates the availability of built-in object-orientation in the language. This, coupled with the advantages of a native solution, led to the adoption of NATS as our messaging system. In this paper, we explore ZMQ and NATS as alternatives to DDS, accompanied with results of a performance evaluation of DDS, ZMQ and NATS against our home-grown legacy HTTP-based messaging implementation. We conclude with a summary and describe future work.