The CloudTurbine demo app “CTjms.java” demonstrates how JMS messaging can connect to/from CT data.  CTjms.java has two threads per Figure 1:

  1. A “producer” thread reads live data from CT files (e.g. CTmousetrack x,y) and sends it via JMS to the second “consumer” thread.

  2. The Consumer thread (re)writes a copy of the data to a new CT source, along with some additional timing/latency metrics channels.

Figure 1:  CTjms Streams CT Data via Producer/Consumer Threads

Figure 2 shows a WebScan screen showing several plots captured in real-time:

  1. CTmousetrack data

  2. Copy of CTmousetrack data as written by CTjms Consumer (note identical results)

  3. Time latency CTjms Producer-to-Consumer (e.g. ~1msec, very fast)

  4. Time latency CTmousetrack to CTjms Consumer (end-to-end, similar to plot 5)

  5. Time latency CTmousetrack to CTjms Producer (dominated by 100ms CT file interval)

Figure 2: WebScan View of CTmousetrack Streamed through CTjms

CTjms could be deployed as-shown, or split into halves:

  • A JMS-to-CT link to enable JMS-based data acquisition systems to “record” data into CT.

  • A CT-to-JMS link for CT based data acquisition systems to “broadcast” results via JMS.

  • A CT-to-JMS-to-CT link provides (fast) alternate means to file-share CT files across networks.

The existing CTjms code is a simple, hard-wired (e.g. presumes CTmousetrack) demo. It could be extended to become a general purpose utility. The CTjms.java code is available at GitHub:

https://github.com/cycronix/cloudturbine/blob/master/JavaCode/CTjms