The ISG+IRT/JIM system is one of the first components of Infosphere software that demonstrates the usefulness of the Infopipe abstraction. Infopipe Stub Generator (ISG), which is the main component of the system, generates the Infopipe Stub code to manage XML representations of information flow from an explicit description of its syntax and semantics requirements. Using ISG, developers may concentrate on the transformation of information, rather than spending time on the tedious and error-prone tasks of parsing and generating fast-changing XML streams.
Infopipes are the software components, which link information producers to consumers, for building information flow-centric applications. Each infopipe consists of an input end, a processing middle, and an output end. The input consumes information and relays it to the middle. The middle is designed to work as a filter or an event handler, and its result is passed to the output, which then produces information. Infopipes can be combined, allowing developers to construct information flow-centric applications.
Figure 1: Infopipes for Information Flow-Centric Applications
We locate an XML parser at the consumer-end of the infopipe to capture information flow. It is designed to parse XML and create an internal data structure for the infopipe stub. Meanwhile, we locate an XML generator at the producer-end of the infopipe to generate outgoing information flow from the internal data structure. The infopipe stub passes a part of the internal data structure to program variables for access and manipulation by the infopipe processing middle, written by the infopipe developers. Similarly, the stub passes the result of processing middle to the data structure, from which appropriate XML representation is created by the XML generator.
Figure 2: Design of the Infopipe for XML Processing
Figure 3 illustrates the hierarchical overview of the infopipe and its execution support architecture. The middle method execution is supported by its stub; the interface between the middle method and the stub is defined by the Infopipe-spec, which is specified by the infopipe developer. The infopipe including the stub is then supported to execute by the IRT. The interface between the infopipe stub and the IRT is defined by the Infopipe system as the Infopipe Runtime System Interface. The yellow allow in the Figure 5 shows the information processing flow.
Figure 3: Infopipes Execution Support
Here is the Infopipe Development Flow using ISG and IRT.
It is quite easy to build the infopipe from the Infopipe Spec.
Figure 4: Infopipes Development Flow using ISG and IRT