You are here

Modular architecture

The MedSquare project is composed of two basic parts: the API and a collection of modules that interact through it. The core library is basically just a thin layer designed to define an unified interaction model rather than really implement algorithms or user interfaces.

Modules, in turn, can be classified in two basic categories: UIModules and ImplementationModules. There is no formal distinction between the two, but a module usually serves either one purpose or the other. A typical user interface module is either built upon base modules or a proper part of the base platform, and is generally designed to be used by other modules. A typical implementation module has minimum user interface code and is designed for optimally performing a specific task.

There is also a third category: MetaModules. This kind of module is designed to group related modules in a single package and provide an additional layer of abstraction. Typical metamodules can be run independently from other non-base modules, sometimes without MedSquare altogether.