It is a good idea to set out some high-level guiding principles for the architecture's design. The high-level architecture outlines the layers and component groups and how they shape the overall component model. As I did for the application, I've listed three primary guiding principles for the case study's conceptual architecture:
Multi-tier model — The application should employ a multi-tier model. In principle, the user interface, business processing, and data access should be separated. This is a pretty standard model for an application's architecture. The model also fits very well with the production environment shown in Chapter 5.
Incorporate web services — A lot of companies are moving to service-orientated architectures (SOA), so I thought it would be a good idea to include some web services in the overall architecture. It also fits rather well with the production architecture and allows future scaling opportunities for the application components. The application components could also be exposed to other applications as services.
Modular approach — The architecture should be modular to promote reuse, ease of maintenance, and logically separate discrete processing and functionality. This guiding principle is in keeping with all the messages in this book. It also helps to promote the patterns and practices discussed in the later chapters.
It is not an exhaustive list of guiding principles, but it captures the key elements that are right at the ...