Application Architecture Overview
“Application architecture combines a core set of solution architecture design artifacts with architecture and design best practices to effectively guide application construction, deployment, ongoing performance and continued evolution of the application portfolio. A disciplined approach to application architecture enables real business value, enhances the organization’s leverage, facilitates user adoption, drives down the total cost of application ownership and minimizes the risk of failure.”
Application Architecture must be focused on four key goals, every application architecture should contribute to these goals. The goals are for enterprise level. Although the Solution Architecture includes Application Architecture of more than one application, the focus at each granular application provides the contribution for greater Enterprise level.
- Application Portfolio Management: Continuous evolution of applications to drive and enable greater business value
- Technology and Solution Architecture: Cost-effective delivery of applications, including the optimal selection of implementation technologies, practices, and skills for application delivery success.
- Design Processes and Delivery Improvement: Increased productivity through a more rapid delivery of high-quality applications and SOA services, including documenting existing architectural approaches, and applying them to new challenges.
- Application Integration: Effective integration of each application solution into the broader business and IT ecosystem within which it will operate.
I also believe application architecture goes beyond just Application Integration, it has to make decisions on Application Security, Usability etc. All in all, the decisions are application architecture level result into non-functional aspect of the application as well.
Unready for the Future: Discarding Outdated Application Architecture Assumptions2
Applications must interact with technologies and infrastructure underneath. The deployment models are changing; the cloud patterns are created to abstract the platform and infrastructure from application logic. The SaaS or PaaS models are allowing applications to be written without the general understanding of infrastructure. The assumptions for applications several years ago, are no more valid. The applications must be architected with consideration for Dynamic, Movable, Flexible and Distributable. There characteristics are not just non-functional nature of an application but are the core of application development now.
There are tools available to abstract those assumptions as well like Spring Boot or DropWizard. These tools are abstracting environment, I/O, cloud services awareness, platform dependencies.
Microservice Applications 3
I have deep respect for Martin Fowler, also had an opportunity to work with him for some time. He has nack for explaining software architecture concepts as they are. He says,
The term “Microservice Architecture” has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.
In general, microservices can also be seen as micro-applications or micro application components which interact with each other via lighweight protocol. The seperation of application functionality into smaller pieces that own their own process and data. Lightweight approach allows all modern application non-functional needs like no-locality, movability etc.
Microservice architecture also promotes design for failure, you build it – you run it kind of principles which has helped cloud adoption tremendously. The microsservices will drive the organizations out of monolithical application development, but they also will contribute to cultural change which is very much due in application architecture world. As we adopt the architecture further, the application architecture won’t be the same as we know today.
- Blechar, M, Robertson, B, 2010, Gartner G00208946, Application Architecture Overview, Part 1: General Context and Scope
- Sholler, D, Gartner, G00237600
- Fowler, M, Micrososervices, available at https://martinfowler.com/articles/microservices.html