Architectural generic axes
When designing and thinking about software architecture there are four dimensions along which a decision must be made. These are called the architecture generic definition axes and are:
- Tiers: the decision to be made here concerns the number of types of runtime components. For example in a 3 tiers system, there are clients, business servers and data servers. In 2 tiers systems, the business server will disappear and the business logic will be embedded in either the client or the data server.
- Layers: layers separate the system along a technological axis in that each layer contains a specific set of technical responsibilities. The technical scope of a layer must be adjusted to optimise performance, maintainability, development costs, ...
- Levels: organisational levels refer to the physical organisation the system must provide to the stakeholders. A typical example is a two level organisation, with centralised management on the top level and end users on the bottom level.
- Components: components rap coherent sets of technical or functional capabilities. Decisions must be made on how these capabilities will be grouped together to optimise the system.
These generic axes aren't totally independent, as some decisions made on one axe can constrain the possibilities on the others.