Every software-intensive system has an architecture: some architectures are intentional while others are accidental and some are explicit while others are locked up in the tribal memory of its developers. I've long contended that the soul of every architecture is manifest in the mechanisms that shape a given system. By mechanism I mean, in essence, the design patterns that individually provide some essential structure and behavior and that collectively offer a language of patterns that are uniquely suited to the given domain.
For example, I've been studying the architecture of various operating system kernels lately and it's clear that every one of them covers the same ground although each in a unique way. For the most part, if you understand a given operating sytem's approach to device drivers, the file system, thread and process management, networking, and primitive services, you will have understood the essence of that system's architecture. It should be pointed out, however, that which mechanisms apply is a statement of architecture in itself: other systems in other domains will have a very different set of mechanisms.
gbooch 120000P81R 840 Visits