Zachman,1987年由John Zachman提出,目前仍被业界认为是企业架构设计方面最权威的理论,也是最有影响力的框架方法论。
Zachman在解释他的IT分类学时,最初使用了建筑行业作为类比:在建筑行业里,构架材料通过使用二维表格表示出来。表格其中的一维是变量"游戏中的角色"。对于一个建筑物来说,这些选手就是拥有者(谁为这个项目付款)、构造者(负责构建的人)、城市规划委员会(负责确保建筑遵循当地建筑标准的人)。建筑构架为不同的角色提供不同的材料。每个角色都需要完整的信息,不过对于不同的角色而言,所需的完整信息也是不同的。
随着云计算、大数据、人工智能等新一代信息技术不断发展和应用,企业数字化转型加速,为应对越来越多样化的业务模式,通过架构理论梳理出满足自己需求的流程成为诸多企业数字化道路上的第一道“考题”。在这里,明朝万达信息安全专家将为大家解释何为5W1H与六角色,以及Zachman与Sabsa的异同。在文章后续,明朝万达以“数据”为例简单介绍如何构建一个适合自己的架构。
5W1H 与 六角色
构架材料组织的第二维是材料的描述中心和项目相关的:什么(what)、怎样(how)、谁(who)、何时(when)、为什么(why)。这一维和第一维之间是相互独立的。构造者和拥有者都需要知道"什么",但是"什么"是什么还得取决于问这个话的人是谁。Zachman建议有六个描述的焦点(数据、功能、网络、人员、动机)和六个角色的角度(规划者、拥有者、设计者、构造者、转包商、运营企业)。
我们可以看到,在一个Zachman表格中,有36个方格,每个方格就是一个角色(例如商业拥有者)和每个描述焦点(如数据)的交汇。
当我们在表格中水平移动(例如从左到右)时,我们会从同一个角色的角度,看到系统的不同描述。当在表格中竖直移动(例如从上到下)时,我们会看到从不同角色的角度,观察同一个焦点。
Zachman 与 Sabsa
Zachman本身并不是一个完整的解决方案,有太多的问题它都没有描述。例如,Zachman没有给出构造一个构架的完整过程,没有提供更多的信息以帮助我们判断将要构建的构架是否是最好的,也没有给出一种途径展示将来构架的需求。最重要的是从企业级架构组织者的角度,尽管Zachman表格可以帮助组织构架材料,但是它在描述企业复杂性方面几乎什么都没做。Sabsa ,是一个用于企业安全架构和服务管理的框架和方法论,为构建架构提供了一种结构。尽管Sabsa 与Zachman 拥有极其相似的架构,但实际上Sabsa并不是从Zachman衍生出来的,两者最重要的区别在于,Zachman并无明确目标,Sabsa则有着明确的目标——协调网络安全与商业目标之间的关系。因此,明朝万达建议企业在建立自己所需的框架时,以Zachman为基础,Sabsa为参考,并根据下面总结的3点建议和5个提示来构建。
3点建议
1、每一个构架材料应该存在于一个方格中,而且只能存在于一个方格中。在一个构架材料放在哪个方格里不应该含糊不清。如果某个构架材料的确不知道应该放在哪个方格中,问题很有可能处在构架材料本身。当组织在开发企业构架中开始积累材料的时候,它可以使用Zachman表格解释每个材料的焦点。例如,面向服务构架相关的材料很有可能就放在第三行(从设计者的角度看)。它们一般不会引起商业拥有者的兴趣。
2、仅仅只有当所有的表格都填满了的时候,一个构架才能被称为是完整的构架。当所有的方格都填满了时候,整个表格才有足够的材料定义系统。只有当每个方格都填满了材料的时候,才有足够的信息描述系统:从每个角色(我们现在可以称之为"利益相关者",Stakeholder)的角度观察系统的每个可能的视角(描述焦点)。所以一个组织可以使用Zachman表格确保企业构架中的所有重要利益相关者之间的讨论都是合适的。
3、表格的每列的方格都是彼此相关的。例如,Zachman表格的数据列(第一列)。从商业拥有者的角度,数据就是关于商业的信息。从数据库管理人员的角度,数据就是数据库中的行和列。尽管商业拥有者对数据的看法和数据库管理员不同,但他们应该是有关系的。一个人可以遵循商业需求,并且显示出设计的数据就是被需求驱动的。如果有商业需求并没有追踪到数据库设计,那么就得想想商业需求是否与企业构架相符。另一方面,如果数据库设计的元素没有需求与之对应,我们就应该问问自己,在数据库层面是否存在不必要的设计。
5个提示
1. 确保每个利益相关者能够从描述的焦点考虑。
2. 通过把每个焦点精简到每个特殊观众涉及的焦点来提升构架材料的质量。
3. 确保每个商业需求能够追踪到技术实现。
4. 确保商业方面不会规划出多余没用的功能。
5. 确保技术组包含在商业组的规划中。
实践参考
以"数据"为例。从商业拥有者的角度而言,“数据”意味着商业实体,可能包括实体本身的信息,如客户和产品,也可能包括实体间关系的信息,如人口群体和库存;从数据库的实现者的角度来看,"数据"就是保存在数据表中的行和列,还有通过连接(join)和映射(projection)生成的表。因此在面对不同角色时,我们的讨论对象也要随之改变。并不是从一个角色的角度看就比从另外一个角色的角度看要好,也不是越详细越好,也不是某一个的优先级比其他的更高。作为一个整体,无论是从谁的角度都很重要。正如Zachman说过的:我们在信息系统构架方面与另外的构架沟通时有很多困难,因为存在很多构架表现形式,而不是仅仅只有一个构架。其中一个出错了,其他的也跟着出错。构架是不同的。它们是附加的和补充的。选择为开发每个构架表现形式而支出资源是有原因的。如果不开发任何构架表现形式是有风险的。综上所述,明朝万达信息安全专家认为企业在做架构的时候通过参考Zachman框架中针对不同角色角度的六个功能焦点,就可以描述的很清楚了。