skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: cMsg - A general purpose, publish-subscribe, interprocess communication implementation and framework

Conference ·
OSTI ID:913559

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