DataBus is a Java library for building highly modular software. It allows software component to talk to each other
without knowing the other comonents. This is done via sending events, containing data (hence the name DataBus).
A DataBus is formed by an unlimited number of components (called 'DataBusComponents'). These components talk
to each other via sending and receiving events. These events are simple DataObjects, which are passed between
the components. Components receving events are called 'consumer', components sending events 'producers'.
For each type of event the DataBus can hold an unlimited number of producers or consumers. There should be at least
one producer generating
events from void (a so-called generic producer), but consumers are free to produce events also (working as filters).
Events are handled asynchronously. It is guaranteed that the order in which events are handled by the consumers is
the same for all consumers, but it is not defined when
a consumer handles an event. If the input queue for a consumer queue grows too large, its thread priority is risen to shorten the queue.
The DataBus itself is described in a single XML file, which defined all components forming the bus. This
file also contains the configuration for the components.
The components forming a bus are defined in some XML files:
- one file forming the databus, containing a list of components and their configuration (if required)
- one file for each component (the component descriptor), describing the component (at least name and
class need to be given)
Currently, the DataBus library is used by the APD and GCP programs.
See there for examples how to use the library, or have a look at the documentation (which is work in progress).
If you have more specific questions, ask me by mail (email@example.com).