Quarterly Report

Period: July - Sep 1996

Title: Collaboration Bus: An Infrastructure for Supporting Interoperating Collaborative Systems

Contractor: University of North Carolina at Chapel Hill.

PI: Prasun Dewan

Contractor P/R No: N 66001-96-8507

AO_NUMBER: E357

Research goal.

In this project, we are addressing the problem of composing new collaborative systems from existing single-user and collaborative systems. We are developing a new software abstraction, called the collaboration bus, that makes it easy to compose collaborative systems. The collaboration bus will be an extensible infrastructure that provides general definitions of collaboration services, default implementations of these services, rules for interconnecting these services, and mechanisms for extending the set of supported services.

We plan to take the following specific steps to meet this general goal: (a) Identify the services that a collaborative application requires. (b) Identify a reference model for each of these services. (c) Identify semantics translations and composition functions for each of these services. (d) Incorporate, into the bus, a default implementation of the service and the associated semantic translations and composition functions. (e) Develop mechanisms and policies for replicating and migrating parts of the bus. (f) Develop mechanisms for protecting the operations on the bus. (g) Carry out interoperability experiments involving each of these services using state-of-the-art existing software.

Research accomplishments for the quarter.

Our first task was to agree on an initial decomposition of a collaborative application into orthogonal services. Consistent with our proposal, we decided to use the following as our initial set of services: a) data model for defining shared workspaces consisting of structured objects; (b) user interface model that allows shared objects to be manipulated using user interfaces that support text, graphics, audio, video, and virtual reality; (c) coupling model that enables users in a joint session to share data and user-interface objects and controls their interactions to ensure security and consistency constraints are not violated; (d) awareness model that allows users in the session to be aware of the ``out of band,'' actions of others, that is actions not visible through direct coupling; (e) migration and replication mechanisms that ensure that the bus does not become a bottleneck; and (f) real-time services, consisting of scheduling algorithms and network protocols, for ensuring real-time coupling among the collaborators.

We had intended to design and implement these services as a set of communicating modules in some object-oriented programming language. We looked further at Java, the language we had proposed to use in our proposal, and decided to indeed commit to this choice. A major factor for choosing Java was its portability. Two other developments that we mere made aware of during this period made it an even more attractive choice. The new version now had a high-level remote method invocation (RMI), an abstraction that we believe would make the distributed programming aspects of our implementation task much easier. Moreover, there is a plan to add ``reflection capabilities'' to the language, which would allow user-level programs to identify and manipulate structure of objects they received dynamically. We believe this facility would allow the bus to interoperate objects it receives dynamically from client programs.

Learning and mastering of Java and these associated packages was going to be a challenging task. Our local expert on Java in particular and programming languages and compilers in general is Prof. Sid Chatterjee, so we invited him to join our group.

We also started several efforts to accomplish the goals of this project. Many of us who had not programmed in Java started experimenting with it. This was a substantial fraction of the group and included Dewan, Jeffay, Nyland, Roussev, Sharma, and Li. Since many of the students we hired were first-year graduate students with no exposure to collaboration, they started reading the important papers in this area and participating in group discussions on this project.

An important package in Java is the Observable/Observer package, which essentially implements a rudimentary bus by allowing an observer object (the bus) to observe the behavior of observable objects (bus clients). To understand how it works and its applications, Dewan and Chatterjee designed and implemented a simple spreadsheet application connected by this ''bus''. Sharma and Roussev started a project to create a distributed, collaborative version of this application using Java RMI.

Dewan also started a project to design a strawman reference architecture of a collaboration bus. Jon Smith and Qian Li started a project to develop a generic, Java-based, data model and user-interface for persistent graph data structures. Jon Munson, a senior graduate student, had been working on a general model of concurrency control and merging. He started a project to extend and implement these ideas in the context of the bus. Goopeel Chung, another senior student had been working on the architecture of a shared window system supporting migration of the centralized client. He had implemented it in XTV, a shared window system developed at UNC and ODU, that extends the X window system. He initiated a project to make the architecture more flexible by adding the capabilities for replicating the client and dynamically switching between centralization and replication modes. Emad Eldin, a new graduate student at ODU, started a project to port XTV to Solaris, thereby gaining valuable knowledge in both collaboration in general and this particular system in particular.

In the area of real-time services, Jeffay began an investigation into quality-of-service requirements for shared, distributed, virtual environments (VEs). Shared VEs represent an important new class of collaborative applications that we wish to support with the collaboration bus. Jeffay selected the UNC nanomanipulator project -- a project to experiment with a virtual reality interface to a scanning tunneling microscope -- as a first case study. The goal is to (1) understand the communications performance requirements of this application when components are distributed across the Internet, and (2) design a transport-layer quality-of-service manager that will monitor network communications performance and work in concert with the application to adapt to perceived levels of congestion in the network. The first goal was partially realized this quarter and design of the QoS manager begun. As part of the latter effort, Jeffay & Wahab worked on fundamental resource allocation problems for real-time computing on the desktop. A new proportional share resource allocation algorithm was developed and prototyped in the FreeBSD operating system.

Major equipment arrivals.

None.

Key personnel changes.

As mentioned in the proposal, this effort includes the PI (Prasun Dewan) and several other faculty members: Profs. Hussein Abdel-Wahab, Kevin Jeffay, John McHugh, Lars Nyland, Jan Prins, John Smith and Dave Stotts. Prof. Abdel-Wahab is at Old Dominion University and Prof. John McHugh is at Portland State University - the remaining faculty members are at UNC-Chapel Hill. We hired several 1/2 time research assistants this quarter: Goopeel Chung, Qian Li, Emad Eldin, Mohamed, Peter Nee, and Vassil Roussev. In addition, we hired three 1/4 time fellowship students: Michel Clark, Anshu Sharma, and Jon Munson. Emad Eldin is a student at ODU, the remaining are at UNC. All students except Goopeel Chung, Jon Munson, and Peter Nee are first-year graduate students. Finally, after attending and contributing to initial meetings, Prof. Sid Chatterjee of UNC also joined our group.

Noteworthy meetings.

None.

Problems issues.

We had commitment from Mike Meehan, a senior graphics students, to work on the VR aspects of our project. He had planned on joining us in September but could not do so. He is currently working for a start-up company and expected the product to be shipped by September, but the scheduled slipped.

Program financial status


Planned funding profile.

FY96 Base 68,138
FY97 Base 394,868
FY98 Base 311,215
FY99 Base 207,476
TOTAL Base 981,697

Obligated to date.

138,130

Expenses and Encumberances this quarter.

15,181.

Expenses and Encumberances to date.

15,181.

Current Budget Period:

22 JUL 1996 - 15 DEC 1996

Publications.

While there were several publications during this quarter from this group of researchers on topics related to this project, none of them was a result of this funding.