[Clas12_software] TinyMesageServer 0.50
David Heddle
david.heddle at cnu.edu
Mon Jun 19 15:03:35 EDT 2017
The TinyMessageServer (TMS) is a small footprint message server. (Idle, it
uses something like 8 MB of heap.) It is written in Java and has a Java
client base class for applications to extend. If this project proves useful
and someone would like a C++ client, that wouldn’t be hard. If someone
would like a Fortran client: the middle of the last century is calling, it
would like its programming language back.
TMS has a publish and subscribe post-office paradigm. Clients subscribe to
topics. All messages are sent to the server which then routes them to
subscribers. There is no point-to-point communication.
Here is what TMS is not:* it is not intended as an enterprise message
server*. It is not a replacement for *SmartSockets* or *ActiveMQ*. It has
no redundancy or fault-tolerance. It is not secure. Don't send state
secrets over TMS. It is not encrypted. It does not (yet) reconnect to
clients if it dies and is restarted. It is not intended for sustained
high-bandwidth operation. (running flat out I achieved 8 MB/s) It was
written, selfishly, so that *ced* could communicate with other Java
applications which could then send CLAS12 events, on-demand, one-at-a-time,
for display without the necessity of going through a file or a HIPO or
blasted ET ring. To accomplish this, *ced* extends TMS server so that it
can understand HIPO events—which requires including the *coatjava* jar. The
release, however, is a completely stand-alone TMS which cannot, out of the
box, send HIPO events.
What kind of messages can be sent? Arrays of atomic types: bytes, shorts,
ints, longs, floats, doubles, and strings. It can also send arbitrary mixed
types using a streaming model.
The server has a GUI. showing server info, a log, and a table of connected
clients. It looks like this:
[image: Inline image 1]
Documentation
There is a complete set of Java docs and a user guide in the docs folder on
github (or in the download)
Download
The TinyMessageServer source code is in the cnuphys area of the CLAS12
offline github repository. If you just want the jar file and the
documentation, it is available at
https://userweb.jlab.org/~heddle/tms/builds/
Use it. Or don't. I get paid the same amount either way!
--
*David P. Heddle, Ph.D.Professor of Physics,*
*Graduate Program Coordinator Christopher Newport University Newport News,
VA 23606*
*757.594.8434 (CNU)*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.jlab.org/pipermail/clas12_software/attachments/20170619/2b2a8844/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 164540 bytes
Desc: not available
URL: <https://mailman.jlab.org/pipermail/clas12_software/attachments/20170619/2b2a8844/attachment-0001.png>
More information about the Clas12_software
mailing list