This lists the impact on NFRs of the component-based solution pattern:
NFRs |
Description |
Availability |
The application of this pattern does not in itself improve the availability of the system. However, application server architecture lays the foundation for a highly-available system. |
Performance |
Performance is likely to be significantly improved. Whereas we had all the semi-autonomous applications collaborating (using some form of inter-process or inter-server communication) to render pages or perform complex functions, now we have a single application, although parts of this may still require inter-process communication, depending on implementation choices. |
Scalability |
The application of this pattern does not in itself improve the scalability of the system. However, application server architecture lays the foundation for a highly scalable system. |
Security |
Security is marginally improved due to having only one application and one database to worry about securing. |
Manageability |
Manageability is significantly improved: as earlier we had many applications to manage, now we only have one. Even when we add more complexity to the architecture to achieve scalability, and so on. Application server architecture lays the foundation for a more manageable system. |
Maintainability |
Because all the logically separate software 'modules' are part of the same application, we don't have to worry about complex communication mechanisms. However, we have not lost the benefits of having well-defined sets of functionality which can, potentially, help to isolate bugs. On the whole, maintainability is improved. |
Flexibility |
This type of system architecture is flexible as we have a partitioning, which gives us flexibility. |
Portability |
Not affected. |
Cost |
Application server architecture provides a foundation where manageability, performance, availability, and scalability can be addressed more easily (and therefore more cheaply). Running the application in the .NET framework or on a JEE application server can potentially reduce costs; the cost of purchasing the infrastructure can easily be offset by the cost of building all the functionality provided from scratch. |