CONTRACTOR'S PROGRESS STATUS AND MANAGEMENT REPORT HPDST Intelligent Collaboration & Visualization for the period 22 Jan 1997 - 22 July 1997 Report #2 CDRL A001 CONTRACT N66001-96-C-8507 5 Sep 1997 SUBMITTED TO Receiving Officer e-mail address: "hpdstnrad@nosc.mil" Rich Laverty Frank Schindler Bob Medearis 619-553-2918 619-553-2845 619-553-6377 laverty@nosc.mil fschindl@nosc.mil medearis@nosc.mil SUBMITTED BY University of North Carolina Chapel Hill Chapel Hill, NC 27599 Principal Investigator Administrative Contact Contract/Financial Contact Prasun Dewan Sarah Thompson (919) 962-1823 (919) 962-4673 fax: (919) 962-1799 (919) 962-5011 dewan@cs.unc.edu sarah_thompson@unc.edu Do not distribute to DTIC or other data depositories. Distribution authorized to DOD components only; premature dissemination (date). Other requests shall be referred to Naval Command, Control and Ocean Surveillance Center (NCCOSC), RDT&E Division, San Diego, California 92152-5000. Quarterly Status Report High Performance Distributed Services Technology HPDST Intelligent Collaboration & Visualization for the period 22 July 1996 - 22 October 1996 Contract N66001-96-C-8507 CDRL A001 1.0 Purpose of Report This status report is the quarterly contract deliverable (CDRL A001) which summarizes the effort expended by the University of North Carolina team in support of HPDST Intelligent Collaboration & Visualization (IC&V) on Contract N6601-96-C-8507. 2.0 Project Members UNC/Dewan and others. spent: 3020 hours sub-contractor/ODU. spent: 960 hours sub-contractor/PSU. spent: 0 hours 3.0 Project Description (last modified mm/yy) 4.0 Performance Against Plan Spending was as planned for this reporting period. Moreover, we continued to make progress on the steps started last quarter. 5.0 Major Accomplishments to Date In this quarter, we partially completed many of the tasks we started in the previous quarter. We extended an influential and popular shared window system, called XTV, with a new log-based mechanism for dynamically migrating, replicating, and centralizing window clients. The mechanism does not require changes to existing window client programs or system software (such as window system, operating system, and programming language.) We ran a series of experiments to test the effectiveness of an adaptive media scaling scheme for congestion control in real-time multimedia applications. Joint with the Intel Architecture Labs in Hillsboro OR, we modified a version of the ProShare PC videoconferencing system to include our congestion control scheme. We then tested the system between UNC and several remote sites on the Internet, most notably, the Univ. of Virginia, CMU, and the Univ. of Washington in Seattle. We ran repeated experiments over a 3 month period. The results were that UNC modifications dramatically improved the performance fo the ProShare system (in terms of end-to-end latency, media throughput, etc.), however, at certain times of the day, it was simply impossible to sustain acceptable quality conferences (under any scheme). We also began a series of experiments in providing network support for distributed virtual environment applications. Specifically, we ran an immersive virtual reality interface to a scanning-probe microscope (a system that provides telepresence at nanometer scale on sample surfaces) across the Internet to measure the observed loss rates and latency and to assess the effects of these pathologies on the application. The next steps of this sub-project will be to begin the development of mechanisms for ameliorating these effects. We also developed a model for merging object replicas that defines a whole design space of merge policies including those supported in existing tools such as the Unix RCS and diff utilities and Lotus Notes. The merge policy is chosen based on the structure/type of the object to be merged and merge matrices associated with the object. Merge matrices, like access matrices in access control, are tables that can be modified by the application programmer or end user to control the selection of the merge policy. We implemented the model in a prototype Java framework called Sync, designed to support mobile asynchronous collaboration on weakly-connected wireless networks. The system is extensible in that programmers can extend both merge matrices and the merge algorithm. We also started a separate project to investigate session management. In our design a session is a meeting among individuals during which different tools and applications can be shared. Session management addresses the issues of creating, advertising, joining and leaving a session as well as facilitating the use of shared tools during the session. We designed the overall architecture of the session management and the basic user interface to the system. Our implementation is based on Java Shared Data API (JSDA) which is part of JavaMedia API to support highly interactive, collaborative, multimedia applications. JSDA provides the basic abstraction of session, multicast message communications, token-based synchronization mechanism and shared named primitive data elements. A simple prototype of our design is now available that allows sharing of X applications using XTV. Session management and merging are two important components of a collaborative application. A separate sub-project is investigating other important components in the context of a collaborative spreadsheet application. We developed a dynamically composable spreadsheet that uses an extension of the model-view architecture. This architecture allows dynamic change of concurrency and coupling modules. We have developed a variety of concurrency control modules providing different concurrency control implementations (found in existing systems) including centralized locks, distributed locks, tickle locks, and optimistic locks. We have also developed different coupler modules that allow users to import/export all/committed changes. By simply selecting from menus, applications can be dynamically bound to any of these concurrency controllers or couplers. We are also investigating encoding of collaborative browsing prorocols as separate, encapsulated modules in a system. We have implemented for experimentation a group Web browser called CobWeb that allows a group of users to form, select a specific collaboration protocol, and then collectively explore Web pages. The protocols we have implemented so far include ``shoulder surfing'' with free access to a chat board, and moderated meeting with one-at-a-time access to the chatboard. We completed implementation of a basic server in Java that is compatible with the WWW while providing persistent storage of Java objects embedded in a hypertextual graph structure. We also developed a browsing applet that can be loaded through the Web to provide interactive rendering and editing of graph objects (lists, trees, and general directed graphs) that designate the structure and organization of the database. The system also supports storage and editions of HTML content objects contained within nodes of the graph. The system also provides concurrency and access control. Our next goals include supporting reliable hyperlinks when nodes are moved from one graph to another, support for an open-ended set of additional content object types (e.g., GIFT, JPEG, MPEG), and improving the robustness and scalability of the initial implementation. As part of our VE effort, we developed a colab-VE framework that allows Java programs to interface to the C-based OpenGL library. We have also incorporated into the framework an existing collision detector called VCollide. We plan to use this framework to build awareness services for collaborative virtual environments. Another sub-project interfaces to a liquid reality engine, which currently runs very slow. These sub-projects are being coded to allow the graphics engine to be easily changed later - in particular to the Java 3-D graphics library expected soon. We have also been studying the use of animations to communicate subtle information among the multiple users in a collaborative VE. To study these effects we have built a small multi-user editor that allows collaborative construction and manipulation of 3D graphics models. In this system when one user grabs and moves an object, the object warps to show the other users that the object is being moved. The warping helps distinguish movement caused by a user from relative movement of an object caused by the viewer changing his viewpoint. Different object movements cause different warpings. Scaling, for example, causes the corners of an object to slightly implode or explode as the scaling operation takes place. After stopping, the corners snap to the correct object shape. Rotation causes object corners to trail slightly away from the direction of rotation. We believe that such awareness services in collaborative VEs will be more useful for controlling concurrency than traditional locking. Web-authoring. 7.0 Issues 7.1 Open issues with no plan, as yet, for resolution: How to integrate all of these sub projects. 7.2 Open issues with plan for resolution: Which 3-D graphics library to use? We currently plan to use the extension to the 3-D Java library that is expected from UIUC NCSA. 7.3 Issues resolved: 8.0 Near-term Plan The main near-term plan is to develop a design integrating the various sub-projects. 9.0 Completed Travel In February, Dewan attended the Berkeley IC&V PI meeting in February. In March, he attended the CHI conference and an IFIP meeting in Atlanta. 10. Equipment Purchases and Description 11.0 Summary of Activity 11.1 Work Focus: Our focus this quarter was on: migration/replication support in a shared window system support for mobile collaboration real-time networking experiments dynamic composition of concurrency controllers and couplers JSDA-based session management 11.2 Significant Events: Our real-time experiments show that UNC modifications dramatically improved the performance fo the ProShare system (in terms of end-to-end latency, media throughput, etc.). We are able to dynamically compose concurrency controllers and couplers. We developed a prototype system for supporting merging in a disconnected mobile environment. We are able to demonstrate dynamic replication and migration in XTV, an influential shared window system. FINANCIAL INFORMATION: Contract #: N66001-96-C-8507 Contract Period of Performance: 7/22/96-7/21/99 Ceiling Value: $981,697 Reporting Period: 1/22/97 - 07/22/97 Actual Vouchered (all costs to be reported as fully burdened, do not report overhead, GA and fee separately): Current Period Prime Contractor Hours Cost Labor 3020 59,153 ODC's 9,658 Sub-contractor 1 (ODU) 480+400+31+49=960 15,709 Sub-contractor 2 (PSU) 0 0 TOTAL: 84,520 Cumulative to date: Prime Contractor Hours Cost Labor 5580 102,392 ODC's 960 18,493 Sub-contractor 1 (ODU) 0 0 Sub-contractor 2 (PSU) 0 0 TOTAL: 136,594