1. Introduction

This document describes a collaboration platform which will be used as a communication backbone in the Collaborative Interaction & Visualization project pending in NPAC. The main goal of the whole project is to develop a prototype of the Command & Control Center. Such system is a complicated piece of software which must satisfy multiple requirements and implement various independent sets of functions. In general elements of the whole system may run on different platforms. In addition accessibility of particular system elements should depend on the privileges granted to a user. Various functions may be efficiently implemented using different mechanisms and environments.

These basic requirements may be efficiently satisfied in a system which is composed of a set of separate applications. Each application will serve a particular set of functions. On one hand these applications will be independent in the sense that they provide separate sets of functions and may be implemented on different platforms. On the other hand, they are parts of the one complicated system and have to be unified and interact in a way giving the user sense of using one big application.

One of the main assumptions while developing the system is that applications may be written in any programming language and may run on any hardware or software platform. Keeping this in mind we use only the most generic system communication mechanisms.

Other important requirement is that the set of applications constituting the whole system is not complete and may change in the future. As the result, the structure of the communication system does not depend on the applications connected to it. The system implements a generic set of communication mechanisms. These mechanism allows applications to communicate one to each other. Application independency guarantees that the communication system will be able to serve any applications that will be developed in the future and added to the system.

One of the important functions of the system apart from the communication itself is constant monitoring of the system events. All actions of all simulation participants will be recorded in a database. This database may be analyzed after the action. The "backward flow of control" will enable simulating all events by driving the system from the database. This will enable using the system as a simulation or training environment to put, for example, the crew in a particular point in time in a particular scenario and begin simulation.

The communication platform is one of the most important elements in such a system. It must provide means of efficient data sharing, interaction among applications, and constant monitoring and recording of system events in a database. Various kinds of communication are considered. These include: