next up previous
Next: E. Previous Research Up: No Title Previous: Rationale

Approach

The design of such a bus requires a general abstraction that covers the functionality of existing collaborative systems. In particular, the bus must capture similar solutions to a problem so that these solutions can be made to work across tools. For instance, it must capture the notions of (coarse-grained) floor control and fine-grained concurrency control so that inter-tool concurrency control control can be supported for all tools implementing these concepts. In addition, it must provide, when possible, semantic translation to allow dissimilar solutions to the same problem to coexist. For instance, it must be able to find a compromise when interfacing floor control and fine-grained concurrency control. It must also provide a definition of a collaboration service that is general enough to allow it to be composed with other services. For instance, it provide a definition of real-time services that can be applied to not only video conferencing but also shared virtual environments.

the bus must not become a bottleneck that significantly increases the response times of users.

We intend to use the following approach in designing, implementing and evaluating the bus:


and design space for each of these services. The definition should allow a service to be composed with all other services, thereby supporting inter-service interoperability. The design space will identify different methods for providing the service.

of a particular service, thereby supporting intra-service interoperability.
Incorporate, into the bus, a default implementation of the service and the associated semantic translations.


Develop mechanisms and policies for replicating and migrating parts of it.
Develop mechanisms for protecting the operations on the bus.
Carry out interoperability experiments involving each of these services using state-of-the-art existing software.

A large number of services must be provided to support distributed collaboration. These services can be divided into application independent and dependent services based on whether they depend on the specific data structures and semantics of an application. An example of an application-independent service is session management, which groups together users wishing to use a set of applications, and does not depend on the insides of these applications.

An example of an application-dependent service is access control, which controls access to objects of an application, whose types are defined by the application. Collaboration services can be further divided into collaboration enabling and controlling services, based on whether they enable communication among the collaborators or control the actions of the collaborators. An example of a collaboration-enabling service is sharing, which links objects belonging to different users. Access and concurrency control are examples of collaboration-control services. In this project, we will investigate both application dependent and independent services, and collaboration enabling and control services. Support of application-dependent services requires a model of the data and user interface of a collaborative application. Therefore, our collaboration bus will also include data and user-interface modelling components.

To be more specific, our bus will include:

(a) a data model for defining shared workspaces consisting of structured objects; (b) a user interface model that allows shared objects to be manipulated using user interfaces that support text, graphics, audio, video, and virtual reality; (c) a coupling model that enables users in a joint session to share data and user-interface objects and controls their interactions to ensure security and consistency contraints are not violated; (d) migration and replication mechanisms that ensure that the bus does not become a bottleneck; and (e) real-time services, consisting of scheduling algorithms and network protocols, for ensuring real-time coupling among the collaborators.

To evaluate our research and demonstrate its effectiveness, we will use the bus to integrate a subset of the current collaboration and single-user systems offering a variety of services. We currently have numerous connections with collaborators at other sites, including IBM, Intel Corp., H.P., Xerox, Univ. of Florida, Univ. of

Univ. of Michigan, University of Illinois, and Univ. of Adelaide (Australia). We expect to conduct our experiments in conjunction with these colleagues and the tools with which they customarily work. Thus, the subset of systems we have initially identified to integrate includes XTV (ODU), Suite (UNC), Shared X (HP), Trellis (UNC), ABC (UNC), DistEdit (Michigan), Web browsers, Java objects, and VE applications and real-time services developed at UNC. Integration of some of these systems is already being investigated on a case-by-case basis (such as Suite and Web, Trellis and Web, DistEdit and Suite, XTV and Suite, and Trellis and Suite ), and should fit nicely into the proposed unified framework of the bus. Our efforts with individual integrations will give us baseline data for determining improvements obtained with the bus.

Our experiments will demonstrate inter-service interoperability among at least three different services and intra-service interoperability among at least three different implementations of the same service. In particular, we will demonstrate inter-service interoperability among object-oriented Java data model, 3-D VE user interfaces build at UNC, real-time support developed at UNC, and coupling services; and intra-service interoperability among different forms of coupling implemented in state-of-the-art desktop conferencing systems offered by HP, UNC, and ODU.

To illustrate the nature of the proposed research in intra-service interoperability, consider the session management service. Some session management schemes require users to explicitly join sessions while others implicitly include them in sessions based on the activities they performing. Some explicit schemes require new users to be invited to a conference while others allow users to autonomously join sessions they know about. Some implicit schemes join users in a session based on the artifact they are manipulating, while others join them based on their proximity in a virtual space. We will investigate techniques for interoperating applications offering different session management schemes, thereby allowing, for instance, one collaborator to use explicit session management and another to use VE-based implicit session management. Similarly, we will devise conflict resolution rules for handling inconsistencies in other services such as awareness and sharing.

To illustrate the nature of the proposed inter-service interoperability, consider the user-interface and real-time services. So far, real-time services have been studied mainly in the context of continuous video and audio. By investigating interoperability between real-time services and VE-based user interfaces, we will go beyond the problem of supporting ``talking heads in a window'' to consider shared distributed virtual worlds that allow users to collaborate with each other in real-time. Similarly, we will consider interoperability between other pairs of services such as access control and multimedia, concurrency control and virtual environments, and so on.

In general, integrating two existing systems will require that each be made "bus aware", that is, be modified to communicate with the collaboration bus. However, often, it is not desirable or possible to change a software system. Therefore, we intend to explore methods for interfacing with the bus that do not require changes to existing systems and explore the kind of integration methods that can be supported by these techniques. In our research on shared window systems, we have had substantial experience with the notion of writing filter-based "pseudo server", that is, a process placed between a client and a real server that pretends to be the real server and processes requests from the client before forwarding them to the real server. We intend to explore the use of this technique for interfacing unchanged systems to the bus.

We will incorporate and experiment with the collaboration services in several stages. In the first stage, we will support application-independent services and conduct (inter-service and intra-service) interoperability experiments that involve these services.

Next, we will incorporate a data and user interface model for supporting application-dependent services. We will then research the application-dependent collaboration-enabling services, and finally, we will investigate application-dependent collaboration-control services. We will investigate these services in a bottom-up, breadth-first manner, including as much support as is needed to perform the current interoperability experiment, and gradually increasing the scope of our interoperability experiments.

Previous research efforts have addressed generic data models (e.g. CORBA) and multimodal user interfaces (e.g. MASTERMIND [ MASTERMIND ] ). We will extend this research in three main ways. First, we will evaluate the suitability of existing, general purpose concepts for capturing the data and user-interfaces in our target collaborative applications and make any necessary adaptations. Second, we will add to the general-purpose models common objects found in the collaboration/multimedia domain.

we will define interfaces between the data and user-interface models and other components of our collaboration model.



next up previous
Next: E. Previous Research Up: No Title Previous: Rationale



Prasun Dewan
Thu Sep 12 19:30:03 EDT 1996