SimSoup Layered Architecture
SimSoup Layered Architecture
|
The Kernel Layer
This includes the SimSoup Kernel, which is the heart of the
model. It is responsible for representing Molecules and the
Interactions that take place between them. The Kernel is also
responsible for ensuring that the simulation is setup and run
according to the user's requirements (as specified in 'Action
Requests').
The Kernel Layer includes two areas of
functionality outside the Kernel: utilities (eg for random number
sequence handling), and a subsystem for storing and retrieving
simulation statistics.
The User Interface Management Layer
This manages the processing of user inputs, and the display of data
to be presented on the user interface. It does not control
the user interface directly; instead it manages an
abstraction of the user interface. This ensures that it is
isolated from the details of the graphics toolset used for
presentation.
The User Interface Presentation Layer
This is responsible for presentation of the user interface,
including screen display and handling of user inputs; it uses the
GTK+ graphics toolset. This usage is shown on the diagram by
extending the User Interface Presentation Layer into the GTK+
box. GTK+ also plays a role in the overall operation of the system,
by running the simulation when there is no user interface activity
required.
Communication Between Layers
There are three categories of 'downward' communication:-
- Run Requests: Requests to the Kernel Layer to
run the simulation.
- Kernel Control Requests: User inputs that
will cause the state of the Kernel to change (eg enable / disable
simulation processing)
- Kernel Visibility Requests: Requests for
visibility of Kernel information (eg for the Reactants associated
with a particular Interaction Type)
There are two kinds of 'upward' communication:-
- Simulation Scheduler Registration: The Kernel registers an address for GTK to call when issuing a Run Request
- Simulation Display Requests: Requests for the
display of Kernel Layer information on the user interface (eg
display of time-series statistics showing the numbers of various
species of Molecule).