Reference architectures are a way of discussing domain-specific architectures and comparing different systems in a domain. They do not represent real systems as they incorporate a range of features that might be found in systems of that type but which are idealised to make them easier to describe and understand. A reference model provides a vocabulary for comparison. It acts as a base, against which systems can be evaluated.
One of the best known reference architectures is the OSI model for distributed systems. The OSI model (Figure 1) is a seven-layer model for open systems interconnection. The exact functions of the layers are not important here. In essence, the lower layers are concerned with physical interconnection, the middle layers with data transfer and the upper layers with the transfer of semantically meaningful application information such as standardised documents.
Figure 1. The OSI reference model architecture
The designers of the OSI model had the very practical objective of defining an implementation standard so that conformant systems could communicate with each other. Each layer should only depend on the layer beneath it. As technology developed, a layer could be transparently reimplemented without affecting the systems using other layers.
In practice, however, the performance problems of the layered approach to architectural modelling have compromised this objective. Because of the vast differences between networks, simple interconnection may be impossible. Although the functional characteristics of each layer are well defined, the non-functional characteristics are not defined. System developers have to implement their own higher-level facilities and skip layers in the model. Alternatively, they have to design non-standard features to improve system performance.
CASE environments reference architecture