Revelation Software's Java library for OpenInsight access, oiJio, allows Java developers to connect with an OpenInsight OEngineServer, perform basic file i/o, and invoke Basic+ routines.
Communication can be performed in "stateful" or "stateless" mode. In stateless mode, a client connects to the engine server, makes its request, receives any results, and then disconnects; in this fashion, the OEngine is available for subsequent requests from the same, or different, client. This provides the most efficient throughput for multiple users. Conversely, in stateful mode, the Java client will connect to the engine server, make one or more requests, receiving any results, and maintain its connection until the session is complete, at which point it should disconnect. Because the client does not disconnect after each request, additional requests from other clients must "consume" additional OEngines; this method, then, provides a simpler interface at the expense of scalability.
In addition, in stateful mode, developers can choose to run in either synchronous or asynchronous mode. In asynchronous mode, the oengine can generate events which the client must handle.
Examples of the different modes are illustrated in the sample code, contained in the included DemoOIJIOclass.java file.