An applications architecture describes the behavior of applications used in a business, focused on how they interact with each other and with users. It is focused on the data consumed and produced by applications rather than their internal structure. In application portfolio management, the applications are usually mapped to business functions and to application.
The applications architecture is specified on the basis of business and functional requirements. This involves defining the interaction between application packages, databases, and middleware systems in terms of functional coverage. This helps identify any integration problems or gaps in functional coverage. A migration plan can then be drawn up for systems which are at the end of the software life cycle or which have inherent technological risks.
Applications architecture means managing how multiple applications are poised to work together. It is different from software architecture, which deals with technical designs of how a system is built.
One not only needs to understand and manage the dynamics of the functionalities the composite architecture is implementing but also help formulate the deployment strategy and keep an eye out for technological risks that could jeopardize the growth and/or operations of the organization.
Applications architecture strategy involves ensuring the applications and the integrations align with the growth strategy of the organization. If an organization is a manufacturing organization with fast growth plans through acquisitions, the applications architecture should be nimble enough to encompass inherited legacy systems as well as other large competing systems.
Applications can be classified in various types depending on the applications architecture pattern they follow.
A "pattern" has been defined as: "an idea that has been useful in one practical context and will probably be useful in others”.
To create patterns, one needs building blocks. Building blocks are components of software, mostly reusable, which can be utilized to create certain functions. Patterns are a way of putting building blocks into context and describe how to use the building blocks to address one or multiple architectural concerns.
An application is a compilation of various functionalities, all typically following the same pattern. This pattern defines the application's pattern.
Applications typically follow one of the following industry-standard applications architecture patterns:
- Client-proxy server: Acts as a concentrate for many low-speed links to access a server.
- Customer support: Supports complex customer contact across multiple organizations.
- Reactor: Decouples an event from its processing.
- Replicated servers: Replicates servers to reduce burden on central server.
- Layered architecture: A decomposition of services such that most interactions occur only between neighboring layers.
- Pipe-and-filter architecture: Transforms information in a series of incremental steps or processes.
- Subsystem interface: Manages the dependencies between cohesive groups of functions (subsystems).
- Self-service: Users accessing transactions on a 24/7 basis (a.k.a. user-to-business) .
- Collaboration: Users working with one another to share data and information (a.k.a. user-to-user)
- Information aggregation: Data from multiple sources aggregated and presented across multiple channels (a.k.a. user-to-data)
- Event-centric: Data events (which may have initially originated from a device, application, user, data store or clock) and event detection logic which may conditionally discard the event, initiate an event-related process, alert a user or device manager, or update a data store.
- Enterprise Process-Centric: A business process manages the interactions between multiple intra-enterprise applications, services, sub-processes and users.
- Bulk processing: A business process manages the interactions between one or more bulk data sources and targets.
- Extended enterprise: A business process manages the interactions between multiple inter-enterprise applications, services, sub-processes and users.
The right applications pattern depends on the organization's industry and use of the component applications. An organization could have a mix of multiple patterns if it has grown both organically and through acquisitions.
- Application modeling
- Employs modeling as a framework for the development of new or enhanced applications, uses modeling to find problems, reduce risk, improve predictability, reduce cost and time-to-market, tests various product scenarios, incorporating clients' needs/requirements, adds test design decisions to the development process as necessary, evaluates product design problems.
- Competitive intelligence, business modeling, strategic analysis
- Understanding of the global marketplace, consumers, industries and competition, and how global business models, strategies, finances, operations and structures interrelate. Understanding of the competitive environment, including current trend in the market, industry, competition and regulatory environment, as well as understanding of how the components of business model (i.e. strategy, finances, operations) interrelate to make organization competitive in the marketplace. Understanding of organization's business processes, systems, tools, regulations and structure and how they interrelate to provide products and services that create value for customers, consumers and key stakeholders. Understanding of how the value create for customers, consumers and key stakeholders aligns with organization's vision, business, culture, value proposition, brand promise and strategic imperatives. Understanding of organization's past and present achievements and shortcomings to assess strengths, weaknesses, opportunities and risks in relation to the competitive environment.
- Understanding of IT strategy, development lifecycle and application/infrastructure maintenance; Understanding of IT service and support processes to promote competitive advantage, create efficiencies and add value to the business.
- Technology standards
- Demonstrates a thorough understanding of the key technologies which form the infrastructure necessary to effectively support existing and future business requirements, ensures that all hardware and software comply with baseline requirements and standards before being integrated into the business environment, understands and is able to develop technical standards and procedures to facilitate the use of new technologies, develops useful guidelines for using and applying new technologies.
An applications architect is a master of everything application-specific in an organization. An applications architect provides strategic guidelines to the applications maintenance teams by understanding all the applications from the following perspectives:
- Interoperability capability
- Performance and scalability
- Reliability and availability
- Application lifecycle stage
- Technological risks
- Number of instances
The above analysis will point out applications that need a range of changes – from change in deployment strategy for fragmented applications to a total replacement for applications at the end of their technology or functionality lifecycle.
Understand the system process flow of the primary business processes. It gives a clear picture of the functionality map and the applications footprint of various applications across the map.
Many organizations do not have documentation discipline and hence lack detailed business process flows and system process flows. One may have to start an initiative to put those in place first.
Create solution architecture guidelines
Every organization has a core set of applications that are used across multiple divisions either as a single instance or a different instance per division. Create a solution architecture template for all the core applications so that all the projects have a common starting ground for designing implementations.
The standards in architecture world are defined in TOGAF, The Open Group Architecture Framework which covers all components of EA, including application as well as technology architecture.
There are also other standards to consider, depending on the level of complexity of the organization:
- ISO/IEC 42010 Systems and software engineering — Architecture description is an international standard for architecture descriptions of systems and software.
- IEEE 1471 a superseded IEEE Standard for describing the architecture of a "software-intensive system", also known as software architecture.
- IBM Systems Application Architecture
- Enterprise architecture planning
- Steven Spewak; S. C. Hill (1992). Enterprise Architecture Planning: Developing a Blueprint for Data, Applications, and Technology. Boston, QED Pub. Group. ISBN 978-0-471-59985-2.
- "Reference Model for ISEB Certificates in Enterprise and Solution Architecture Version 3.0" (PDF). bcs. 2010.
- "Application Architecture". Gartner IT Glossary. 2012-02-09. Retrieved 2017-07-26.
- "Phase C: Information Systems Architectures - Application Architecture". TOGAF 9.1. Retrieved 2017-07-26.
- Hunter, Roy; Rasmussen, Brian. "Applications Architecture". Oracle. Retrieved 2017-07-26.