本篇公众号是系列文章的完结篇,是以Archimate架构语言为例讲述了架构元模型的核心概念(实体(结构、行为和信息),连接)。虽然Archimate属于比较简单架构语言,但是好在越简单的事物上手越快,然后从简入繁,符合人类的学习习惯。
如果你对本文所涉及到的概念还不清晰的话,请查看前面几篇公众号:
3 企业架构建模的概念(中篇)-应用架构层
4 企业架构建模的概念(中篇)-应用架构层
本篇文章对于企业建模的最新技术,我们必须考虑用于组织和流程建模的语言以及用于应用程序和技术建模的语言。
当前正在使用多种组织和流程建模语言。所涵盖的概念领域因语言而异。在许多语言中,域之间的关系没有明确定义。一些最流行的语言是特定软件工具专有的。此类别中的相关语言包括
O IDEF(IDEF,1993 年),源自美国国防部
ARIS (Scheer,1994),广泛使用的 ARIS 工具集的一部分
O 用于业务流程建模的 Testbed 语言(Eertink 等人,1999)
O业务流程建模的标准化工作由 Business Process Management Initiative (www.bpmi.org) 进行,其中包括基于 XML 的业务流程建模语言 BPML(Arkin,2002)和图形业务流程建模等标准符号 BPMN(业务流程管理倡议,2003 年)
与组织和业务流程建模相反,在应用程序和技术建模中,统一建模语言 (UML)(Booch、Rumbaugh 和 Jacobson,1999)已成为真正的世界标准。UML 是 ICT 内的主流建模方法,其用途正在扩展到其他领域,例如业务建模(Eriksson 和 Penker,2000)。与早期版本相比,最近的 UML 2.0 标准(Object Management Group,2003 (a) 和 2003 (b))对体系结构建模的支持得到了改进。
上面提到的大多数语言都提供了建模的概念,例如详细的业务流程,但不提供不同流程之间的高级关系。因此,它们并不是特别适合模型架构(IEEE 计算机协会,2000)。架构描述语言 (ADL) 定义架构描述的高级概念,例如组件和连接。人们已经提出了大量的 ADL,其中一些针对特定的应用领域,一些更普遍适用,但大多数都侧重于软件架构。Medvidovic 和 Taylor (2002) 描述了 ADL 的基础知识,并对最重要的 ADL 进行了相互比较。大多数人都有学术背景,但在实践中的应用有限。然而,它们具有良好的形式基础,这使得它们适合明确的规范并适合不同类型的分析。ADL ACME(Garlan、Monroe 和 Wile,1997)被广泛接受为在其他 ADL 之间交换架构信息的标准。
使用三个标准进行比较,更详细地将 ArchiMate 与一系列标准和语言进行比较:
O RM-ODP
O UML 和 UML EDOC 配置文件(对象管理组,2002 (b))
O BPMN 和 ARIS
首先,我们比较了每种语言所涵盖的框架、架构观点和领域。其次,我们比较了这些语言的等效概念和关系。第三,我们采用了一个典型的集成 ArchiMate 模型(类似于图 12 中的模型),并尽可能用其他语言对其进行建模。比较不同的语言有时就像比较苹果和橘子。关于哪种语言是“最好的”语言的明确陈述是不可能的:毕竟,这意味着某种可以用来比较语言的客观“测量棒”。目前,大多数“被接受”的语言已经成熟到相当的水平。虽然侧重点不同,但每种语言都或多或少地涵盖了核心概念。显然,对于每种语言,这些概念的定义方式并不完全相同。语言的起源和演变似乎是差异的原因,而不是一种概念定义相对于另一种概念定义的至高无上。
通过框架比较,我们得出的结论是,ArchiMate 在其他语言中的信息方面的覆盖范围非常有限。此外,大多数其他语言要么仅覆盖企业的某些“领域”(例如,架构层),要么针对更详细的模型。例如,RM-ODP企业视点涵盖了ArchiMate框架的业务层,但需要其他RM-ODP视点来描述应用层和技术层。BPMN显然很好地覆盖了业务层,但完全忽略了应用层和技术层。最后,UML 和 EDOC 配置文件涵盖了行为和结构级别的所有层,但与 ArchiMate 的不同之处主要在于建模所需的细节。
我们考虑的语言通常缺乏正式的元模型、符号或两者兼而有之。如果没有提出符号,则很难找到用这些语言表达的模型。例如,从企业角度来看,实际的 RM-ODP 模型几乎不存在。缺乏明确定义的元模型通常也会导致关系的定义不明确。与ArchiMate相比,关系概念,特别是域之间的关系,在其他语言中通常定义很弱。
ArchiMate 强烈偏向于隐藏细节,目标是适合集成模型的特定抽象级别。这反映在不同语言对示例模型的建模中。示例模型准确地提供了 ArchiMate 所针对的集成模型类型。具体方面的详细建模留给专门的语言。方面和域之间的关系是 ArchiMate 的重点关注点。尽管使用 ARIS 会产生类似的模型,但所有其他考虑的语言只能对模型的一部分进行建模。特别是在整体一致性方面,诸如 UML 之类的详细语言需要一些(被迫的)独创性才能获得这些类型的集成模型。
我们还使用 UML 来说明使用 ArchiMate 作为“伞语言”来链接其他语言中更详细的模型的方法,在本例中是不同的 UML 图。通过这种方式,ArchiMate 用于保护和检查 UML 中仍然缺乏的所需的跨图一致性。作为示例,我们概述了如何使用 ArchiMate 概念来描述组织的高级结构、业务流程以及这些流程和关系的应用程序支持。用于详细业务流程模型的 Testbed Studio 或 ARIS 等工具,以及用于详细 UML 设计模型的 Rational Rose 或 Select Component Architect 等工具,可用于更详细的描述。图 14 显示了这种方法的一个示例,其中通过总体 ArchiMate 模型构建了许多不相交的 UML 图的集成架构视图。
图 14. Archimate与UML联合设计企业架构
最后,另一个重要趋势是 OMG 的模型驱动架构 (MDA) 方法(Frankel,2003)。尽管它强烈依赖 OMG 标准(例如 UML),但该方法的适用性并不限于特定语言。我们相信我们的语言非常符合 MDA 理念。前提条件是符合元对象工具 (MOF)(对象管理组,2002 (a))和 XML 元数据交换 (XMI) 等标准,这些标准仍有待进一步研究。
总之,我们得出的结论是,ArchiMate 符合用于集成建模目的的现有和公认的语言或工具。ArchiMate 与大多数其他语言的区别在于其定义明确的元模型、概念,以及最重要的关系。ArchiMate 的抽象级别简化了集成模型的构建,其中大多数语言似乎都说服架构师进行详细建模。虽然大多数方面的详细建模也可以在ArchiMate中进行,但我们认为使用ArchiMate作为“伞语言”是非常有用的;这种方法已经非常成功地应用于 UML 图。
一位架构师的修炼之路