Design Fundamentals

For more details of the topics covered in this guide, see Contents of the Guide.

This section of the guide contains a series of topics that will help you to understand the fundamentals of layered architecture, and provide practical guidance for some of the typical layers used by most applications, such as presentation, business, data, and service layers. This section contains the following chapters:

Typically, each layer will contain of number of components. As you design the components in each layer, you must consider a range of factors that will affect the overall success of your design. This section of the guide contains guidance to help you design your components to avoid the commonly found issues, and to follow best practice. For more details, see the following chapters:

The overall quality and the subsequent success and of your application design depends on how well it addresses a range of quality attributes such as security, reusability, performance, and maintainability. In addition, your application is likely to contain crosscutting functionality such as exception handling, caching, and logging. This section contains guidance on how you should address quality attributes and design for crosscutting concerns in your applications. See the following chapters for more information:

When designing an application, particularly a distributed application, designing an appropriate communication infrastructure is a key to the success of the design. This section of the guide will also help you to understand communication requirements and implement designs that provide the appropriate levels of decoupling, security, and performance. For more information, see Chapter 18 "Communication and Messaging".

Finally, you must consider how you will deploy your application, and take into account any constraints implied by the physical infrastructure, networking, and other facilities that will support the application at runtime. The final chapter in this section discusses physical deployment scenarios, and describes some of the issues you will encounter, such as security, when employing a multi-tiered deployment model. For more information, see Chapter 19 "Physical Tiers and Deployment".