Zachman框架(对企业信息按要求分类(列)和从不同角色者的角度(行)进行表示)
在Zachman的第一篇论文和随后的详细解说中,Zachman建议有六个描述的焦点(数据、功能、网络、人员、动机)和六个角色的角度(规划者、拥有者、设计者、构造者、转包商、运营企业)。如图1-3所示
以列描述中的"数据"为例。从商业拥有者的角度,"数据"意味着商业实体。它可能包括实体本身的信息,如客户和产品,也可能包括实体间关系的信息,如人口群体和库存。如果你打算和一个商业拥有者讨论数据,你应该用到这些语言。
从数据库的实现者的角度来看,"数据"就不是商业实体了,而是保存在数据表中的行和列,还有通过连接(join)和映射(projection)生成的表。如果你在和一个数据库设计者讨论"数据",不要讨论客户的群体,而应该讨论关系数据表。
并不是从一个角色的角度看就比从另外一个角色的角度看要好,也不是越详细越好,也不是某一个的优先级比其他的更高。作为一个整体,无论是从谁的角度都很重要。正如Zachman说过的:
我们在信息系统构架方面与另外的构架沟通时有很多困难,因为存在很多构架表现形式,而不是仅仅只有一个构架。其中一个出错了,其他的也跟着出错。构架是不同的。它们是附加的和补充的。选择为开发每个构架表现形式而支出资源是有原因的。如果不开发任何构架表现形式是有风险的。
正如我前面提到的,Zachman框架由六个功能焦点组成,每个功能焦点都会从一个角色的角度考虑。Zachman框架的描述可参见图1,它描述得很清楚。
从图1中,你可以看到,在一个Zachman表格中,有36个方格,每个方格就是一个角色(例如商业拥有者)和每个描述焦点(如数据)的交汇。当我们在表格中水平移动(例如从左到右)时,我们会从同一个角色的角度,看到系统的不同描述。当在表格中竖直移动(例如从上到下)时,我们会看到从不同角色的角度,观察同一个焦点。
关于Zachman表格有三条建议,相信它们在企业构架的开发中对我们会有帮助。
第一条建议就是每一个构架材料应该存在于一个方格中,而且只能存在于一个方格中。在一个构架材料放在哪个方格里不应该含糊不清。如果某个构架材料的确不知道应该放在哪个方格中,问题很有可能处在构架材料本身。
当组织在开发企业构架中开始积累材料的时候,它可以使用Zachman表格解释每个材料的焦点。例如,面向服务构架相关的材料很有可能就放在第三行(从设计着的角度看)。它们一般不会引起商业拥有者的兴趣。
第二条建议:仅仅只有当所有的表格都填满了的时候,一个构架才能被称为是完整的构架。当所有的方格都填满了时候,整个表格才有足够的材料定义系统。
只有当每个方格都填满了材料的时候,才有足够的信息描述系统:从每个角色(我们现在可以称之为"利益相关者",Stakeholder)的角度观察系统的每个可能的视角(描述焦点)。所以一个组织可以使用Zachman表格确保企业构架中的所有重要利益相关者之间的讨论都是合适的。
第三条建议:表格的每列的方格都是彼此相关的。例如,Zachman表格的数据列(第一列)。从商业拥有者的角度,数据就是关于商业的信息。从数据库管理人员的角度,数据就是数据库中的行和列。
尽管商业拥有者对数据的看法和数据库管理员不同,但它们应该是有关系的。一个人可以遵循商业需求,并且显示出设计的数据就是被需求驱动的。如果有商业需求并没有追踪到数据库设计,那么就得想想商业需求是否与企业构架相符。另一方面,如果数据库设计的元素没有需求与之对应,我们就应该问问自己,在数据库层面是否存在不必要的设计。
Zachman表格可以从以下五个方面帮助我们开发企业构架:
确保每个利益相关着能够从描述的焦点考虑。
通过把每个焦点精简到每个特殊观众涉及的焦点来提升构架材料的质量。
确保每个商业需求能够追踪到技术实现。
确保商业方面不会规划出多余没用的功能。
确保技术组包含在商业组的规划中。