A Skeleton-Based Approach for the Design and Implementation of Distributed Virtual Environments Fethi A. Rabhi School of Information Systems The University of New South Wales Sydney, NSW 2052 (Australia) Helen Cai and Brian C. Tompsett Department of Computer Science The University of Hull Hull HU6 7RX (UK) Abstract It has long been argued that developing distributed soft- ware is a difficult and error-prone activity. Based on pre- vious work on design patterns and skeletons, this paper proposes a template-based approach for the high-level de- sign and implementation of Distributed Virtual Environ- ments (DVEs). It describes a methodology and its associ- ated tool which includes a user-interface, a performance analyser and an automatic code generation facility. It also discusses some preliminary results on a surgical training system. 1 Introduction In recent years, the demand for distributed systems has been increasing due to the widespread use of real-time and information systems that can operate over general purpose networks. However, the process of developing distributed software is still immature since it involves a large number of complex design issues such as synchronisation, timing constraints, data distribution and fault-tolerance. Part of the problem comes from the fact that most sys- tems are built in a bottom-up fashion i.e. they are often constructed using software modules that have already been developed. Each sequential activity is modelled separately using known techniques and interaction is usually left much later in the design process or only addressed during the im- plementation phase. Whilst this is unimportant for an in- formation system for example, analysing and understand- ing the system’s overall behaviour is crucial for satisfying the requirements of a large number of systems particularly distributed real-time systems. Fuelled by the popularity of object models and lan- guages, there has been an increasing tendency to use a soft- ware layer (called middleware) to link all the software com- ponents that comprise a distributed architecture. A standard such as CORBA [10] is a promising development because it offers the opportunity for software components to com- municate and synchronise regardless of their programming language or host operating system. However, such stan- dards cannot deal with issues such as fault-tolerance and timeliness since all interaction-specific details are left to the underlying communication system. In addition, they offer users low level programming interfaces and cannot accom- modate changes easily. The aim of this paper is to study the role of patterns and skeletons in the design and implementation of dis- tributed systems, focusing on Distributed Virtual Environ- ments (DVEs) selected as a case study. Section 2 describes DVEs and discusses various approaches for designing and implementing them. Section 3 presents a design pattern which facilitates the extension of a VE into a DVE. Section 4 discusses a “skeleton-based” methodology for using this pattern and its associated tool. Some preliminary results on a surgical training system are discussed in Section 5. 2 Distributed virtual environments (DVEs) 2.1 Definition A Virtual Environment (VE) [6] is a computer-generated world accessible to a (human) user through input/output de- vices. It is similar to a traditional simulation but with an em- phasis on three-dimensional graphics, immersion and real- time interaction. A Distributed Virtual Environment (DVE) has several participants interacting simultaneously with the virtual world. A concrete example (described later in the paper) is a surgical training system where participants in- clude one trainer (the surgeon) and several trainees (the ob- servers). The surgeon conducts the operation through a “vir- tual hand controller” and provides explanations through a microphone. All observers can visualise the model patient from various angles through a helmet mounted display as well as receive audio information from the surgeon through 0-7695-0634-8/00 $10.00 ã 2000 IEEE