<div dir="ltr"><p class="MsoNormal">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.<span></span></p><p class="MsoNormal"><br></p>
<p class="MsoNormal">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.<span></span></p><p class="MsoNormal"><br></p>
<span style="font-size:11pt;line-height:107%;font-family:Calibri,sans-serif">Here is what TMS is not:<i> it is not intended as an enterprise message server</i>. It is not a
replacement for <i>SmartSockets</i> or <i>ActiveMQ</i>. 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 <i>ced</i> 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, <i>ced</i> extends TMS server
so that it can understand HIPO events—which requires including the <i>coatjava</i> jar. The release, however, is a completely stand-alone TMS which cannot, out of the box, send HIPO
events. </span><div><span style="font-size:11pt;line-height:107%;font-family:Calibri,sans-serif"><br></span></div><div><span style="font-size:11pt;line-height:107%;font-family:Calibri,sans-serif">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.</span></div><div><font face="Calibri, sans-serif"><span style="font-size:14.6667px"><br clear="all"></span></font><div>The server has a GUI. showing server info, a log, and a table of connected clients. It looks like this:</div><div><br></div><div><img src="cid:ii_15cc1b56d7ee8a7e" alt="Inline image 1" width="544" height="511"><br></div><div><h1><br></h1><h1>Documentation </h1><h1><p class="MsoNormal" style="font-size:small;font-weight:normal">There is a complete set of Java docs and a user guide in the docs folder on github (or in the download)</p></h1><h1>Download<span></span></h1>
<p class="MsoNormal">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 </p><p class="MsoNormal"><br></p><p class="MsoNormal"><a href="https://userweb.jlab.org/~heddle/tms/builds/">https://userweb.jlab.org/~heddle/tms/builds/</a><span></span></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Use it. Or don't. I get paid the same amount either way!</p></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><i>David P. Heddle, Ph.D.<br>Professor of Physics,</i></div><div dir="ltr"><i>Graduate Program Coordinator<br>
Christopher Newport University<br>
Newport News, VA 23606</i><div><i><br></i></div><div><i>757.594.8434 (CNU)</i></div></div></div></div></div></div></div>
</div></div>