The CloudTurbine demo app “” demonstrates how JMS messaging can connect to/from CT data. 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 code is available at GitHub: