MIRA
Toolboxes and Domains


Toolboxes

Toolboxes contain algorithms and classes that are used directly by other components like domains, other toolboxes or stand alone applications and thereby allow code sharing (Tight Coupling).

A toolbox usually consists of a Package that describes its components and dependencies.

Each toolbox should rely on core packages only, to reduce dependencies between toolboxes. However, such dependencies are not prohibited, since there will always be some low-level toolboxes (e.g. image conversion) that are used by high-level toolboxes (e.g. AAM toolbox)

Domains

Domains contain one or more units that may be used by other components like the application layer to build a complex application. In contrast to toolboxes, classes and algorithms of domains are NOT accessed directly, instead the interaction is performed through the communication mechanisms of the MIRA framework (channels and RPC calls). Components of different domains may interact with each other (using the communication mechanisms) but must NOT use each other directly to avoid unwanted dependencies between domains (Loose Coupling).