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.