GroupKit - GroupSketch

GroupKit is a Groupware Toolkit developed at our University, by the GroupLab of Computer Science Department. It is a groupware itself, and as its name implies, it is used for developing groupware. The kind of groupware that it can develop are real-time conferencing system, and it allows both geographically distributed and face-to-face meetings. So it belongs to both same-time-same-place and same-time-different-place category. Of course, you still need to use telephones for verbal communications as your meeting carries on, if your meeting takes place in more than one place.

The GroupKit was developed with one main objective, to reduce the groupware development effort. An analogy is window development toolkit like VisualBasic and PowerBuilder. If you've to develop Windows applications yourself in C without any toolkit, it's going to be a nightmare because you have to know how to write code to draw a window on the screen or specify certain attributes of the windows. Tools like PowerBuilder or VisualBasic provide many templates that we can reuse, and provide some functions to draw windows and change attributes of windows extremely easily; and so instead of caring too much on these very low-level details of windows design, developers can spend their time more effectively, such as the functionality of the application.

The GroupKit is just like that. Just take communication as an example. Since you may be developing a groupware that allows people from different places to communicate, normally you have to understand things like networking or synchronized and asynchronized communication. GroupKit has a communication component that hides most of the communication detail from the developer. In fact it has some other key components for common groupware needs. In this way developers can use their time effectively such as delivering the prototype faster, and thus increase product quality.

The philosophy of Groupkit is what is called WYSIWIS, which means What You See Is What I See. In this kind of environment, participants of the meeting have a shared view of the application; but not only that, but also a shared view of the different actions carried out by the different participants of the meeting, so that when I move my mouse every participant will be able to see it.

For example, we are going to give an example on GroupSketch. GroupSketch was also developed by the GroupLab at our University. It was actually developed before GroupKit, and which led to the motivation for the GroupLab to develop GroupKit. (This is contradicting to what I presented in my presentation and is indeed a mistake, pointed to me kindly by Mark Roseman, the Research Associate of the GroupLab project at our University. I apologize for any misinformation given out and any inconvenience caused.) GroupSketch is a multi-user paint or draw system that allows people to draw simultaneously.

As an example, let's say, there is now a meeting and Peter, Mary and I are the 3 participants. From each of our screen, we will be able to see three cursors; and each cursor will have a name attached to it, which usually takes the form of a user login name. In this way, I'll be able to see what pictures Peter and Mary are drawing, and will they be able to see what I am drawing.

This also illustrates a feature that GroupKit provides. It supports gesturing. For example, you're having a meeting and all of a sudden you think of a bright idea and want to share it with the other people. But how are you going to get the attention? In GroupKit since everyone can see everyone else's cursors, to get other people's attention you can simply wave your cursor like you wave your hands. The gesturing is good not only in seeking attention, but it in fact turns out to be very practical in situations where it is not easy to express some of your opinion in words. For example, you might want to say, when designing a radio, "I think we should move the volume control a little bit down and a little bit to the left but not too much". With a cursor on the screen you can easily point out exactly where you want to move the volume control to.

And of course, like many drawing tools, GroupSketch allows you to make annotations so that when a meeting ends, you can type any notes in it so that in your next meeting you know where you left off last time.

GroupKit also supports other things. Different groups have different requirements in terms of meetings at different time, for example, who can join the meeting. Sometimes a group may want to have open discussion so that everyone in the organization can join, or sometimes the group may want to discuss the topic among itself. GroupKit provides ways so that meeting registration can be managed.

Also, it occurs very often that when the meeting time comes, not everyone shows up. Some people are late - they can be late so much that the meeting has to commence without their presence. In reality, however, as long as they show up eventually, you still let them in. The point here is, GroupKit allows members of the group to participate in the meeting anytime, and leave the meeting anytime too.


If you are interested in knowing more about GroupKit, please press here.

There are also some interesting papers about GroupKit:

Roseman, M. (1995). When is an object not an object? Submitted to the 1995 Tcl Workshop. [Postscript, 57k]
Describes a more dynamic approach to building object-oriented Tcl commands than is available with traditional object extensions. GroupKit environments are used to illustrate the technique's flexibility.

Greenberg, S. and Marwood, D. (1994). Real time groupware as a distributed system: Concurrency control and its effect on the interface. Proc. of CSCW '94. [Postscript, 122k]
This paper discusses concurrency control issues and their effect on the groupware user interface. It examines common strategies such as serialization and locking. The paper describes an earlier attempt at implementing a concurrency control framework in GroupKit.

Roseman, M. and Greenberg, S. (1994). Registration for Real-Time Groupware. Unpublished. [Postscript, 1.2mb]
This paper advocates the need for flexibility in groupware registration or session management. The paper derives a set of registration requirements, and draws examples from registration systems built using GroupKit.

Last updated on Mar 18, 1995