Kernel of a Collaboration-Bus

Our group is addressing the problem of composing new collaborative systems from existing single-user and collaborative systems. We propose to develop a new software abstraction, called the collaboration bus, that makes it easy to compose collaborative systems. The idea is that interoperating systems will talk to each other through the bus rather than directly, thereby requiring N connections to the bus rather than N ** 2 connections among themselves. The collaboration bus will be an extensible infrastructure that provides general, definitions of collaboration services, default, portable implementations of these services, rules for interconnecting these services, and mechanisms for extending the set of supported services. Given the variety of objects that can be shared and the modes in which they can be shared, the bus can be expected to be very complex. Therefore, we plan to decompose this problem by dividing the bus into a kernel and higher-level functionality, in analogy to the corresponding components in an operating system.

This project will focus on the kernel of the collaboration-bus. It will define a set of media-independent bus mechanisms, which will then be used by higher-level media-dependent layers developed by some of the projects listed below. In particular, it will provide mechanisms for defining a hierarchy of sharing types, and, when possible, provide translations among objects of different types. For instance, it will define a hierarchy of concurrency control types such as (coarse-grained) floor control and fine-grained concurrency control, and translate a single coarse-grained floor control event to, possibly multiple, fine-grained control events. It will also develop mechanisms for dynamically replicating and migrating the bus components and interfacing existing applications to the bus. We currently plan to implement the kernel on top of the Java programming environment (which provides portability) and the Polylith software bus (which provides general, collaboration-independent, interoperability.)

This project will give you experience with research in collaboration, interoperability, and Java. It will build on an initial Java distributed object layer built by Sid Chatterjee. For more information contact Prasun Dewan. Dave Stotts, Kevin Jeffay, or Sid Chatterjee.