Scott B. Lewis
Last modified: 10/26/99
The Replicated Object API (ROAPI) is a library for building a large variety of collaborative applications (e.g. multiplayer games, collaborative design/authoring systems, distance learning applications, groupware, virtual environments, etc.). Unlike other applications, ROAPI applications are fundamentally extensible. All participants can securely distribute media and behavior to others at runtime, allowing for creative online collaboration experiences.
ROAPI provides flexible replication of Java objects within a context defined by a set of processes called an 'object group'. Support is also provided for transactional object replication within a replication space (for reliability), asynchronous messaging, and remote classloading.
Distributed applications built using ROAPI can run using several transports: 'raw' TCP/IP sockets, RMI, the Java Shared Data Toolkit, or Softwired's iBus. This means that applications can be built on a client/server architecture (e.g. TCP or RMI) and then moved to multicast-based messaging (JSDT w/LRMP or iBus) with no changes to applications built on the ROAPI.
The ROAPI core is small (~130K) and extensible, and allows the programmer to control all aspects of each object's replication at runtime, including controlling the classes and state distributed to each replica.
Please contact email@example.com for further information, docs, or a copy of the software.
Servers: Java 1.2.X (aka Java 2) Runtime Environment, Plug In, or Java Development Kit. Click here to go to Sun's web site. Clients: Java 1.1 API or newer.
The following APIs are not required to use the ROAPI, but can are required to run some of the individual example applications.
SoftWired's iBus: The ROAPI can be run on either a reliable multicast messaging infrastructure or a client-server structure. Application objects built on the ROAPI can run unmodified on either network topology. iBus version 1.0 provides a reliable multicast messaging infrastructure, and ROAPI has been ported to use iBus. Application code written to use the ROAPI will run with or without iBus, however. The use of iBus provides better scaling.
Java3D 1.1 extension for Java 2: To run the 3D demos, the Java3D extension is required.
To use the collaborative piano demo, the Java Sound API is needed.
Copyrightę Scott B. Lewis, 1999