Home Contact News

Applications Products Services Support About EuroSim



EuroSim Client/Server Architecture
The execution of a model occurs in a client/server environment; the main client is the Test Conductor user interface, which reflects the state of the simulation and allows requests to be made wrt simulation execution which are then sent via events to the simulation server; other clients include data monitors which are continually sent the updated values of the specified API data variables.

The server has two parts: a synchronous part which is responsible for the hard real-time behaviour of the simulation, and an asynchronous part which decouples activities such as model data input and output (stimuli and recording), checking for manual triggering of actions, checking simulation state change requests, etc.


Distributed Architecture
A distinction is made between the clients of the simulator (eg. processes representing the Test Conductor and Observer, processes such as the on-line monitors) and the actual simulation processes. This means that multiple clients can easily be interfaced to the server process, and also that use can be made of local terminals for the front-end whilst using more powerful machines to execute the actual simulation.

The interface between client and server is implemented through various virtual channels which send and receive events. On start-up, clients connect to one or more channels, according to the type of event(s) in which they have an interest. For example, there is a channel for the simulation control events (eg. freeze, run), another one for the mission events (eg, executeAction, openMission, saveMission).

The use of channels allows messages to be broadcast to all interested clients where necessary, eg. a closeMission event can be communicated to all relevant parties via the mission channel; a stopSimulation event can be picked up by an external simulator which is connected as a client via the control channel.

The asynchronous server process is also responsible for checking the requests from the client processes. This means that if a request to pause the simulation is sent as an event from the TestController, it is checked by the server process, and if approved, then the transition to stand-by is initiated and an event is broadcast to the TestController (and other appropriate clients) to inform that the simulation is going to the stand-by state.

The 'esim-daemon' is a typical Unix daemon (ie. a Unix process permanently running in the background) which provides the mechanism for starting EuroSim simulation processes and for configuring the target hardware. A machine in a network running this daemon is called a EuroSim Simulation Server. A simulation server can launch simulators, ie. executable versions of the simulation models.

In a network, there may be several simulation servers available at any time. A simulation server can support several (non realtime) simulators at any time (see below).

The functions of the esim-daemon are fourfold:
  • it provides server status information over the network for potential EuroSim clients; this includes information on whether a host can be used as a Simulation Server, and what simulators (ie. executing simulations) are already running on that host;
  • on request, it launches a simulator for a particular EuroSim client, after checking the validity of the request; it assembles and verifies the complete request of any client that requests the launch of a simulator;
  • it configures (when on a multiprocessor machine) the processors for realtime usage; when an existing simulator has already been launched in realtime executing mode on that host, a second realtime simulator is not possible; when the simulator that claimed the realtime executing mode finishes the machine is reconfigured back to normal;
  • it routes all diagnostic information from the simulator to either "/dev/console" or a logging file.
Once the daemon is set up as part of the installation, there is little, if any, maintenance needed. Only the system administrator needs to be aware of the daemon's presence; the typical EuroSim user uses the Test Controller graphical user interface to get information on available servers and current simulations, or to initiate a simulation run.
Left arrow Up arrow