Reference architectures are standardized architectures that provide a frame of reference for a vertical domain or sector. Reference models or architectures provide a common vocabulary, reusable designs, and industry best practices. They are not solution architectures, i.e., they are not implemented directly. Rather, they are used as a constraint for more concrete architectures. Typically, a reference architecture includes common architecture principles, patterns, building blocks, and standards.
A reference architecture in the field of software architecture provides a template solution for an architecture for a domain. It also provides a common vocabulary with which to discuss implementations, often with the aim to stress commonality. A software reference architecture is a software architecture where the structures and respective elements and relations provide templates for concrete architectures in a domain.
Many domains have defined their reference architectures. The key ones include:
- BIAN service landscape for the banking industry
- ACORD Framework for the insurance industry
- eTOM business process framework for the telecommunications industry from the TMForum
- Different government reference architectures, for example, the US FEAF or the Australian AGA
- Defense architecture frameworks such as NAF, DODAF, and MoDAF
- Reference architectures for manufacturing and supply chains such as ISA-95 and SCOR
Most of these reference architectures includes common business building blocks, business capabilities, and business processes for a specific vertical domain. They may include for example common data models, communication standards, and exchange formats, and sometimes even common software building blocks and mostly reusable assets and models.
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.
DRIVERS FOR REFERENCE ARCHITECTURE & FRAMEWORKS
- Frame of Reference: Reference architectures provide a frame of reference that help you to get an overview of a domain and they provide a starting point for your own enterprise architecture effort. They provide you with basic structures, so you do not have to reinvent the wheel. Reference architectures are most valuable for those aspects and elements of your organization on which you do not compete with others.
- Interoperability: In our increasingly networked world, organizations need to connect and cooperate with all manner of other parties. The standards and building blocks provided by reference architectures facilitate these connections. A related benefit is that using standards improves flexibility, because it is easier to exchange building blocks that connect via standardized interfaces; vice versa, it is much easier to develop standards if the building blocks themselves are standardized. LEGO is a perfect example, as my colleague Bas van Gils described in his blog recently.
- Mergers, acquisitions, and outsourcing: If two parties speak the same language, use the same standards, and recognize the same boundaries between functions, processes, and/or systems, it will be much easier to recombine their elements in new ways.
- Benchmarking: Using reference architectures facilitates benchmarking within your industry. Often, the differences between companies are not in the design of their business processes, but in their execution. Using reference designs makes it much easier to compare those execution results.
- Regulatory Compliance: Often, reference architectures are prescribed (or at least strongly recommended) by regulators. Accounting principles, practices, and processes, for example, are increasingly standardized and mandated. This leads to business reporting standards, even down to the level of exchange standards such as XBRL.
BENEFITS OF REFERENCE ARCHITECTURE
Adopting a reference architecture within an organization accelerates delivery through the reuse 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:
- Improvement of the interoperability of the software systems by establishing a standard solution and common mechanisms for information exchange.
- Reduction of the development costs of software projects through the reuse of common assets.
- Improvement of the communication inside the organization because stakeholders share the same architectural mind-set.
- Influencing the learning curve of developers due to the need of learning its features.
REFERENCE ARCHITECTURES VS. ARCHITECTURE FRAMEWORKS
Architecture frameworks – such as the Zachman Framework, the Open Group Architecture Framework (TOGAF), and the Department of Defense Architecture Framework (DoDAF) – provide approaches to describe and identify necessary inputs to a particular architecture as well as a means to describe that architecture. So, architecture frameworks give enterprise architects the tools they need to adequately describe and collect requirements, without mandating any specific architecture type. Architecture frameworks describe an example taxonomy of the kinds of architectural “views” that an architect might consider developing and provides guidelines for making the choice for developing particular views.
Reference architecture goes one step further by accelerating the process for a particular architecture type, helping to identify which architectural approaches will satisfy particular requirements, and figuring out what a minimally acceptable set of architectural artifacts are needed to meet the “best practices” requirements for a particular architecture. Reference architectures emphasize the “template” part of the definition of a reference architecture. Both frameworks and reference architectures provide best practices, and while it might be argued that reference architectures provide more of a methodology than a framework does, reference architectures are still not really characterized by their methodology component. Most can be characterized by their template component, however. From this perspective, patterns are instances of templates in this context. In fact, multiple reference architectures for the same domain are allowable and quite useful.
SUMMARY
The use of a reference architecture in an organization also requires governance: the organization should really commit to its use and this should be “enforced” in some way. Reference architectures are only of value if people are really using them as intended and follow their guidance, otherwise the whole idea of reusing industry best practices breaks down.
For example, the business functions of a typical insurance company are largely similar to those of its competitors, as are many of its business processes. Competitive differences will most likely be in its products, pricing, customer segments, and customer relationships. Reusing industry best practices provided by reference architectures ensures that you are not behind the curve on these noncompetitive aspects. We also see this in the implementation of many IT systems, where vendors such as SAP provide reference processes for large parts of an organization.
Reference architecture should be community-based. Users, not vendors, should decide on best practices, and the architecture should be actively maintained by the user community.
Finally, your reference architecture of choice should provide true, actionable guidance. General architecture principles are not enough. Actual structure, for example in terms of business functions or processes, building blocks and standards, is needed to provide you with a useful backbone for your own architecture efforts.