# Archimate :::info :rocket: A visual language with a set of default iconography for describing, analyzing, and communicating many concerns of Enterprise Architectures as they change over time ::: 想了蛮久怎么切入去介绍Archimate这门语言,还是spec文档中的表述最为准确。本文基于笔者认知,会对Archimate做一个粗浅的,概览性的介绍,并展望一下后续在Archimate方面的学习与研究。 谈Archimate之前,绕不开企业架构的概念。 企业架构可以看作由若干企业架构的元素和他们之间的关系组成,这些元素和关系范围很广,纵贯了企业战略,原则,目标,需求,业务,信息系统这些层面。因为需要照顾这么大的范围,企业架构不可避免地要面对各个不同背景,不同关注点与利益的干系人(Stakeholder)。因此,如何**在这些干系人之间建立针对企业状况的无障碍的沟通**是企业架构的最终目标。 明确了这一点后,才可以引申出业务-IT相协调,企业从单一领域优化到全局范围优化的演进等目标。由于企业这一个客观的对象非常复杂,它既包含实实在在的信息系统和基础设施,又包括虚无缥缈的企业战略、企业文化等方面,因而如何将这一既实又虚的对象描述出来的确不容易。此外,由于企业中各个干系人的背景不同,因而其看问题的角度、深度和广度也不尽相同,所以他们都倾向于采用自己认知范围内的方式来对企业进行描述,而怎样弥合这些不同就成为了一个莫大的挑战。 因此,我们需要一个统一的方式去建立数学模型,来作为将企业进行信息化,进行各种分析的基础:企业架构描述语言Archimate应运而生。 如spec中所描述的,该语言用一套默认可视的方式描述,分析并连接企业架构随时间变化产生的问题。因为可视描述,它不会替代自然语言描述内容,也因为抽象性,它也不会替代使用专门语言表述的详细设计内容,作为架构描述语言,它有其'守道'的独特地位。 * ArchiMate的基础是IEEE 1471标准(拜读架构神文) ## 基本结构与特点 1. ArchiMate的建模概念元素虽然种类繁多,但究其性质而言不外乎结构元素(Structure Element)和行为元素(Behavior Element)两种.前者代表了各种结构化的实体(如参与者、应用组件以及数据等),而后者则用来描述结构化元素所能执行的各种行为(如业务活动、应用功能以及服务等)。此外,根据与行为元素之间的关系进一步划分,结构元素又可被分为主动性结构元素(Active Structure Element)和被动性结构元素(Passive Structure Element),前者表示发起动作的结构元素(例如参与者、应用组件等),而后者则被用来描述行为元素的各种对象(例如业务数据、信息数据等)。由此可见,ArchiMate所使用的描述方式与很多标准化的描述方式有着异曲同工之妙,他们都符合人们日常所用的自然语言的“主-谓-宾”方式,亦即主动性结构元素类比于主语、行为元素类比于谓语,而被动性结构元素类比于宾语。**这也是后面要讨论的形式化在企业级架构应用的基础**。 2. ArchiMate中的行为元素还可以从内与外两个维度进行进一步区分,前者用于描述某种功能的内部实现方式,而后者则用于表述系统对于外界所能提供的(抑或外界需要系统能够提供)对外界具有价值且隐藏了内部实现的功能单元。通过借鉴面向服务架构(SOA)中的概念,ArchiMate用“服务(Service)”这一行为概念元素来代表这种功能的外部表现形式,而对于用于实现服务的内部行为元素则包括了业务流程、业务功能、应用功能等多种行为概念元素。这些概念元素关系中的大多数来源于当前已经存在的建模语言中的关(默认的组合、聚合和特化)。 3. ArchiMate采用分层的方式对企业架构进行描述,这主要包括了(自上而下)业务、应用和技术三个层面。每个层次中包含了该领域中的各种概念元素和他们之间的关系,而不同层面之间的关联则是通过前面提到过的“服务”行为元素来进行关联,亦即上面层次(如业务层)中的概念元素使用下面层次(如应用层)中概念元素所实现并通过接口对外提供的服务。 4. ArchiMate中定义的各种结构化关系都有着各自的优先级,并且由结构化关系间接相连的概念元素之间可以等效为一条直接的结构化连接,且此等效的直接连接将等同于这一系列实际关系链中具有最低优先级的关系连接。这一原则对于基于企业架构模型的定性分析(如影响分析)有着重要的意义。 ## 一些思考: 1. UML 与 Archimate的关系 UML和Aichmate之间,相辅相成,UML抽象层级更偏向于基础设计工具和语言。Aichmate这个架构设计语言更贴近企业IT系统的架构设计,的架构设计分层和边界比较清楚,很多概念很偏向于架构师,uml因为抽象层级比较高,受众比较广,既可用于HLD,又可用于LLD,而AichMate主要用于HLD。 2. 真实企业中Archimate的应用情况 企业对一个工具使用程度,取决于专业程度,而且和企业本身没有太大关系,还是和架构管理者和设计者有关,工欲善其事,必先利其器。 3. 架构思考: 最近读了不少介绍架构方面的文章,后面自己也逐步回溯做好记录。我发现当一个领域的知识体量很大之后,就只能是慢慢摸索做记录,不敢说'总结'二字了。 :D 4. 自己给自己的文章建议:(计划六月底完成) 1. 本文应该对Archimate的核心框架, 顶层体系结构的介绍再深入一点。针对spec文档的图去讲解更好:如 ![](https://i.imgur.com/7dI50L4.png)。 2. 举个Archimate实例会好很多。