The first release of JAVA-SIMPL contained a JNI library which enabled JAVA modules to participate in a SIMPL application on Linux systems.

This release extends that with an all JAVA TCP/IP based (surrogate) library which allows JAVA-SIMPL modules running on non Linux nodes in a mixed network (with at least one Linux node) to participate in a SIMPL application. For example a JAVA-SIMPL GUI module running on Windows could seamlessly exchange messages with a C-SIMPL module running on Linux.

The easiest way to "kick the tires" on this new release is to download the precompiled binary to your Linux node. (I'm ineligible to post URLs but if you Google "SIMPL icanprogram" the main link should come up. Chose the precompiled binary JAVA-SIMPL link.)

The most illustrative example in this tarball is Sudoku puzzle solver. In that example the Suduku interface is written in JAVA, while the Sudoku puzzle engine is written in C. The two behave as a seamless unit for solving Sudoku puzzles. The example include in this tarball uses the JNI library and is intended to be run on a single Linux node. However, the two parts could just as easily now be redeployed with the JAVA portion (with small changes to use the surrogate library) deployed on a Windows node with the engine portion remaining on the Linux node.

There are "hello world" level sample .java files included in this tarball which illustrate both the JNI library (J) and the surrogate library (S).

For those of you new to SIMPL it is an open source project which produces an ultra lightweight library useful for joining modules together using the Send/Receive/Reply messaging scheme first pioneered by QNX. SIMPL modules can be written in any of the supported languages (JAVA, C, C++, Python and Tcl/Tk) and mixed in a given SIMPL applicaton.