3.1 The Watch Architecture
The architecture for a DSM environment like our watch example
generally consists of three parts: a modeling language, a code generator and a
domain framework. To understand the role of each of these within the
architecture, we have to understand how the responsibilities are distributed
among them. The basic principle of this distribution is illustrated in
Figure 3-1.

Figure 3-1. The watch architecture
While designing and
implementing the architecture for our watch example, we wanted to solve each
problem in the right place and on the best possible level of abstraction. In
order to proceed with this approach, we first had to devise a rough division of
responsibilities. As we assumed the code generator to be the most complex part
of our environment, we decided to keep it as simple and straightforward as
possible. This decision then laid the foundation for the roles of the modeling
language and the domain framework. The modeling language was assigned to capture
the behavioral logic and static aspects of watch models and applications while
the domain framework was created to provide a well-defined set of services for
the code generator to interface to.
As we can see, the basic ideas behind the watch
architecture are reasonably simple. In the next few chapters we will provide a
more detailed description of what kind of solutions were required on each level
and how they have been implemented.