Spice Architecture

Release 1.02 - ...


The Smartsite Pipeline-Integrated Command Executor (Spice) provides a generic and extensible architecture for the execution of commands. A command represents an action that needs to be executed. A command is created by a command producer and handled by a command consumer. A command consumer defines the set of commands that can be executed. Command producers and consumers both interface with a so-called command manager to create, manage and query commands.

The command manager forms the key component in the spice model. The command manager exposes an API which allows command producers and command consumers to add, remove and query commands. A command producer must be aware of the commands that are implemented by a command consumer. The producer can query the command manager for this information.

A command consumer does not need to know the command producers. It only needs to query the command manager for the current set of commands that are available for consumption.


Commands are created by a command producer, stored in the command manager and eventually consumed (or discarded) by a command consumer. This is the life cycle of a command. The duration of the cycle is determined by the context of the command manager. In an HTTP environment for example, the duration of a command life cycle can be determined by the HTTP context which spans the time that is needed to handle an HTTP Request on the server.

The Spice model is generic and has no dependencies on the Smartsite iXperion Render engine or SXML. It is possible to use Spice in a 100% ASP.NET environment.