介绍企业架构的历史已经好多次了,在《企业架构设计的本质》中介绍过三个重要的框架:Zechman,DoDAF 和 TOGAF。除此以外市面上还有各种各样的书讲架构设计方法和实践,所以我再想是不是可以为架构设计圈做一点有意义的小事,就是把这些架构框架,架构书籍,甚至架构工具都解读一遍。现在使用最多,影响力最大的就是 TOGAF 了,所以我打算就从这个有点重的块头开始,和庖丁解牛一样一点点拆解,所以这个小事有个标签:和坚解构。
在《解构 TOGAF-4-如何建设架构能力?》中提到了预备阶段的架构交付物都有什么,交付物是架构工作的产出之一,今天我们来聊聊企业架构工作的三类重要产出:制品 Artifact,交付物 Deliverable,架构块 Building Block。很多学习 TOGAF 的人都会对三个概念感到困惑,所以讲讲如何清晰地区分清楚这三类产出物,以及 TOGAF 为什么要区分它们。
1 制品是企业架构开发时的原子工作产品
制品 Artifact:在遵循 ADM 进行架构开发时,TOGAF 定义的一套原子工作产品。这些原子工作产品是在不同上下文里的某个独立模型,有些模型可能会在不同的上下文中被重复使用。
制品有三种类别:
- 目录集 Catalog:通过列表的方式存放一组构建块
- 矩阵 Matrix:通过矩阵的方式表明构建块之间的关系
- 图 Diagram:通过方便 Stakeholder 有效理解的方式展现构建块之间的关系
上面这些定义都很抽象对不,下面举几个具体的例子就容易理解了。
1.1 目录集示例
在预备阶段有一个制品是架构原则目录,主要存放一组架构原则:
- 原则 1:最大化企业利益,做出信息管理决策,必须要保障企业整体利益最大化。
- 原则 2:业务连续性,不管系统是否中断,企业均能保持运行。
- 原则 3:面向服务,该架构基于服务设计,基于服务的编排支持真实的业务活动。
从架构原则目录例子可以看出,目录集用来存放一组同类型且无关联的构建块。
1.2 矩阵示例
在架构愿景阶段有一个制品是Stakeholder 映射矩阵,主要通过表格方式描述每一类 Stakeholder的关键关注点,他们的态度类型,以及他们关注的制品有哪些:
从Stakeholder 映射矩阵 例子可以看出,矩阵可以表达更复杂的构建块关系信息,比如说首席 XX 官和项目群管理办公室都会关注业务足迹图。
1.3 图示例
在业务架构阶段有一个制品是业务足迹图,主要通过直观的图形方式描述业务目标,组织单元、业务功能以及服务之间的复杂关系。
基于业务足迹图这个例子,图这种制品是在目录和矩阵这两种模式之外,表达一些更为复杂的构建块关系。
下面这个矩阵列出了 TOGAF 推荐的 ADM 各个阶段产出的三类制品
2 交付物是架构项目的契约
交付物 Deliverable:是以契约方式详细说明的正式架构工作产品, 一般会由其利益相关者审查、同意并签署。交付物通常代表了项目的输出,一个交付物可能包含了多个制品。而作为一个契约,通常设计双方或者多方,是具有企业级别法律效益的约束。
还是用预备阶段的架构原则来举例子,在预备阶段有一个制品是架构原则目录,如果这些原则只是制品,那就还不具备约束效力。因此 TOGAF 在预备阶段里定义了架构原则是一个交付物,是具备约束效力的架构契约,实施架构时必须要遵守这些契约。
而且一个阶段输出的交付物还会做为另一个阶段的输入,所以必须要通过契约这种方式保证输入的稳定性。下面的矩阵就描述了交付物在 ADM 什么阶段产生,会用到什么阶段。
3 构建块是架构和解决方案的积木
构建块 Building block:代表一个企业能力的组件,它可以和其他构建块组合起来共同交付架构或解决方案。构建块可以基于不同的层级来制定。
有些人觉得很难区分构建块和交付物或者制品,其实从这个定义就可以很明确的知道构建块和交付物根本不是一个层面的东西。
交付物和制品架构工作中的标准化工作产出,交付物比制品更正式一些,但是两者都是架构工作的结果。TOGAF 对于制品和交付物都有明确的标准要求,但并没有规定什么才是构建块。
所以构建块不是架构工作的产出,构建块是在进行架构设计和解决方案设计时可以使用的积木,构建块具有和 TOGAF 内容元模型相对应的类型。
用一个具体的例子来解释一下,在业务架构阶段,有一个制品是业务服务目录,这里面的业务服务就是构建块了,这个构建块也会被用在制品业务服务信息图中。在业务架构阶段有一个交付物是架构定义文件,这个交付物需要包含业务架构模型,而描述业务架构模型也需要使用业务服务这个构建块。
稍微复杂一点的场景是有时候制品和交付物也可能成为某些架构工作的积木(构建块)。比如在输出交付物架构工作说明书时,这里面就需要一个构建块是架构愿景的描述,而架构愿景也是一个交付物。
4 小结
最后用一句话来总结一下制品,交付物和构建块三者的作用和关系:制品是 EA 项目的最小工作产品;交付物是 EA 项目的契约,需要正式签署,这两个都是标准化的;构建块是架构和解决方案的积木,是非标准化的,分不同的级别。