Layering Architecture Styles
A traditional way of structuring systems that may also be used to combine
architecture styles is layering. In such systems, one set of higher-level functions is
implemented using operations provided by a lower-level virtual machine. In
architectural terms, this means run-time support for the architecture style used
at the higher level is provided at a lower level, where that lower level may
use a different architecture style. What often happens in these cases is
that the lower level provides run-time support for the interface and coding
guidelines of the upper level. The figure below gives an example of this,
where a real-time executive layer developed using a concurrent state machine
style supports a higher-level real-time process layer. The different events
that drive the concurrent state machine correspond to such things as service
calls by the real-time process layer, as well as other events such as clock
and device interrupts. This approach is used in the implementation of
the
MetaH language
, for example, where all the details of configuring the underlying
concurent state machine executive are handled automatically by the tools.