A reference architecture in the field of
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 ...
or
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 ...
provides a template solution for an architecture for a particular domain. It also provides a common vocabulary with which to discuss
implementation
Implementation is the realization of an application, execution of a plan, idea, scientific modelling, model, design, specification, Standardization, standard, algorithm, policy, or the Management, administration or management of a process or Goal ...
s, often with the aim to stress commonality. A software reference architecture is a
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 ...
[
] where the structures and respective elements and relations provide templates for concrete architectures in a particular domain or in a family of
software system
A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
s.
An implementation of a reference architecture is called a
framework or an
application platform
A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of Abstraction (software engineering), abstr ...
.
A reference architecture often consists of a list of
functions and some indication of their
interfaces
Interface or interfacing may refer to:
Academic journals
* ''Interface'' (journal), by the Electrochemical Society
* '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics''
* '' Inter ...
(or
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s) and interactions with each other and with functions located outside of the scope of the reference architecture.
Reference architectures can be defined at different levels of abstraction. A highly abstract one might show different pieces of equipment on a
communications network, each providing different functions. A lower level one might demonstrate the interactions of
procedures (or
methods) within a computer program defined to perform a very specific task.
A reference architecture provides a template, often based on the generalization of a set of solutions. These solutions may have been generalized and structured for the depiction of one or more architecture structures based on the harvesting of a set of patterns that have been observed in a number of successful implementations. Further it shows how to compose these parts together into a solution. Reference Architectures will be instantiated for a particular domain or for specific projects.
Adopting a reference architecture within an organization accelerates delivery through the re-use of an effective solution and provides a basis for governance to ensure the consistency and applicability of technology use within an organization. In the field of software architecture, many empirical studies have shown the following common benefits and drawbacks from adopting a software reference architecture within organizations: (a) improvement of the
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 ...
of the software systems by establishing a standard solution and common mechanisms for
information exchange
Information exchange or information sharing means that people or other entities pass information from one to another. This could be done electronically or through certain systems. These are terms that can either refer to bidirectional '' inform ...
; (b) reduction of the development costs of
software projects through the reuse of common assets; (c) improvement of the communication inside the organization because stakeholders share the same architectural mindset; and, (d) influencing the
learning curve
A learning curve is a graphical representation of the relationship between how proficient people are at a task and the amount of experience they have. Proficiency (measured on the vertical axis) usually increases with increased experience (the ...
of
developers due to the need of learning its features.
Examples
* The
Java Platform, Enterprise Edition
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
(
Java EE
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
) architecture is a layered reference architecture which provides a template solution for many enterprise systems developed in Java. Examples of implementing frameworks include
Glassfish
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The support ...
and
Wildfly.
* The IBM Insurance Application Architecture is a reference architecture for the Insurance domain.
*
AUTOSAR is a
component-based reference architecture for safety-critical and automotive softwar
Automative Open System Architecture
*
Eclipse Microprofile as a reference architecture for Java-based microservices system
Eclipse Microprofile
*
Eulynx is a reference architecture for railway signalling systems.
* The Health Enterprise Reference Architecture (HERA), currently under development by
The Open Group
The Open Group is a global consortium that seeks to "enable the achievement of business objectives" by developing " open, vendor-neutral technology standards and certifications." It has 900+ member organizations and provides a number of services ...
, is a reference architecture for the health care domain
Healthcare Enterprise Reference Architecture (HERA)
/ref>
See also
* Business reference model
Business reference model (BRM) is a reference model, concentrating on the functional and organizational aspects of the core business of an Business, enterprise, Tertiary sector of the economy, service organization or government agency.
In enterpri ...
* Enterprise architecture framework
An enterprise architecture framework (EA framework) defines how to create and use an enterprise architecture. An architecture framework provides principles and practices for creating and using the architecture description of a system. It structu ...
* Generalised Enterprise Reference Architecture and Methodology (GERAM)
* Reference model A reference model—in systems engineering, systems, enterprise engineering, enterprise, and software engineering—is an abstract framework or domain-specific ontology (information science), ontology consisting of an interlinked set of clearly defi ...
References
Software architecture
Enterprise architecture
{{soft-eng-stub