This chapter will help you understand the concept of building blocks within the TOGAF standard.
Key Points Explained
This chapter will help you to answer the following questions:
• What is a building block?
• What is the difference between an Architecture Building Block and a Solution Building Block?
• How are building blocks used within the ADM cycle?
• What are the characteristics of an architecture pattern?
(Syllabus Reference: Unit 10, Learning Outcome 1: You should be able to define what a building block is, and explain what makes a good building block.)
A building block is a package of functionality defined to meet business needs across an organization. A building block has published interfaces to access functionality. A building block may interoperate with other, possibly interdependent building blocks.
A good building block has the following characteristics:
• It considers implementation and usage, and evolves to exploit technology and standards.
• It may be assembled from other building blocks.
• It may be a subassembly of other building blocks.
• Ideally, a building block is re-usable and replaceable, and well specified with stable interfaces.
• Its specification should be loosely coupled to its implementation, so that it can be realized in several ways without impacting the building block specification.
The way in which functionality, products, and custom developments are assembled into building blocks varies widely between individual architectures. Every organization must decide for itself what arrangement of building blocks works best for it. A good choice of building blocks can lead to improvements in legacy system integration, interoperability, and flexibility in the creation of new systems and applications.
An architecture is a composition of:
• A set of building blocks depicted in an architectural model
• A specification of how those building blocks are connected to meet the overall requirements of an information system
The various building blocks in an architecture specify the services required in an enterprise-specific system.
The following general principles should apply:
• An architecture need only contain building blocks to implement those services it requires.
• Building blocks may implement one, more than one, or only part of a service identified in the architecture.
• Building blocks should conform to standards.
(Syllabus Reference: Unit 10, Learning Outcome 2: You should be able to explain the distinction between Architecture Building Blocks and Solution Building Blocks.)
Systems are built from collections of buildings blocks. They can be defined at many levels of detail:
• Groupings at a functional level, such as a customer database, are known as Architecture Building Blocks.
• Real products or specific custom developments are known as Solutions Building Blocks.
Architecture Building Blocks (ABBs) are architecture documentation and models from the enterprise’s Architecture Repository classified according to the Architecture Continuum. They are defined or selected during application of the ADM – mainly in Phases A, B, C, and D.
The characteristics of ABBs are as follows:
• They define what functionality will be implemented.
• They capture architecture requirements; e.g., Business, Data, Application, and Technology requirements.
• They direct and guide the development of Solution Building Blocks.
ABB specifications should contain as a minimum:
• Fundamental functionality and attributes: semantic, unambiguous, including security capability and manageability
• Interfaces: chosen set, supplied
• Interoperability and relationship to other building blocks
• Dependent building blocks with required functionality and named user interfaces
• Map to business/organizational entities and policies
Each ABB should include a statement of any architecture documentation and models from the enterprise’s Architecture Repository that can be re-used in the architecture development. The specification of building blocks using the ADM is an evolutionary and iterative process.
Solution Building Blocks (SBBs) relate to the Solutions Continuum. They are implementations of the architectures identified in the enterprise’s Architecture Continuum and may be either procured or developed. SBBs appear in Phase E of the ADM where product-specific building blocks are considered for the first time. SBBs define what products and components will implement the functionality, thereby defining the implementation.
The characteristics of SBBs are as follows:
• They define what products and components will implement the functionality.
• They define the implementation.
• They fulfill business requirements.
• They are product or vendor-aware.
SBB specifications should contain as a minimum:
• Specific functionality and attributes
• Interfaces: the implemented set
• Required SBBs used with required functionality and names of interfaces used
• Mapping from the SBBs to the IT topology and operational policies
• Specifications of attributes shared such as security, manageability, scalability
• Performance, configurability
• Design drivers and constraints including physical architecture
• Relationships between the SBBs and ABBs
(Syllabus Reference: Unit 10, Learning Outcome 3: You should be able to briefly explain the use of building blocks in the ADM cycle.)
Systems are built up from collections of building blocks, so most building blocks have to interoperate with other building blocks. Wherever that is true, it is important that the interfaces to a building block are published and reasonably stable.
Building blocks can be defined at various levels of detail, depending on what stage of architecture development has been reached.
For instance, at an early stage, a building block can simply consist of a grouping of functionality, such as a customer database and some retrieval tools. Building blocks at this functional level of definition are described in the TOGAF standard as Architecture Building Blocks (ABBs). Later on, real products or custom developments replace these simple definitions of functionality, and the building blocks are then described as Solution Building Blocks (SBBs).
The key phases and steps of the ADM at which building blocks are evolved and specified are summarized as follows, and illustrated in Figure 26.
Figure 26: Architecture Building Blocks and their Use in the ADM Cycle
In Phase A, the earliest building block definitions start as relatively abstract entities within the Architecture Vision.
In Phases B, C, and D building blocks within the Business, Data, Application, and Technology Architectures are evolved to a common pattern of steps. Finally, in Phase E the building blocks become more implementation-specific as SBBs are identified to address gaps.
(Syllabus Reference: Unit 10, Learning Outcome 4: You should be able to describe the characteristics of an architecture pattern.)
In the TOGAF standard, patterns are considered to be a way of putting building blocks into context; for example, to describe a re-usable solution to a problem. Building blocks are what you use; patterns can tell you how you use them, when, why, and what trade-offs you have to make in doing that.
Patterns offer the promise of helping the architect to identify combinations of Architecture and/or Solution Building Blocks (ABBs/SBBs) that have been proven to deliver effective solutions in the past, and may provide the basis for effective solutions in the future.
A building block has the following characteristics:
• It is a package of functionality defined to meet the business needs across an organization
• It has published interfaces to access functionality
• It may interoperate with other, inter-dependent building blocks
A good building block:
• Considers implementation and usage and evolves to exploit technology
• May be assembled from other building blocks
• Is re-usable
Q1: Which of the following statements does not apply to a building block?
A. It is a package of functionality that meets business needs.
B. It has published interfaces to access functionality.
C. It may interoperate with other building blocks.
D. It has a specification that is tightly coupled to its implementation.
Q2: Which of the following applies to an Architecture Building Block?
A. It defines the functionality to be implemented.
B. It defines the implementation.
C. It defines what products and components will implement the functionality.
D. It is product or vendor-aware.
Q3: Which of the following ADM phases is where SBBs first appear in the ADM cycle?
A. Phase A
B. Phase B
C. Phase D
D. Phase E
E. Phase G
The following are recommended sources of further information for this chapter:
• TOGAF 9 Part IV: Architecture Content Framework, Chapter 37 (Building Blocks)