eSuite InfoBus overview

What is the eSuite InfoBus?

The eSuite InfoBus is a software mechanism that allows cooperating Java components, such as beans or applets, to communicate data with each another via structured protocols. By using the InfoBus, components don't have to call different methods on each provider or consumer of data in order to transfer data, and can receive automatic notification of data changes.

An InfoBus object manages the member components that publish or listen for data, and it transfers the data, asynchronously via events, in unit objects called data items. Any component that implements the InfoBus API interfaces can register as a member of the InfoBus and then provide or consume InfoBus data within a single Java virtual machine.

How does a programmer use the InfoBus?

A web page author can easily link the data of two or more eSuite applets through the InfoBus using standard HTML tags. When one applet makes data available via the InfoBus, other applets can process or display the data, or respond to changes in the data.

A simple example of InfoBus use is linking spreadsheet data with a chart. To pass a set of data from the eSuite spreadsheet applet via the InfoBus to the eSuite chart applet, you name a range containing that data in the spreadsheet. You place the eSuite chart applet on an HTML page with a <PARAM> tag specifying the spreadsheet range name from which to receive the data. This causes the chart applet to display the range data.

In this case, the spreadsheet is a data provider to the InfoBus, automatically publishing each range name as an InfoBus data item name, and the chart is a data consumer from the InfoBus. Since the chart is a consumer of InfoBus data, it can represent data from any InfoBus data provider, including the eSuite data access applets, as long as the data is provided in the form of a chart data set array.

More generally, you can use the eSuite scripthelper applet in a script to create a data item, either a simple item for a single data value, or an ArrayAccess data set. You can also use the eSuite filereader applet to publish an ArrayAccess data item for a file.

How does the InfoBus transfer data items?

First, an InfoBus-compliant component registers with the InfoBus, typically when the component is loaded and becomes active. The component can then access data held in other components by using InfoBus data items. A data item is a Java wrapper object for the data, with a public name. The data handled by the data item may be a single value, an array of values, or a collection of values. InfoBus members identify data items by their data item names.

To transfer data via the InfoBus, data producers and consumers issue InfoBus Java events. These events make a request for a data item, announce availability of an item, or revoke an item. The InfoBus serves as a manager, transmitting events and data items between producers and consumers, and efficiently allowing, for example, multiple consumers to access the same data item.

A data consumer handles a data-available event by calling a request-data method on the data item, which returns the data.

Example

Charting file data example
Charting sheet data example
Charting user input data example

See also

InfoBus data items
ScriptHelper applet
InfoBusVector class
FileReader applet
data sets