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 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 along with this approach, we had to device a rough division of
responsibilities first. 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.