XML-based data flow descriptions
The Ohua system has been extended with a Flow Parser (SAX) that allows to specify data flows in an XML document. This allows even non-programmers to design and submit data flows to the Ohua engine.
A simple flow consisting of a Randomg Data Generator and a Consumer(Peek) can be described like this:
The properties of an operator are defined as Java beans that are being deserialized using Castor (http://www.castor.org).
At that point it makes again sense to write new operators or at least their property beans in Scala (http://www.scala-lang.org) as it provides an @BeanProperty annotation that makes getter and setter methods redundant.
The (Castor) mapping is defined in a descriptor file along with the structure of the operator.
The Generator used in the example flow above has the following description:
Last but not least Ohua allows to specify runtime parameters in a separate file in order to allow running the same flow in different runtime setups.
This configuration runs the flow in a multi-threaded fashion with an initial size of 10 and a maximum of 20 threads. The memory used for sending the data throw the graph is managed by setting the maximal amount of packets stored in one arc to 250.