企业架构有四大支柱,分别是业务架构、数据架构、应用架构和技术架构,上次我写了一篇业务架构的文章《把业务架构搞搞懂,才算敲开了理解业务的大门!》,谈了对业务架构的粗浅理解,这次来讲讲应用架构。
网上关于应用架构的资料非常碎,因此我找了企业架构开发方法的权威TOGAF作为参考,把应用架构的交付物和端到端流程全部走了一遍,图文并茂,希望尽量用浅显易懂的方法把应用架构讲讲清楚。
一、企业架构全景图
TOGAF(The Open Group Architecture Framework)是一个工具集、术语集和流程集,提供了一个全面的方法来开发企业架构。TOGAF的中心是一个被称为"架构开发方法"(Architecture Development Method,简称ADM)的流程,如下图所示:
我们最关注的是业务架构、数据架构、应用架构及技术架构,这些架构层次的描述体现了从高层策略到低层实施的逐渐细化的逻辑。
1、业务架构
主要关注业务策略、治理、组织和关键业务流程。
描述业务功能、业务流程、事件、组织单位、角色、业务服务以及其他业务行为。
2、数据架构
描述组织的物理和逻辑数据资产以及数据管理资源。
关注企业的信息资产,如何在应用和业务流程中结构和使用它们。
3、应用架构
描述应用系统的总体结构和应用组件的相互关系。
关注系统解决方案和服务以支持业务架构的需求。
4、技术架构
描述硬件、软件、网络和其他技术资源的策略和标准。
定义支持应用架构运行所需的基础技术结构。
应用架构与其他三个架构有紧密联系:
1、业务架构定义了为什么要进行某项业务,并提供了业务需要什么样的信息支持(即数据架构)。
2、数据架构和应用架构合作,确保业务流程能够通过正确的信息系统得到所需的支持。应用架构定义了什么系统需要进行交互,以及这些系统如何与数据交互。
3、技术架构再进一步定义了如何实施应用架构,它描述了支持数据、应用和业务功能所需的基础技术。
这四个层次构成了企业架构的综合视图,它们共同工作,确保从高层的业务策略和要求到实际的技术实施都是对齐的。
二、应用架构的定义
应用架构在TOGAF中处于阶段C,专注于定义支持业务和数据处理所需的应用系统,它描述了应用系统之间、应用与用户之间的交互和行为。
不同于应用程序或软件的内部架构,应用架构不涉及单个应用的具体架构和实现技术。其核心是确定企业需要哪些类型的应用以及这些应用如何管理数据和为企业人员提供信息。在应用架构中,应用被视为负责支持数据对象管理的逻辑功能组或支持业务功能的组件,而不是具体的计算机系统。总之,应用架构关注如何整合多个应用系统以满足业务需求,而不是单个系统的技术细节。
那么,应用架构具体长啥样呢?
TOGAF 提供了一个详细的架构工具模型,如下所示:
在阶段C,TOGAF定义了应用架构的主要交付物,共分目录、矩阵、图三类类型,总计14个制品:
1、目录:应用组合目录、接口目录
2、矩阵:系统/组织矩阵、角色/系统矩阵、系统/功能矩阵、应用互动矩阵
3、图:应用通信图、应用和用户位置图、系统用例图、企业可管理性图、流程/系统实现图、软件工程图、应用迁移图、软件分布图等
下面以案例的形式逐个说明这14个制品的具体内容,应用架构的最终交付物往往是这14个制品的编排组合:
1、应用组合目录
假设我们有一个中型企业,该企业涉及以下几个核心业务领域:
(1)销售:负责产品的销售。
(2)人力资源:负责员工的招聘、培训和福利。
(3)财务:负责公司的财务管理,如支付、收款、预算和报表。
基于这三个业务领域,我们可以列出以下的应用组合目录:
在这个简化的应用组合目录中,我们可以清晰地看到每个应用支持哪个业务领域,它们的主要功能是什么,它们运行在哪些技术平台上,以及它们当前的生命周期状态。这有助于企业更好地管理其应用组合,理解各应用之间的关系和依赖性,并决定在哪里投资以支持未来的业务需求。请注意,实际的应用组合目录可能会包含更多的细节和其他信息,例如应用的拥有者、应用的使用频率、应用的维护成本等。
2、接口目录
接口目录(Interface Catalog)在TOGAF中是一个结构化的文档或表格,用于描述、定义和记录组织内外的应用接口。这个目录通常列出了组织中所有已知的应用接口,并为每个接口提供了相关的详细信息。这有助于在整个组织中确保接口的一致性和互操作性。
接口目录通常包括以下内容:
接口名称:一个简短、描述性的名称。
接口描述:接口的简短描述。
来源应用:发起或产生数据的应用名称。
目标应用:接收或消费数据的应用名称。
接口协议:如 HTTP、FTP、SOAP、REST等。
数据格式:如 XML、JSON、CSV等。
数据内容:传输的数据的简短描述或摘要。
接口状态:如激活、待激活、已弃用等。
以下是一个简化的接口目录示例,假设我们之前提到的企业场景:
此接口目录提供了一个中心位置,用于管理和查看应用之间如何交互,使用哪些技术和协议,以及传输的数据内容是什么。这对于确保数据的一致性、减少接口冗余、理解和优化数据流程都是非常有用的。
3、系统/组织矩阵
系统/组织矩阵(System/Organization Matrix)是一个工具,用于显示各个组织部门或角色与系统之间的关系。该矩阵有助于理解哪些部门或角色使用或拥有哪些系统,从而可以更好地协调和规划业务和IT资源。
一个简单的系统/组织矩阵可能像这样:
在此示例中,我们可以看到:
销售部门使用销售管理系统和销售分析工具。
人力资源部门使用人力资源信息系统。
财务部门使用财务管理系统。
管理团队可以查看所有系统的信息,但可能没有完全的使用权限。
这种矩阵形式的表示方法为组织提供了一个清晰、简洁的视图,展示了各部门或角色与各系统之间的关系。这有助于确保系统的正确分配、减少重复投资、优化许可证成本,并确保适当的培训和支持。
4、角色/系统矩阵
角色/系统矩阵(Role/System Matrix)是一个工具,用于显示组织内各个角色与他们与系统的关系。这个矩阵有助于了解哪些角色需要访问哪些系统,以及他们对这些系统的具体使用模式(例如,查看、编辑、创建等)。
一个简单的角色/系统矩阵可能如下所示:
在此示例中,我们可以观察到:
销售代表需要在订单处理系统中创建和编辑数据,在人力资源管理系统中查看数据,并在客户关系管理系统中进行各种操作。
人力资源经理在人力资源管理系统中有广泛的权限,在财务系统中可以查看数据,并且可以在客户关系管理系统中查看数据。
财务分析师在订单处理系统中可以查看数据,在财务系统中有创建和编辑的权限,并且可以在客户关系管理系统中查看数据。
客户服务代表可以在订单处理系统和客户关系管理系统中查看和编辑数据。
这个矩阵为组织提供了一个简明扼要的方式,来展示不同角色如何与各种系统互动。这对于理解和管理权限、培训需求和审计跟踪都非常有帮助。
5、系统/功能矩阵
在TOGAF中,系统/功能矩阵(System/Function Matrix)是一个工具,用于表示特定的系统提供了哪些功能。它帮助架构师和其他利益相关者理解系统的功能覆盖范围,并确保满足了所有预期的功能需求。
一个简单的系统/功能矩阵可能如下所示:
在此示例中:
电子商务系统提供了订单处理、库存管理和付款处理功能。
仓储管理系统专注于库存管理并提供报告生成功能。
财务系统处理付款并能够生成报告。
销售分析系统处理订单数据并提供报告功能。
通过这样的矩阵,组织可以清晰地看到各系统之间的功能交集或功能缺失,从而进行优化或整合。此外,当需要对某一功能进行更改或升级时,矩阵可以迅速提供哪些系统可能受到影响的信息。
6、应用互动矩阵
应用互动矩阵(Application Interaction Matrix)主要用于描述不同应用之间的交互和依赖关系。这种矩阵提供了一个结构化的方法来捕获和描述如何通过各种接口和服务在应用之间传递数据。
这种矩阵特别有助于:
(1)明确哪些应用需要与其他应用通信。
(2)确定数据流的方向和性质。
(3)提供有关应用如何协同工作以支持特定的业务流程的视图。
以下是一个简化的应用互动矩阵例子,假设一个制造企业有以下应用:
(1)销售系统
(2)生产计划系统
(3)仓储系统
(4)财务系统
矩阵可以如下:
解释:
(1)销售系统:
与生产计划系统交互:请求产品信息以确保产品可用性。
与仓储系统交互:查询库存确保产品库存量。
与财务系统交互:创建发票和管理付款。
(2)生产计划系统:
与销售系统交互:接受并处理销售订单。 与仓储系统交互:基于需求和库存发出生产订单。 与财务系统交互:查询产品的制造成本。
(3)仓储系统:
与销售系统交互:提供库存信息。 与生产计划系统交互:接受并执行生产订单。 与财务系统交互:提供库存产品的成本信息。
(4)财务系统:
与销售系统、生产计划系统 和 仓储系统都有交互,处理与财务相关的各种事务。
7、应用通信图
应用通信图(Application Communication Diagram)描述了应用组件之间的通信关系。这些关系可以是调用、数据流或其他形式的连接。这种图有助于展示系统和应用之间的交互模式,以及它们是如何支持业务功能和进程的。
应用通信图通常包含以下元素:
(1)应用组件:如系统、模块或其他应用单位。
(2)通信关系:如数据流、调用或消息传递。
(3)可选地,外部用户或系统和其他接口。
案例描述:
假设一个简化的电商平台包含以下应用组件:
(1)客户前端(Customer Frontend)
(2)订单管理系统(Order Management System)
(3)仓库管理系统(Warehouse Management System)
(4)付款网关(Payment Gateway)
在应用通信图上,它们的交互可以描述如下:
(1)客户前端
用户在这里浏览产品、添加到购物车并下单。 当用户下单时,前端与订单管理系统通信,提交订单详情。 前端还与付款网关通信,处理支付。
(2)订单管理系统
接收来自客户前端的订单数据。 与仓库管理系统通信,通知出货。 一旦支付确认,通知付款网关。
(3)仓库管理系统
接收来自订单管理系统的出货请求。 更新库存信息。
(4)付款网关
接收和处理来自客户前端的支付请求。 一旦支付成功,通知订单管理系统。
这只是一个非常简化的示例,实际的应用通信图可能包括更多的细节、更复杂的应用和更多的交互模式。这种图为企业提供了一个可视化的工具,以理解应用如何互相关联,以及它们是如何支持特定的业务需求和流程的。
8、应用和用户位置图
应用和用户位置图(Application and User Location Diagram)是用来展示应用系统与用户的物理位置关系的。这种图的目的是确保应用的部署位置满足用户的性能需求,并可以实现应用之间的互动。它还有助于确定网络带宽需求。
例如,考虑一个大型企业,它的总部位于纽约,但在全球各地都有办公室。它使用一个集中的CRM系统、ERP系统和一个分布式的报告工具。一个简化的应用和用户位置图案例描述:
(1)物理位置
纽约 (总部)
伦敦
北京
孟买
(2)应用系统
CRM系统 (部署于纽约)
ERP系统 (部署于纽约)
报告工具 (分布式部署于各个办公室)
(3)用户
销售团队 (在所有办公室)
财务团队 (主要在纽约和伦敦)
人力资源 (主要在纽约)