The purpose of the Slicer3 Execution Model is to facilitate a "run-everywhere" philosophy for algorithm writers. NAMIC has adopted a standard for algorithm "self-description" that is followed when command line executables are written. Slicer, the grid, clusters, etc... will be able to use the executables directly in their environment.
The Slicer3 execution model contains three components:
- Module Description Parser - This is a C++ library that parses an xml description of a module and creates C++ classes that can be accessed in applications.
- Command Line Processing - This is a C++ program that uses the Module Description Parser to generate C++ code that parses the command line arguments specified in the xml module description. This code can be included in the command line module to access the command line arguments at run-time.
- Slicer3 GUI - This GUI and related MRML and Logic classes uses the Module Description Parser to create GUI, MRML and Logic classes for each module "discovered" at run-time.
Currently, an initial implementation of all three components is complete.
Here is a discussion page on how to deal with reference systems in the Execution Model.
Look at the Execution Model Documentation for details.
The initial implementation of the Slicer3 Execution Model followed a Wiki discusion of requirements and implementation options. Refer to the Execution Model Discussion for background and motivation.