终于完成了关于企业架构框架理论的总结,谢谢各位看官的支持,能挺过之前过于理论化的叙述而坚持到现在着实不易,笔者也自愧没有实践经验可以分享,希望日后有兴趣的看官能够不吝赐教。在本系列后面的也是最后一个大部分中,笔者将以ArchiMate语言为核心,尽力描述企业架构和建模之间的关系,以及基于企业架构模型的分析,其内容大多来源于ArchiMate 2.0标准以及《Enterprise Architecture at Work》这两部资料,有兴趣的看客可以对其进行参考比照。在此,再一次感谢支持本系列的各位看客,另外这一部分的内容应该不会想之前那么理论化,这也算是个好消息吧 ^_^。那么我们就开始吧:
通过在前几章中对当前在业界比较知名的几种企业架构和企业架构框架的介绍,我们可以将企业架构的内容看为由若干企业架构元素以及他们之间的关系组合而成。这些企业架构元素以及他们之间的关系覆盖范围广阔,纵贯了企业战略、原则、目标、需求、业务、信息系统以及基础设施这些层面。正因为需要照顾到如此广泛的范围,企业架构必将不可避免地面对企业内外各具有不同背景、关注点和利益的干系人(Stakeholder),而他们也正是企业架构的终极用户。所以,如何在这些干系人之间建立针对企业状况的无障碍的沟通是企业架构的最终目标,而在此基础之上才有可能实现诸如业务-IT相协调(Business-IT Alignment)、企业从单一领域优化到全局范围优化的演进等目标。为了达到这一目标,我们便需要对“企业”这一客观对象进行描述,并在各干系人之间获得一致性的认同,而这一过程也正是采用各种企业架构框架来进行企业架构建设过程的核心。如果用IT方面的词汇来描述,我们可以将其称为对企业进行“建模”。
虽则可以将如此复杂之事用“建模”这两个字来概括,但是如果要实现它,我们还需要面对如下几个问题:
对于如何进行建模,在一些著名的企业架构框架(例如TOGAF)中已经有了相关阐述,罗列出了企业架构建设的各个实施、维护阶段以及相关的输入、输出和目标,因而在这里就不再赘述。
对于针对什么进行建模,这涉及到企业架构的内容范畴。从前面各章可知,各种企业架构框架对于企业架构内容都有着不同程度的分类和概括,而通过将它们归纳起来,我可以把企业架构的内容范畴界定为:企业架构的内容应表述企业的当前以及期望的状态,而这些内容应该以企业的战略、原则和目标为起点,以企业的文化和现有管理方法为背景,在纵向结合并贯穿业务、信息系统和基础设施这三个层面,而在横向则应反映各干系人的关注点和利益。
对于采用何种方式进行表述是本章的叙述重点。由于“企业”这一客观对象非常复杂,它既包含实实在在的信息系统和基础设施,又包括虚无缥缈的企业战略、企业文化等方面,因而如何将这一既实又虚的对象描述出来的确不容易。此外,由于企业中各个干系人的背景不同,因而其看问题的角度、深度和广度也不尽相同,所以他们都倾向于采用自己认知范围内的方式来对企业进行描述,而怎样弥合这些不同就成为了一个莫大的挑战。为了解决这些问题,企业架构描述语言应运而生,这其中就包括了诸如ArchiMate、ARIS(ARIS框架不单单是一种表述方式,它本身是一个被广泛使用的企业架构框架)等描述方式。本章的后面将针对ArchiMate进行详细地描述。需要注意的是,使用企业架构描述语言所产生的企业架构描述只是企业架构内容的重要组成部分,而采用自然语言的描述内容是永远不会被替代的,并且由于企业架构的高层次抽象性,各种采用专门语言进行表述的详细设计内容也永远不会被替代。
不论是采用架构描述语言还是使用自然语言对企业进行建模,都是对企业这一客观对象进行描述,从理论上讲,只要描述得当针对企业进行无障碍的一致性沟通这一目标均可达成。不过两种描述方式相比,企业架构描述语言更加“正式”,因为它采用统一的方式为“企业”建立数学模型,而这正是将“企业”进行信息化的基础,也为各种分析方法提供了良好的铺垫。
建立企业架构模型并不是最终目的,建而不用反而是最大的浪费,除了记录企业架构真实情况、描述目标状态和过渡状态、对实施和迁移过程进行指导,并在各干系人中对以上行为产生共识和建立沟通基础之外,在日常运营中,企业架构模型也能产生非常大的帮助,从而为干系人的决策提供依据,而这就是基于企业架构模型的分析。在本章的最后一个部分,笔者将以采用ArchiMate语言所描述的企业架构模型为基础介绍一些分析方法。
1. ArchiMate的由来
ArchiMate起源于本世纪初的荷兰,是由荷兰在信息技术领域的研究组织Telematica Instituut(2009年重组并重命名为Novay)组建的开发团队定制而成,并且其建设过程受到了荷兰政府以及各工业和学院的支持和合作。这一建设过程开始于2002年7月,并于2004年12月截止,这期间消耗了35人年以及将近400万欧元的资金。2008年,ArchiMate的主导权被转移到了Open Group的手中。2009年2月,Open Group将ArchiMate 1.0版作为正式的技术标准进行了发布,而截止到目前最新的版本是2012年1月发布的ArchiMate 2.0版。作为最新的ArchiMate 2.0版,相对于1.0版本,Open Group不仅在多个方面对原来的内容进行了修订,并将ArchiMate与其手中的TOGAF标准进行了很好的整合,从而使ArchiMate不仅仅可以在企业的业务、信息系统(数据和应用)和技术层面进行描述,还通过了扩展对企业战略和迁移与实现进行了描述,并与前面所说的三个层面相结合。下图展示了ArchiMate 2.0版与TOGAF之间的契合关系:
ArchiMate的基础是IEEE 1471标准,该标准定义了一系列用于描述系统架构的基本概念元素以及他们之间的关系,从而为系统的定义、分析和描述提供了坚实的理论基础。IEEE 1471以民用建筑为类比来对软件系统架构进行描述,在这一点上它与Zachman框架有着异曲同工之妙,不过与之不同的是,IEEE 1471并不是通过一系列固定的视角和视图来对系统架构进行标准化,而是采用了架构描述实践中能够被广泛接受的各种有价值的概念和关系:
2. ArchiMate建模详述
ArchiMate语言为企业架构的描述提供了一种图形化的表述方式,尤其是在2.0版本发布之后,ArchiMate具有了时间这一维度,从而使其可以对企业随着时间推移而演进的过程中所涉及到的转化和迁移情况进行建模。作为一种企业架构建模语言,ArchiMate所描述的范围需要涵盖企业的各个领域,并能够体现出各干系人的关注点,因而与各个领域的专用建模语言相比,ArchiMate具备如下特点:
2.1 ArchiMate语言基本结构
ArchiMate语言的建设初衷并不是要重新建立一种全新的建模语言,因为这样做只会带来新的学习挑战,并且还会陷入到与其他建模语言的竞争和兼容陷阱之中,因而从其开发初期开始,开发团队就着眼于提供一套能够尽量兼容和重用当前各领域中的建模语言元素的方式,而不是替代他们。而也正是因为这种指导思想,ArchiMate才得以能够将原本隔绝的各个建模领域联系起来。虽然说起来简单,但真要建设这样一种语言其实是一项巨大的挑战,因为这语言需要在如下两个层面获取良好的平衡:
因此,正如ArchiMate 2.0规范中图示那样,ArchiMate语言中的建模元素及其之间关系的定义层级应在上述两个层次之间取得平衡:
虽然ArchiMate语言跨越多个领域,其所包含的建模元素种类以及他们之间关系的种类也较为繁杂,但综合来讲,ArchiMate语言的基本结构和特点可总结如下:
在本章的后面部分,笔者将以各领域层次为单位对其中的概念元素进行详细描述,对元素之间的关系进行集中阐述,并在最后对ArchiMate的扩展规则进行描述。这些内容来源于《ArchiMate 2.0 Specification》中第三至七章(对各领域中的建模概念元素和关系进行了定义和描述)和第九章(ArchiMate扩展规则),笔者以这些章节中关于建模概念元素的定义、表示图符和示例为蓝本,以个人理解为出发点对其进行了翻译和适当修改(如业务接口的示例与规范中的对应示例就略有不同,笔者根据个人理解对其进行了适当的修改)。
2.2 业务层模型元素
业务层模型元素包括了业务领域中的各种概念元素以及他们之间的关系,除此之外还包括了一些与业务领域相关的信息概念(Informational Concept)元素:产品、与产品关联的合同、业务对象的意义,以及产品或业务服务的价值。这些概念元素及其之间的主要关系如下图所示:
2.2.1 结构元素
2.2.1.1 业务参与者(Business Actor)
2.2.1.2 业务角色(Business Role)
2.2.1.3 业务合作集合(Business Collaboration)
2.2.1.4 业务接口(Business Interface)
2.2.1.5 位置(Location)
2.2.1.6 业务对象(Business Object)
2.2.2 行为元素
2.2.2.1 业务流程(Business Process)
2.2.2.2 业务功能(Business Function)
2.2.2.3 业务交互(Business Interaction)
2.2.2.4 业务事件(Business Event)
2.2.2.5 业务服务(Business Service)
2.2.3 信息元素
业务结构元素和行为元素中所包含的种种概念元素关注于描述企业的运行方面,而与之相比,业务信息元素则站在“主观意识”的角度对上述两种元素进行进一步的阐述。例如,对于业务服务来说,除了要从企业的运行层面来描述实现和负责业务服务的各个元素,我们还需要阐述业务服务对其外部环境的意义和价值。由此我们也可以看出,信息元素是一条将企业的业务目标和产品与其运行方面关联起来的路径。
2.2.3.1 表现方式(Representation)
2.2.3.2 含义(Meaning)
2.2.3.3 价值(Value)
2.2.3.4 产品(Product)
2.2.3.5 合同(Contract)
2.3 应用层模型元素
应用层模型元素包括了企业在应用层面的各种概念元素以及他们之间的关系。由于该层次的目标是描述企业中的各种信息/软件系统,所以这其中大部分概念元素都来源于UML 2.0,因为在这一领域中UML 2.0无疑是受众最广的事实标准。在ArchiMate 2.0中,对企业应用层进行建模的各种概念元素以及他们之间的主要关系(元模型)被定义如下:
2.3.1 结构元素
2.3.1.1 应用组件(Application Component)
2.3.1.2 应用合作集合(Application Collaboration)
2.3.1.3 应用接口(Application Interface)
2.3.1.4 数据对象(Data Object)
2.3.2 行为元素
2.3.2.1 应用功能(Application Function)
2.3.2.2 应用交互(Application Interaction)
2.3.2.3 应用服务(Application Service)
实例: 在本案例中,名为“财务组件”的应用组件具有“财务功能”这一应用功能,且此应用功能对外提供了名为“交易处理服务”的应用服务。“交易处理”应用服务被指派给“交易处理接口”这一应用接口,而此应用接口属于“财务组件”,即对于“交易处理服务”的访问需要通过“交易处理接口”;与之相似,“计费组件”、“计费功能”、“单据创建服务”和“单据界面”之间也具有一样的关联;在上述两组内容之间,“计费功能”使用着“交易处理服务”,而这一“使用”关系也体现在“计费组件”对作为“财务组件”组成部分的“交易处理接口”使用之上。