The Ngin package is written completely in Java 1.3. It is a workflow automation application which connects to a host of disparate Services on behalf of the requesting application and then controls the sequence of information flow among the selected Services. This sequence of flow of information can be controlled dynamically by the use of Scripts. These Scripts are Java like code which do not have to be compiled for each Workflow task. I have used BeanShell - a superb package which interprets Java like code. "Java like" because it allows us to make use of all the features provided by the regular Java programming language and also incorporates features commonly found in scripted languages like JavaScript. This allows a great degree of control over the flow of information between the chosen Services.
The Services can be anything - like say, a network printer or a program which queries a database or a program which can send e-mail. The package comes with support for Jini Services by default. But I have designed it in such a way that any communication protocol like SOAP or CORBA can be deployed into the system on the fly (hot deployment) .But I still haven`t completed this part yet. In theory, it should be able to communicate with any service using any protocol by using a Java wrapper around it. The Services can exchange data indirectly through the Workflow application. So, the Services are loosely coupled. The data will be stored using JavaSpaces as long as the Workflow instance is still running. After that the data will be removed from the JavaSpace.
The Workflow Engine - the heart of the application hosts the requested Workflow task and sees to it that the entire task is executed in time as per the request. It keeps a detailed log of the Workflow task using a logging utility for JDKs < 1.4 called Lumberjack. The Engine has been designed to recover from a crash. The recovery mechanism is almost complete.
The package currently supports Jini Services by default.
Download Ngin 1.0.zip (413 KB).
This zipped file contains all the source code, linux shell scripts and JBuilder 4 Foundation project which I used to develop Ngin on my Linux box running Red Hat 7.1 - 128 Megs RAM, 566 Celeron and Blackdown JDK 1.3.
I referred to Professional Jini 1.1 from Wrox press and Core Jini second edition from Pearson Education.
You can download Java from http://www.java.sun.com.
You can download Jini from http://www.javasoft.com/products/jini.
BeanShell from http://www.beanshell.org/.
Lumberjack from http://javalogging.sourceforge.net/.