Now if we need detailing at next level i.e. objects and their relations then we should proceed for designing of the system. To understand the difference between architecture and design, consider the Architecture may define a layer where all request processor/handlers should resides. Further design can describes various kind of actual request processors based on system and business need.
Application Architecture consider following kind of aspects for an application:
- Capability - Kind of capability an application needs
- Availability - Level of system availability required during business operations
- Performance - Performance requirements
- Security - Level of security required for the application
- Scalability - How much can we scale the capabilities of system by adding more components
- Extensibility - Easiness and readiness of a system for extensions in future
- Manageability - Various required ways to manage the application
- Flexibility - Level of flexibility required in the application, flexibility is like one system can use any logging API depending upon the configuration settings.
- Maintainability - How easy is it to maintain an Application in future
- Re-usability - A good application design is where various code components can be re-used as much as possible and hence decrease no of code and maintainability
- Technology Requirements - Kind of technologies which would be useful for the application considering the operational and business requirements
Defining the Application Architecture is not a simple task, but need a good understanding of the business and operational requirements, the underlying most suited technologies stacks and the environment as well. Application Architecture is defined only after understanding the business requirements for which we are going to build the system. So Application Architect should be through with business motive and requirements in details. Only then she can be able to define a good Application Architecture, which can serve the business motive in future.
We also use other term like 'Software Architecture'. It is the structure of the system which is made of various software components, which further interacts with each other. It also describes there externally visible properties and their relations. It talks more in term of software frameworks and various design patterns. Once documented, it helps in communication between the stakeholders and helps everybody to understand the system at high level i.e. what we are going to make.
There are much more terms in Architecture field which can confuse us easily. So keep learning and let us focus on important aspects of architecture with further posts.
There are much more terms in Architecture field which can confuse us easily. So keep learning and let us focus on important aspects of architecture with further posts.
0 comments:
Post a Comment