LibMessages is a message passing library written in C and using LibTools and LibIPC, also available here. It was designed and implemented by John Sloan while he was at the National Center for Atmospheric Research (NCAR) in Boulder, Colorado. It was developed in 1992 through 1994. It was initially applied in a distributed spooling system called TAGS, for Text And Graphics System, hosted on multiprocessor Sun servers. LibMessages has been used in other projects at NCAR since then.
LibMessages is historically interesting because it was written at a time when message passing was losing favor to remote procedure calls (RPC) as a paradigm for building distributed systems. The TAGS development team (which included Sloan, Craig Ruff, and Mark Uris) quickly realized that message passing was a superior mechanism for asynchronous processes, which exhibited much greater scalability over other architectures. Message passing eventually came back into favor as the world wide web grew at such a rate that the necessity of scalability for applications running on distributed multiprocessor servers became obvious. Today, many message passing libraries exist.
LibMessages has its performance limitations. It uses the select system call to multiplex socket I/O because that was the only mechanism available at the time, poll not yet being available.
A technical report describing this and related libraries can be found here .
LibMessages is the intellectual property of the University Corporation for Atmospheric Research (UCAR), Boulder, Colorado. UCAR licenses LibMessages for free for non-commercial purposes. A license agreement is included in the compressed tar ball, which can be found here.
