In
information systems
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, store, and distribute information. From a sociotechnical perspective, information systems comprise four components: task, people, structu ...
, applications architecture or application architecture is one of several
architecture domains that form the pillars of an
enterprise architecture
Enterprise architecture (EA) is a business function concerned with the structures and behaviours of a business, especially business roles and processes that create and use business data. The international definition according to the Federation of ...
(EA).
Scope
An applications architecture describes the behavior of
applications
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
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.
By example, in
application portfolio management, applications are mapped to
business functions and processes as well as costs,
functional quality and technical quality in order to
assess the value provided.
The applications architecture is specified on the basis of
business
Business is the practice of making one's living or making money by producing or Trade, buying and selling Product (business), products (such as goods and Service (economics), services). It is also "any activity or enterprise entered into for ...
and
functional requirement
In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a summary (or specification or statement) of behavior between inputs and outputs.
Functiona ...
s. This involves defining the interaction between
application packages,
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
s, 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'', a potential to disrupt the business as a consequence of a technological failure.
Applications architecture tries to ensure the suite of applications being used by an organization to create the composite architecture is
scalable,
reliable,
available and manageable.
Applications architecture defines how multiple applications are poised to work together. It is different from
software architecture
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
, 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.
Strategy
Applications architecture strategy involves ensuring the applications and the integration 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
Legacy or Legacies may refer to:
Arts and entertainment
Comics
* "Batman: Legacy", a 1996 Batman storyline
* ''DC Universe: Legacies'', a comic book series from DC Comics
* ''Legacy'', a 1999 quarterly series from Antarctic Press
* ''Legacy'', ...
as well as other large competing systems.
Patterns
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
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
, 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.
Application patterns can describe structural (deployment/distribution-related) or behavioural (process flow or interaction/integration-related) characteristics and an application architecture may leverage one or a mix of patterns.
The idea of patterns has been around almost since the beginning of
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
, but it was most famously popularized by the "
Gang of Four" (GoF) though many of their patterns are "software architecture" patterns rather than "application architecture" patterns.
In addition to the GoF,
Thomas Erl is a well-known author of various types of patterns, and most of the large software tools vendors, such as
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
, have published extensive pattern libraries.
Despite the plethora of patterns that have been published, there are relatively few patterns that can be thought of as "industry standard". Some of the best-known of these include:
* single-tier/
thick client/
desktop application (structural pattern): an application that exists only on a single computer, typically a desktop. One can, of course have the same desktop application on many computers, but they do not interact with one another (with rare exceptions).
*
client-server/2-tier (structural pattern): an application that consists of a
front-end (user-facing) layer running as a rich client that communicates to a
back-end (server) which provides business logic,
workflow
Workflow is a generic term for orchestrated and repeatable patterns of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a seque ...
, integration and
data services. In contrast to desktop applications (which are single-user), client-server applications are almost always multi-user applications.
* n-tier (structural pattern): an extension of the client-server pattern, where the server functions are split into multiple layers, which are distributed onto different computers across a
local-area network (LAN).
* distributed (
structural pattern): an extension of the n-tier pattern where the server functions are distributed across a
wide-area network (WAN) or cloud. This pattern also include some
behavioural pattern attributes because the server functions must be designed to be more autonomous and function in an
asynchronous
Asynchrony is any dynamic far from synchronization. If and as parts of an asynchronous system become more synchronized, those parts or even the whole system can be said to be in sync.
Asynchrony or asynchronous may refer to:
Electronics and com ...
dialog with the other functions in order to deal with potentially-significant
latency that can occur in WAN and
cloud
In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
deployment scenarios.
* horizontal scalability (structural pattern): a pattern for running multiple copies of server functions on multiple computers in such a way that increasing processing load can be spread across increasing numbers of
instances of the functions rather than having to re-deploy the functions on larger, more powerful computers.
Cloud-native applications are fundamentally-based on horizontal scalability.
* event-driven architecture (behavioural pattern): Data events (which may have initially originated from a
device, application, user,
data store
A data store is a repository for persistently storing and managing collections of data which include not just repositories like databases, but also simpler store types such as simple files, emails, etc.
A ''database'' is a collection of data that ...
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. The event-driven pattern is fundamental to the asynchronous processing required by the
distributed architecture pattern.
* ETL (behavioural pattern): An application process pattern for extracting data from an originating source, transforming that data according to some business rules, and then loading that data into a destination. Variations on the ETL pattern include ELT and ETLT.
* Request-Reply (behavioural pattern): An application integration pattern for exchanging data where the application requests data from another application and waits for a reply containing the requested data. This is the most prominent example of a synchronous pattern, in contrast to the asynchronous processing referred to in previous pattern descriptions.
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 architect
TOGAF describes both the skills and the role expectations of an Application architect. These skills include an understanding of application modularization/distribution, integration, high availability, and scalability patterns, technology and trends. Increasingly, an understanding of application containers, serverless computing, storage, data and analytics, and other cloud-related technology and services are required application architect skills. While a software background is a great foundation for an application architect, programming and software design are not skills required of an application architect (these are actually skills for a Software Architect, who is a leader on the
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
team).
Knowledge domains
;Application modeling: Employs modeling as a framework for the deployment and integration 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' nonfunctional needs/requirements, adds test design decisions to the development process as necessary, evaluates product design problems.
;
Competitive intelligence
Competitive intelligence (CI) is the process and forward-looking practices used in producing knowledge about the competitive environment to improve organizational performance. Competitive intelligence involves systematically collecting and anal ...
,
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 process
A business process, business method, or business function is a collection of related, structured activities or tasks performed by people or equipment in which a specific sequence produces a service or product (that serves a particular business g ...
es, 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.
;Technology: 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.
Tasks
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
Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
capability
* Performance and
scalability
Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system.
In an economic context, a scalable business model implies that ...
*
Reliability and
availability
In reliability engineering, the term availability has the following meanings:
* The degree to which a system, subsystem or equipment is in a specified operable and committable state at the start of a mission, when the mission is called for at ...
*
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.
Functionality footprint
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 describes the four components of EA as BDAT (
Business architecture,
Data architecture
Data architecture consist of models, policies, rules, and standards that govern which data is collected and how it is stored, arranged, integrated, and put to use in data systems and in organizations. Data is usually one of several architecture d ...
, Application Architecture and
Technical architecture,
There are also other standards to consider, depending on the level of complexity of the organization:
* The
Zachman Framework for EA
*
Federal enterprise architecture (FEA)
* Gartner
See also
*
ISO/IEC 42010 Systems and software engineering — Architecture description is an international standard for architecture descriptions of systems and software.
*
IEEE 1471
IEEE 1471 is a superseded IEEE standard for describing the architecture of a "software-intensive system", also known as software architecture.
In 2011 it was superseded by ISO/IEC/IEEE 42010, ''Systems and software engineering — Architecture d ...
a superseded IEEE Standard for describing the architecture of a "software-intensive system", also known as
software architecture
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
.
*
IBM Systems Application Architecture
*
Enterprise architecture planning
*
High-availability application architecture
References
*
*{{cite web , last1=Hunter , first1=Roy , last2=Rasmussen , first2=Brian , title=Applications Architecture , website=Oracle , url=http://www.oracle.com/technetwork/articles/entarch/oeea-applications-architecture-1555893.html , access-date=2017-07-26
Enterprise architecture