一、Zachman框架的历史地位
全球第一个企业架构框架理论是由约翰·扎克曼于1987年创立的,即Zachman架构框架理论,它全称为企业架构和企业信息系统结构架构(Zachman Framework for Enterprise Architecture and Information Systems Architecture),Zachman也被公认为企业架构领域的理论开拓者,现有的企业架构框架大都由Zachman框架派生而来。扎克曼的论文《信息系统架构框架》至今仍被业界认为是企业架构设计方面最权威的理论,是其他企业架构框架的源泉。扎克曼的崇高声誉不仅仅是由于他在架构框架上的工作,还由于他早期对于IT系统规划方面的贡献。系统规划在20世纪70年代是IBM广泛使用的信息规划的方法论。作为一个强化的和系统的理论,信息规划给IBM的核心领导层、规划和计划部门、技术部门提供了一个强大和完善的工具。20世纪70年代以来,扎克曼先生致力于信息系统的战略规划、计划和企业架构的推广与应用工作。他撰写了许多相关书籍和文章,还一直在全球范围内为企业和政府提供教育和咨询,促进和完善了企业的战略规划和决策行动,带动了企业架构在全球的发展。
John Zachman最早是从建筑、飞机等复杂业务中形成对这一框架的认识。Zachman框架的核心理念是同一个事物可以用不同的方式、基于不同的目的、从不同维度进行描述。当一个事物足够复杂时,这种描述框架就有更大的价值。Zachman架构框架理论最具代表性的是通过6列6行共36个元素表示的矩阵表格,如表1-2所示,以最简便的形式刻画了构成所有内在关系的设计元素以及这些元素在设计中的功能和作用,它构成了一个完整的理论和模型。扎克曼将每部分都看成独立的变量,这是关系型数据库中的标准思维;数据必须与功能、网络位置独立区分,以保持思维的灵性和清晰性。
二、Zachman框架的行
Zachman架构框架共分为6个层次,以6行来描述。每一行代表不同类型的项目涉众的看法和观点,它明确了企业架构工作的流程和流程承担者。
- 第 1 行是企业的规划和管理人员范畴,它定义组织的方向和目的以及架构工作的边界。明确系统所支持的业务范围,规划系统在功能、性能和成本等方面的整体要求。
- 第 2 行是系统的拥有者(或称所有者)范畴,它用业务术语来定义组织的本质,包括它的结构、过程、组织。明确业务实体和他们之间的关系,以及业务流程与规则。
- 第 3 行是系统设计者和项目架构师范畴,它需要用比上一行更加严格的术语来决定和定义系统提供的功能和数据模型。也就是要把这个模型提高到一个更高的细节程度上。在Zachman架构框架的最初版本中,这行被称为信息系统设计师的观点。
- 第 4 行是系统的构建者和实施方范畴,它定义应该采用怎样的技术和手段来满足前面各行所定义的需求。在这个层次,需要考虑系统开发的工具、技术方案和平台等。
- 第 5 行是系统的开发者和承包方范畴,它定义详细设计,考虑实现语言、数据库存储和中间件的使用。包括定义具体的数据库、系统模块、业务规则等,能够分配工作给开发者具体执行。
- 第 5 行是系统的用户,是用户在其操作环境中的视图。
Zachman框架很好的定义了架构的详细层次,从视角的角度可以将架构分为高级概念层(A)、概念层(B)、业务逻辑层(C)、设计逻辑层(C’)以及设计物理层(D)。其中,范围上下文对应于高级概念层(A),业务概念对应于概念层(B),系统逻辑对应了业务逻辑层(C)和设计逻辑层(C’),技术物理模型和组件组装对应于设计物理层(D)。
三、Zachman框架的列
Zachman架构框架认为无论从哪个层次来看,企业信息化的建设都应该从数据(what)、功能(how)、网络(where)、人员(who)、时间(when)和动机(why)等6个方面来综合考虑,也就是所谓的5W1H方法,在Zachman架构框架中以6列表示。
- 什么(数据)——业务数据、信息或对象是什么?
- 如何(功能)——业务是如何工作的,也就是说,业务的流程是什么?
- 哪里(网络)-企业在哪里运营?
- 谁(人)——经营业务的人是谁,业务单位和层次结构是什么?
- 什么时候(时间)——什么时候执行业务流程,也就是说,业务时间表和工作流是什么?
- 为什么(动机)-为什么选择这个解决方案?这是怎么推导出来的?是什么激发了某些活动的表现?
前3列是抽象产品,即什么内容,着重点是组织之内的重要的实体、对象、组件,以及它们之间的关系;流程是如何工作的,着重点是如何来支持组织和它的客户;组件在何处,着重点是组织活动的地理分布。从系统的角度来看就是数据、功能和网络。在最初的Zachman架构框架中,只有这3列抽象的产品,随着架构理论的不断发展和成熟,企业架构的实施和IT治理不可避免地包括在了企业架构框架之中。这就是Zachman架构框架中的后3列——“人员、时间、动机”。
在后3列中,人员描述谁做什么,着重点是谁参与了组织的业务;时间描述事件何时发生,着重点是事件发生的时间及其对组织有多大作用和影响;动机描述选择该事件的原因,着重点是把业务目标、战略和限制转化为具体的实现。
相对于前3列抽象产品,后3列更抽象、更不容易建模和仿真。关于Zachman架构框架理论,有以下3个方面需要认真理解并引起注意。
- 在每一列中,模型被演化或者转变来反映每行中涉众的观点。
- 在每一行中,模型应当是彼此之间互相一致的。
- Zachman架构框架并不是为架构定义一个过程,它是定义了架构应该包含的观点。Zachman架构框架仅仅是一个模板,所空缺部分必须由每个组织根据所需要的具体过程来填充。如果这些过程不存在,使用Zachman架构框架将有助于识别这些架构中的空白。
Zachman架构框架的主要优势是明确地展示了企业架构需要解释的许多观点,不管组织或企业是否决定采用Zachman架构框架,它都可以提醒你在架构中所需要考虑的问题;Zachman架构框架还明确地指出架构除了有架构师和开发者外,还有其他的涉众,这就意味着需要让所有的涉众都参与到架构设计中去,以确保满足他们的需求,而且理想上来说,应当尽量促使涉众活跃的参与架构实践。
Zachman架构框架从6个层次和6个方面定义了企业架构和需求。将36个元素有机结合,就可以建立起企业业务运营中实际运行的系统。Zachman架构框架主要还是解决系统建设问题,而不涉及业务和流程的设计。
四、Zachman框架的规则
- 框架提供了一组与企业描述相关的描述性表示或模型。
- Zachman框架中的每个单元格都必须与它上面和下面的单元格对齐。
- 每行中的所有单元格也必须彼此对齐。
- 每个单元格都是唯一的。
- 将单元格组合在一行中,形成了该视图中企业的完整描述。
五、Zachman框架和UML、BPMN、ERD
Zachman框架是帮助创建结构的本体,而不是提供转换过程的方法论。在实践中,Zachman框架非常流行,因为它可以应用于其他强调该过程的框架。
Zachman框架可以提供关于在过程的不同阶段需要什么类型的工件的指导。根据Zachman框架提供的基本结构,组合后的应用程序可以产生可预测的、可重复的结果。下图展示了Zachman框架的本体结构以及UML、BPMN、ERD等图的组合使用。
六、Zachman框架的价值
Zachman表格可以从以下五个方面帮助我们开发企业构架:
- 确保每个利益相关者能够从描述的焦点考虑。
- 通过把每个焦点精简到每个特殊观众涉及的焦点来提升构架材料的质量。
- 确保每个商业需求能够追踪到技术实现。
- 确保商业方面不会规划出多余没用的功能。
- 确保技术组包含在商业组的规划中。
七 Zachman框架的不足
尽管Zachman架构框架广泛地被企业和政府接受,但它存在以下几个潜在的问题,也引起了人们的关注。
- Zachman架构框架可能会导致一种文档繁杂。其共有30个单元格,每一个单元格都需要一个或多个工件(artifact)来作为支持,这意味着文档的编写和管理一定非常繁杂。因此每个层次对象需要站在全局的高度,明确什么信息是实际上需要的,什么是可有可无的。换句话说,只有建立和维护文档的价值超过它的开销才有意义。
- Zachman架构框架可能过于偏向于方法学。使用Zachman架构框架来提倡所偏好的工作方式,或者使用它来改善现有方法似乎是一个很好的解决方案,但是如果不能选择反映当前组织文化、业务环境、技术环境以及参与人员的技能的工件的话,它可能会起负面作用。
- Zachman架构框架可能偏重过程。Zachman架构框架需要定义一套严谨的过程来支持它的必要性,为了维护在表格中那30个元素的可跟踪性,需要开发和维护一套详细的轨迹矩阵或者元数据的数据库,这些活动无疑会增加开销并影响到项目的进度。
- Zachman架构框架并没有被开发领域广为接受。虽然其在IT架构领域中的普及性正在增长,但是似乎它还没有设法让自己进入到主流开发领域中去。
- Zachman架构框架提倡的是自顶向下的开发方法。在人们一开始接触它的时候,大家倾向地认为这意味着要从第1行开始,然后进行第2行等,然而实际情形并不一定非要这样。一个自顶向下的开发方法在有些情况下是好的,而有些时候自底向上的方法可能会更好,在其他时候从中间向外的方法又更合适,所以可以根据实际情况选择最合适的单元格作为起点,然后从那里开始进行。
Zachman本身并不是一个完整的解决方案。有太多的问题它都没有描述。例如,Zachman没有给出一步一步构造一个构架的过程。在决定我们将要构建的构架是否是最好的时候,Zachman没有提供更多的信息帮助我们作出决定。就此而言,Zachman也没有给出一种途径展示将来构架的需求。