Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 33: InfoBus 2.0 Specification

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 infobus-comments@java.sun.com. For information on InfoBus 1.2, see http://java.sun.com/beans/infobus.

Original Java Specification Request (JSR)

Identification | Request | Contributions

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

Submitting Participant: Lotus Development Corp
Name of Contact Person: Mark Colan
E-Mail Address: MColan@Lotus.com
Telephone Number: +1 617 693 5335
Fax Number: +1 617 693 5531

Other Participants who endorse this JSR:

Sun Microsystems, Inc. (Janet Koenig, janet.koenig@eng.sun.com)



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 http://java.sun.com/beans/infobus.

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 the conversation. 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 participants.

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 specification?
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 technologies:
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?
javax.infobus
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 security model?
No
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 http://java.sun.com/beans/infobus.