Flexible Shared Windows NSF Grant Number IRIS-9508514 Second year project report Prasun Dewan & Kevin Jeffay Department of Computer Science University of North Carolina at Chapel Hill Chapel Hill, North Carolina 27599-3175 {dewan,jeffay}@cs.unc.edu Project Overview A shared window system is a software infrastructure that allows users to share the contents of application windows and provides audio/video conferencing to its users. The goal of this project to develop techniques that significantly increase the flexibility and performance of shared window systems. We describe below some of the techniques we have pursued in the second year of our project that are not sup- ported by the current generation of shared window systems. Summary of Results In our previous report, we mentioned our research on (a) a new log-based migration mechanism supported in an X-based window system called XTV; (b) a new mechanism in XTV sup- porting dynamic centralization and replication of a window client; (c) a new Java-based collaboration system called Sync; (d) a new sharing architecture, called Concur, that inverts the traditional client-server architecture; and (e) adapting audio/video media streams in response to conges- tion. We describe below some of our research accomplishments of this year. Window-System Architecture (Concur): Concur is implemented in four layers: Concur -- A window system, backward compatible with X, that directly supports window sharing. PEAL/X -- A generic protocol manipulation framework. ABC -- A C++ utility library. In addition, we have also developed a window manager (a Con- cur client), called ConMan, that exposes Concur's functions to the user. The Concur implementation is now robust and nearly complete from the bottom of the stack up through PEAL/X. The system is useful and usable as-is, though, there currently exist only a handful of applications that can be used with the system. A prototype exists of the top-level Concur layer (and Con- Man), however, this is sufficient to demonstrate all of the basic sharing features of the window system on applications such as idraw, xterm, and (old versions of) Netscape Naviga- tor. These features include novel lightweight sharing methods such as drag-and-drop sharing into a virtual screen. In the coming year we will concentrate on completing the implementation of an access control mechanism and adding the ability to customize the portions of an application's inter- face that are shared. Reference Sharing Architecture: In this project, we have developed three different systems for supporting application sharing: XTV, Concur, and Sync. While these systems differ in the set of services they pro- vide -- XTV provides dynamic migration and replication, Con- cur provides window-level access and concurrency control, and Sync supports disconnected operation -- they also have many similarities -- each of these systems provides session management and sharing. In an effort to compose the imple- mentations of these and other collaboration systems, we have started work on a ``reference architecture'' for sharing systems that covers a variety of existing systems. We have implemented an initial version of it in a simple collabora- tive spreadsheet. It is an an extension of the model-view architecture, allowing dynamic change of concurrency and coupling modules. We have developed a variety of con- currency control modules providing different concurrency control implementations (found in existing systems) includ- ing 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. The coupler and concurrency control modules are currently spreadsheet-specific and we plan to create generic versions of these that work for arbitrary (Java) objects. Composable Newcomer-Module: One of the services needed by a collaborative system is the ability to build the shared state for a newcomer to the col- laboration. We have designed a composable module that pro- vides such a service for any shared application. The effi- ciency and flexibility of such a module depends on how much of the application semantics are exposed to this module. We have designed three different schemes, of increasing flexi- bility and efficiency, that make increasing assumptions about what is available from the application. This module, which will be implemented in Java, will be able to also serve non-Java systems. In particular, we plan to compose it with the C-based XTV system. Java-based UI System: One of the goals of our project is to identify the parti- tioning of sharing services among the various UI layers in the system: window system, toolkits, user-interface manage- ment system (UIMS), and application. The Java Development Environment is a good testbed for testing this partitioning since it has two of these layers, window system and toolkit, integrated with each other. We have started an effort to create a UIMS that is integrated with these layers. We have an initial implementation that automati- cally binds simple Java objects to toolkit widgets. We pro- pose to extend it to support structured Java objects. The UIMS is an interesting contribution in its own right. More- over, once it is built, we will use it as a basis for deter- mining the appropriate layers for different sharing ser- vices. Congestion Control of Real-Time Streams: We ran a series of experiments to test the effectiveness of the adaptive media scaling scheme for congestion control we had developed last year. Joint with the Intel Architecture Labs in Hillsboro OR, we modified a version of the ProShare PC videoconferencing/shared-window 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 Wash- ington 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 impossi- ble to sustain acceptable quality conferences (under any scheme). 1997 Publications Referencing the Grant The Performance of Two-Dimensional Media Scaling for Inter- net Videoconferencing: Experiments with ProShareTM on the Internet, P. Nee, K. Jeffay, G. Danneels, Seventh Interna- tional Workshop on Network and Operating System Support for Digital Audio and Video, St. Louis, MO, May 1997, pages 237-248. A Two-Dimensional Audio Scaling Enhancement to an Internet Videoconferencing System, P. Nee, K. Jeffay, M. Clark, G. Danneels, Proceedings of the International Workshop on Audio-Visual Services over Packet Networks, Aberdeen, Scot- land, UK, September 1997, pages 201-206. On the Duality between Resource Reservation and Proportional Share Resource Allocation, I. Stoica, H. Abdel-Wahab, K. Jeffay, in Multimedia Computing and Networking 1997, Proceedings, SPIE Proceedings Series, Volume 3020, San Jose, CA, February 1997, pages 207- 214. Sync: A System for Mobile Collaborative Applications, J. Munson, P. Dewan, IEEE Computer, special issue on Executable Content in Java, June '97 Research Directions in Collaborative Applications, Prasun Dewan, Proceedings of 21st IEEE COMPSAC, Aug 97. Human and Educational Resources Impact The following students have been supported by the grant: Dave Bennet, Peter Nee, Sadagopan Rajaram, Masters students; Goopeel Chung, Michele Clark, Ph.D. students. Research Plan for Next Period In the next period, we will to continue the various com- ponents of our work outlined above. In addition, we envi- sion starting new investigations in the following areas. We plan to create composable versions of the scheme we developed in XTV for migration and replication. It will require us to define and implement these services in a system-independent manner. The implementation of these ser- vices will be composable with any system that follows our reference architecture. In addition, we plan to explore fine-grained migration that allows partial processing of a client to be migrated to a remote host. We plan to devise migration policies for automatically moving a client based on the kind of colla- boration in which they are involved. We also plan to augment shared window system with asynchronous collaboration. We intend to create this system also as a composable module. We are also interested in applying our congestion control work to improve the performance of interactive sharing of windows. Rather than have users statically configure the degree of sharing in a collaborative session (synchronous or asynchronous) and live with whatever system and network per- formance is possible given those settings, we are investi- gating tuning the degree of sharing based on the current performance of the underlying network so as to maximize the responsiveness and interactivity of the system. The conges- tion control scheme we originally developed for audio and video is in fact quite generic and we conjecture that it can be applied to any continuous media stream such as those gen- erated by clients and servers in a shared window system. Again, we propose to create these services as composable modules. Statement on Form 1328 I certify that to the best of my knowledge (1) the state- ments herein (excluding scientific hypotheses and scientific opinions) are true and complete, and (2) the text and graph- ics in this report as well as any accompanying publications or other documents, unless otherwise indicated, are the ori- ginal work of the signatories or individuals woking under their supervision. I understand that the willful provision of false information or concealing a material fact in this report or any other communication submitted to NSF is a criminal offense (U.S.Code, Title 18, Section 1001.) Prasun Dewan Kevin Jeffay