This JSR has been Withdrawn
Reason: Withdrawn at the request of the submitter. InfoBus 2.0 is no longer under development in the Java Community Process. Please direct comments or questions about InfoBus to email@example.com. For information on InfoBus 1.2, see http://java.sun.com/beans/infobus.
Original Java Specification Request (JSR)
Original Summary: The InfoBus 2.0 Specification and release would have added features to the existing InfoBus 1.2 Specification that capitalize on new features found in the JavaTM 2 Standard Edition (J2SETM).
Section 1: Identification
||Lotus Development Corp
|Name of Contact Person:
||+1 617 693 5335
||+1 617 693 5531
Other Participants who endorse this JSR:
Sun Microsystems, Inc. (Janet Koenig, firstname.lastname@example.org)
Section 2: Request
|2.1 Proposed Specification:
The InfoBus 2.0 Specification and release adds features
to the existing InfoBus 1.2 Specification that capitalize
on new features found in the JavaTM 2 Standard Edition (J2SETM).
The existing specification can be found at
A new chapter in the spec will describe Permission and Access Control
features, built on the new Security Features from Java 2 Platform.
These features afford protection to both producer and consumer thru
an ability to determine whether they will trust the other party in
Permissions are determined by an external file that can be configured
by a system administrator to indicate various levels of access that
are possible depending on the fully-qualified classname of the
InfoBus 2.0 also allows greater flexibility in membership, by adding
the ability to join an InfoBus that is provided as a service through the
BeanContext protocol defined in
"A Draft Proposal to define an Extensible
Runtime Containment and Services Protocol for Java Beans Version 1.0"
by Laurence Cable.
This is done
by adding a new method for joining an InfoBus available thru a
BeanContext provided by a containing JavaBean.
JavaBeans written to use this method will automatically join a bus
provided by the BDK BeanBox, and eventually other builder environments.
Because these features use classes and methods that are newly available
in the Java 2 Platforms, and not JDK 1.1.x, it requires
the J2SE version 1.2 or later for use. There may be future
releases of the InfoBus 1.x and 2.x specifications when features are
added that can be used on both JDK 1.1.x and J2SE.
|2.2 Target Java platform
The InfoBus technology can be productively used
for data exchange between any Java classes, regardless of the platform.
|2.3 What need of the Java community will be addressed by the proposed
The InfoBus technology as a whole provides a standard means of data
exchange between cooperating Beans. The standard interfaces
defined for data access between a producer and consumer
facilitate the ability to work together without compile-time knowledge
of the other application, including components from different vendors.
The late-binding for data items allows complete applications to "snap
together" with little configuration required to achieve the exchange.
The InfoBus 2.0 release improves the technology by addressing the
need for better security as well as more flexibility in combining
Beans into a working application.
|2.4 Why isn't this need met by existing specifications?
InfoBus Technology has been accepted by Sun Microsystems as a
standard means of data exchange between cooperating Java classes.
|2.5 Please give a short description of the underlying technology or
|A class that wishes to participate in
InfoBus data exchange implements an interface called InfoBusMember
then calls a method to join a given bus (for example, by name).
Members "see" the same bus because of coordination in the InfoBus
class, which contains a class static list of active InfoBus instances.
Because of the dependence on the class static variable, communication
is only possible when the classes share a common ClassLoader instance,
for security reasons.
Requests for data, and announcements of available data, are sent to
classes that register listeners for events defined for this purpose.
These events use the standard JavaBeans events model.
A set of standard access interfaces are defined. Taken together, we
assert that they can be used to model data of any arbitrary structure.
InfoBus itself defines an Object wrapper, an n-dimensional array access
mechanism, and an interface suitable for managing the results of a
database query. InfoBus also adopts four standard Java 2 Platform
Collection classes (Collection, Map, List, and Set) for use in defining
the access strategy for data items. It is possible for a data item
to implement any number of these interfaces to provide flexible access.
Data items also have a standard event mechanism that allows consumers
to listen for changes of various types to data items they use.
The change notification mechanism allows dynamic refreshing of data
whenever it is needed.
A special interface, known as InfoBusDataController, provides a means
of changing the default behavior of event distribution in a flexible
manner, to suit special requirements of particular applications.
Permission and access control is based on the AccessController class,
and uses the security model defined in the Java 2 Platform.
|2.6 Proposed package name for the API Specification?
|2.7 Does the proposed specification have any dependencies on specific
operating systems, CPUs, or I/O devices that you know of?
InfoBus releases are certified as 100% Pure Java, and thus
work on any system that supports Pure Java classes.
|2.8 Are there any security issues that cannot be addressed by the current
|2.9 Are there any internationalization or localization issues?
|None. The InfoBus has no user-visible features.
|2.10 Are there any existing specifications that might be rendered obsolete,
deprecated, or in need of revision as a result of this work?
|The InfoBus 1.2 Specification will be updated
to become the InfoBus 2.0 Specification. The majority of the material in
the existing specification will remain unchanged.
Section 3: Contributions
The InfoBus 1.2 Specification is available from