Speaker
Dr
Carl Timmer
(TJNAF)
Description
cMsg is software used to send and receive messages in the Jefferson Lab
online and runcontrol systems. It was created to replace the several IPC
software packages in use with a single API. cMsg is asynchronous in nature,
running a callback for each message received. However, it also includes
synchronous routines for convenience. On the framework level, cMsg is a thin
API layer in Java, C, or C++ that can be used to wrap most message-based
interprocess communication protocols. The top layer of cMsg uses this same API
and multiplexes user calls to one of many such wrapped protocols (or domains)
based on a URL-like string which we call a Uniform Domain Locator or UDL. One
such domain is a complete implementation of a publish-subscribe messaging
system using network communications and written in Java (user APIs in C and
C++ too). This domain is built in a way which allows it to be used as a proxy
server to other domains (protocols). Performance is excellent allowing the
system not only to be used for messaging but also as a data distribution
system.
Primary author
Dr
Carl Timmer
(TJNAF)
Co-authors
Dr
David Abbott
(TJNAF)
Dr
Ed Jastrzembski
(TJNAF)
Dr
Elliott Wolin
(TJNAF)
Dr
Graham Heyes
(TJNAF)
Dr
Vardan Gyurjyan
(TJNAF)