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
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.
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.
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