cMsg - a publish/subscribe package for real-time and online control systems
Elliott Wolin, D. Abbott, V. Gurjyan, E. Jastrzembski, David Lawrence, C. Timmer · 2005
cMsg is a messaging system designed for use in realtime data acquisition and online controls systems, and includes support for C/C++ and Java clients. It is highly customizable and extensible, and includes a full-featured asynchronous publish/subscribe component as well as a synchronous peer-to-peer component. We first describe the publish/subscribe and peer-to-peer messaging paradigms, discuss their use in real-time and online systems, and describe the power and flexibility of the publish/subscribe paradigm. Next we describe the philosophy of the cMsg implementation and present some details and benchmarks. Finally, since the core of cMsg is written in pure Java, we discuss the suitability of Java for use in real-time and online systems