GroupLab Collabrary: A Toolkit for Multimedia Groupware Michael Boyle and Saul Greenberg Dept. of Computer Science, University of Calgary Calgary, Alberta, CANDA T2B 1X5 +1 403 210 9499 {boylem, saul}@cpsc.ucalgary.ca ABSTRACT GroupLab Collabrary is a toolkit for rapidly prototyping multimedia groupware. It provides a straightforward API to managing and distributing multimedia information between groupware program instances. The Collabrary also has a culture of use, where a small generic set of useful groupware programming patterns has evolved over time. In this workshop I will describe the Collabrary, what it offers groupware developers, and how these features in turn drive requirements for network services for rich groupware. Keywords: Groupware, multimedia, networks services, notification servers, prototyping toolkits. INTRODUCTION The GroupLab team at the University of Calgary has made several major technical contributions to the CSCW community, particularly in our design and implementation of architectures and toolkits for rapidly prototyping groupware [e.g., 4]. Because we deal primarily with distributed groupware, these systems had to concern themselves with network issues, how data is distributed across the network, and how processes share data. Yet our true research interests lie not with technical issues about the design and implementation of network services for groupware. Rather, our main goal has always been to give programmers the power to rapidly prototype groupware applications, to use these prototypes to examine user experiences and to uncover the human and social factors associated with groupware tool use. Yet we ended up devoting a great deal of our time experimenting, building and packaging various network services for groupware. This is because the services we then had at hand—mostly bare-bones TCP sockets—were too low level to help us rapidly prototyping the kinds groupware applications we were interested in building. This was the rationale for our GroupKit toolkit for building interactive graphical groupware applications, where we introduced the notion of session managers and environments as a way to manage and hide network details while providing a simple way for programmers to distributed string-based data [4]. While GroupKit proved extremely effective for prototyping ‘conventional’ groupware applications, we found it wanting when we moved into building media spaces. Specifically, the network services behind GroupKit were too limited to support the demands of rich multimedia groupware applications e.g., images and audio/video channels. Consequently, we set ourselves the new research goal of building an infrastructure for managing multimedia groupware communication. The idea was to leverage all the experiences and lessons learned from our previous toolkits and applications (as well as those reported by others) into a new toolkit that we felt could meet our desire to rapidly prototype multimedia groupware. The result is the GroupLab Collabrary, a toolkit we developed for rapidly constructing novel multimedia groupware applications. Our Collabrary is a proven toolkit. We have used it to build serious applications under daily heavy use e.g., the Notification Collage media space that provides informal awareness and casual interactions for a distributed community [3]. We have also used it to implement many high-fidelity research prototypes, including a privacy-preserving video media space application [1] and the IMVis [4] instant messenger visualization. The Collabrary also has use outside our research group, where undergraduates built quite interesting groupware applications as part of their course project. In this workshop, we will highlight those features of the Collabrary that make it a powerful tool for building rich, multimedia groupware. In particular, we look at its high level concepts – its architecture, its client-side API and the suite of groupware development patterns and practices that evolved over its use. We caution that we do not specifically address low level network services, for we believe that the strengths of the Collabrary are somewhat agnostic towards the network service upon which it is implemented. While we actually implement a simple TCP-based binary prototocol for client/server communications, this plumbing could conceivably be swapped out for, say, an XML web service layer that affords features not easily provided by the existing implementation. Consequently, what the Collabrary provides is valuable insight behind the requirements of network services if this service is to support its API and programming patterns. Cite as: Boyle, M. and Greenberg, S. (2002) GroupLab Collabrary: A Toolkit for Multimedia Groupware. In J. Patterson (Ed.) ACM CSCW 2002 Workshop on Network Services for Groupware, November.