AIG Home | Divipro Home | Introduction | Architecture | Prototype | Screenshots  
Divipro Architecture

 

Divipro Architecture

Collaborative working is a broad term covering  a number of levels for computer-mediated co-operative working. In mechanical  CAD it is useful to be able to share, visualise, edit and manipulate three-dimensional  models. Distributed Virtual Reality provides a natural medium for achieving  this type of interaction. Divipro provides shared visualisation and manipulation  of complex engineering assemblies, within a consistent three-dimensional (virtual) environment.
 
Commercial CAD systems rely on a range of techniques to support distributed collaborative working amongst geographically dispersed users. The technique used depends on the type of use, or business process, which we categorise as either design, or client relations. During the design process, users typically share data between sites in one of two ways. The first is to transfer native CAD data files, and then view these locally by converting the models into VRML and displaying them over the Internet via a VRML browser. The second is to use a customised browser-like application, capable of rendering common CAD formats using OpenGL. In general, this type of model sharing is used for discussing a model, component, sub-assembly or marking up a model with dimensions, in order to consider and select appropriate parts to use. Although these CAD models are referred to as virtual because they are synthetic, they usually lack proper physical attributes, such as solidity (collision detection), flexibility, etc. These attributes are simulated in Divipro.

In client relations, it is common to use Microsoft's NetMeeting software to show other users a snapshot of a session manager's screen. This means that all users share a common view, and their is no proper sharing of the 3D CAD data.

In contrast, Divipro provides a much more flexible assembly environment. Each user their own independent views of the environment which they are free to explore. If necessary, all users can share the same view, but by permitting different views they are free to observe and discuss the model as they wish. Broadly speaking, we achieve this by adopting a client-server architecture, in which the state of the environment is maintained in the server. Viewers connect to the server and receive the state of the environment upon connection to the server. The server then updates viewers as necessary. A high level view of this architecture is shown in the (simplified) diagram below.

Architecture image

The server manages communication between multiple users and enforces policies that enable them to share a single view of the world. An example would be the allocation of a lock on a component to guarantee that only one user could manipulate that component at the same time. Constraints are computed by a special server like client called a constraint service which contains the flexible object simulator, the geometric modeller (DATum) and a constraint engine. It is this which validates requests from clients managed by the server. The architecture of the constraint service is shown in the diagram below.

Constraint service architecture

The individual users' clients (viewers),  on the other hand, are relatively lightweight processes which contain our own graphics kernel GNU Maverik and Stephane Popinet's tessellation library ( GNU triangulated surface library). These render the models loaded into the server via a boundary representation. The viewer architecture is shown below.

Divipro viewer architecture image

So far we have described an overview of the Divipro architecture, some of the more interesting aspects of the Divipro  system architecture cannot be conveyed in such an overview. In order to highlight these, it is necessary to briefly describe the prototype with an emphasis on how the Deva distribution system was used in order to minimise delay for users interacting with complex models.

Previous | Next


Divipro Project | Divipro Consortium | Email: divipro@cs.man.ac.uk