cMsg - A general purpose, publish-subscribe, interprocess communication implementation and framework
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.
- Research Organization:
- Thomas Jefferson National Accelerator Facility (TJNAF), Newport News, VA (United States)
- Sponsoring Organization:
- USDOE - Office of Energy Research (ER)
- DOE Contract Number:
- AC05-06OR23177
- OSTI ID:
- 913559
- Report Number(s):
- JLAB-PHY-07-706; DOE/OR/23177-0123; TRN: US200802%%703
- Resource Relation:
- Conference: CHEP07, September 2-7, 2007, Victoria, BC Canada
- Country of Publication:
- United States
- Language:
- English
Similar Records
cMsg - A publish/subscribe interprocess communication package and framework
LINCS transport (basic IPC) service specification