Flexible Shared Windows NSF Grant Number IRIS-9508514 First 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 first year of our project that are not supported by the current generation of shared window systems. Summary of Results Client Migration One of the problems with today's centralized shared window systems is that the shared client is fixed at one location. As a result, users interacting from other locations suffer from poor response. To resolve this problem, we have extended XTV, an existing X Window System-based shared window system, so that the shared client follows the current active user during a collaboration session. Migrating a process is not a new idea. It has been previously supported in migration-aware custom operating systems. We have developed a new log-based migration mechanism at the window system level that can work on top of generic operating systems. While an active user interacts with the shared client, we log the input events on the source site, and when the time comes to migrate the client, we terminate the client, send the input log to the destination, and replay it to a fresh copy of the client. To efficiently and correctly support migration, we use novel techniques for controlling the input replay rate, detecting the replay finish, reducing the log size, reducing the replay time, eliminating the interaction pause during replay, and handling non-idempotent operations. Dynamic Replication and Centralization It is useful to not only migrate a client, but also, in many cases, to replicate it on the workstations of the active users. We have extended our migration mechanism to allow (1) a centralized client to dynamically replicate on the workstations of its users, and (2) the replicas to converge back to a single shared client. The result is a single window system that supports static centralization, static replication, and dynamic migration, replication, and centralization. Java-based Sharing The work described above has been done in the context of the X Window System. To increase the generality and usefulness of our results, we have started a project to explore the concept of shared windows in the Java environment. Java provides a rich environment for developing interactive applications, which includes not only a window layer but also higher software layers including a user- interface toolkit. In the Java-based component of our project, we plan to explore how collaboration functionality should be partitioned among these layers. As a step in this direction, we have developed an initial Java-based collaboration system called Sync. Sharing Architecture Current shared window systems have extended the architectures of existing window systems such as X, which were not designed to support collaboration. We are exploring new window system designs to support collaboration. The essence of the approach here is to separate the display functions (the output device specific graphics and I/O processing) from the window attribute and state database. We are developing a new window system called Concur, that is better able to support distribution and sharing of windows by providing a centralized "window server" that multiple "display clients" can interact with to render a consistent shared view of a window. Part of the effort in the Concur window system is the development of a window system development toolkit that consists of dynamically composible "filter" primitives that allow for the typical processing functions in a window system to be distributed between clients and servers to enable easy migration of clients. Audio/Video Conferencing An important component of a shared window system is a facility for real-time communications between users. We are investigating the inclusion of an audio/video conferencing system in a shared window system. The technical challenges here are realizing effective real-time communications in the presence of unpredictable levels of congestion in the network. We have developed a framework for adapting media streams in response to measures of congestion (loss, latency) that scales (reduces or increases) the bit-rates and message transmission rates of the streams. In an effort to evaluate the effectiveness of our solutions, we have recently interested a group in the Intel Architecture Labs in Hillsboro, OR, to work with us in applying our adaptive congestion control scheme to the Intel ProShare videoconferencing and window sharing system. Publications Referencing the Grant The Performance of Two-Dimensional Media Scaling for Internet Videoconferencing: Experiments with ProShareTM on the Internet, P. Nee, K. Jeffay, G. Danneels, Seventh International Workshop on Network and Operating System Support for Digital Audio and Video, St. Louis, MO, May 1997, to appear. A Two-Dimensional Audio Scaling Enhancement to an Internet Videoconferencing System, P. Nee, K. Jeffay, M. Clark, G. Danneels, April 1997, in submission. Beyond Window Sharing Hacks: Support for First- Class Window Sharing, J. Menges, K. Jeffay, in submission. 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. A General Framework For Continuous Media Transmission Control, T.M. Talley and K. Jeffay, Proceedings of the 21st IEEE Conference on Local Computer Networks, Minneapolis, MN, October 1996, pages 374-383. A Router-Based Congestion Control Scheme For Real-Time Continuous Media, K. Jeffay, M. Parris, T. Talley, F.D. Smith, Proceedings of the Sixth International Workshop on Network and Operating System Support for Digital Audio and Video, Zushi, Japan, April 1996, pages 79- 86. A Mechanism for Supporting Client Migration in a Shared Window System, G. Chung, P. Dewan, Proceedings of the Ninth Conference on User Interface Software and Technology, ACM, New York, October 1996. Sync: A System for Mobile Collaborative Applications, J. Munson, P. Dewan, IEEE Computer, special issue on Executable Content in Java, to appear in June '97 Human and Educational Resources Impact The following students have been supported by the grant: Dave Bennet, Peter Nee, Masters students, Goopeel Chung, Ph.D. student. Research Plan for Next Period In the next period, we will to continue the various components of our work outlined above. In addition, we envision starting new investigations in the following areas. 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 collaboration. We also plan to augment shared window system with new collaboration functions such as concurrency and access control and asynchronous collaboration. 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 (e.g., the degree of coupling between users' views, the undo/redo semantics, etc.) and live with whatever system and network performance is possible given those settings, we are investigating tuning the degree of sharing in a based on the current performance of the underlying network so as to maximize the responsiveness and interactivity of the system. The congestion 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 generated by clients and servers in a shared window system. Statement on Form 1328 I certify that to the best of my knowledge (1) the statements herein (excluding scientific hypotheses and scientific opinions) are true and complete, and (2) the text and graphics in this report as well as any accompanying publications or other documents, unless otherwise indicated, are the original 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