企业架构 | 应用架构设计方法(一)

应用架构在企业架构中居于中心位置,非常重要,而且发展较早。很多领先的大型机构设立架构管理组织,优先管理的就是应用架构。

经过多年发展,业界形成了很多成熟的应用架构设计方法,比如Open Group的TOGAF等。伴随着企业架构的新一轮热潮,应用架构设计方法也在不断发展创新Thoughtworks MEAF方法、付晓岩老师的聚合架构方法都提出了新的应用架构设计方法,值得我们学习借鉴。


01 应用架构的重要意义


应用架构(Application Architecture)是对实现业务能力、支撑业务发展的业务功能的结构化描述。

应用架构在整个4A企业架构中居于中心位置,非常重要。应用架构是业务架构在IT领域的映射,为业务架构提供支撑;应用是数据的载体,在应用中生产、使用和交换数据,应用架构和数据架构共同构成信息系统架构。应用系统运行在技术架构之上,技术架构为应用架构提供服务。



应用架构作为信息系统建设的蓝图,起到了承上启下的作用,向上承接企业战略和商业模式,向下指导企业信息系统的建设。


02 应用架构的设计原则


应用架构设计应遵循五大设计原则:

1.业务适配性原则
应用架构要支撑和提升战略能力和业务能力,服务于企业的战略目标。

2.企业级原则
应用架构要遵循企业级原则,要打破竖井、整合部门级应用,形成企业级应用,避免功能分散、重叠、界限不清等问题。

3.应用组件化原则
要按照业务功能聚合的方式进行应用规划,建设与应用组件对应的应用系统。

4.应用松耦合原则
要降低系统间的耦合性,减少相互依赖,降低系统运行的风险。

5.资产可复用原则
要沉淀和提炼公共能力,推动架构资产的共享复用,以便于提升开发效率、降低开发维护成本。


03 TOGAF应用架构设计方法


1.应用架构元模型

下图是TOGAF内容元模型中和IT架构相关的内容,其中绿色底色的部分是应用架构的内容。和应用架构相关的构建块有信息系统服务、逻辑应用组件和物理应用组件,其中逻辑应用组件是核心概念。逻辑应用组件由物理应用组件实现,逻辑应用组件对外提供信息系统服务。



2.应用架构设计流程

在设计过程方面,TOGAF ADM建议在阶段C信息系统架构阶段进行应用架构的设计,以阶段B的业务架构作为输入。至于应用架构和数据架构之间,可以先从应用架构开始设计,也可以先从数据架构开始设计,也可以并行,并没有严格的要求。

应用架构的设计过程如下:
(1)首先基于现状应用系统清单、需求以及业务架构范围,理解所需的应用或应用组件列表
(2)通过将复杂的应用分解为两个或更多的应用对其进行简化;
(3)通过尽可能删除重复的功能并合并相似的应用,确保应用定义组合在内部是协调一致的;
(4)识别逻辑应用和最恰当的物理应用
(5)构建应用与业务服务、业务功能、数据和流程等的对应关系,形成各类矩阵;
(6)从系统集成、迁移、开发和运行的角度对应用进行审查,形成相应的应用架构视图。

3.应用架构设计产出


应用架构设计的产出包括:
(1)应用目录,关注整个企业内有哪些信息系统服务、逻辑应用组件和物理应用组件;
(2)接口清单,列出对外提供哪些接口/服务,明确应用之间的依赖关系;
(3)应用/组织矩阵,表示应用组件归属于哪个业务部门;
(4)角色/应用矩阵,描述哪些岗位角色的使用哪些应用系统;
(5)应用交互矩阵,描述应用之间的调用交互关系;
(6)应用/功能矩阵,描述应用与功能之间的交叉关系;
(7)应用通信图,描述应用之间的通信关系,本质上与应用交互矩阵的作用一样;
(8)流程/应用实现图,描述的是业务流程与实现流程的应用组件之间的关系,等等。

TOGAF给出的应用架构产出非常多,具体可以根据项目需要按需裁剪。


04 Thoughtworks应用架构设计方法


Thoughtworks MEAF方法融合了领域驱动设计DDD、微服务设计的方法和各行业的实践。MEAF的企业级应用架构元模型(见下图),将应用架构分为三级,从上到下依次是应用组、应用和应用组件,应用组件围绕领域对象形成,并对外提供应用服务。同时,应用也可以分层,不同层之间进行交互。同时,在应用组件上预设一些扩展点提供足够的灵活性,根据具体情况可以进行扩展实现。



上面关于应用分层分组的方式在管理复杂应用架构时非常有必要,体现了分而治之的思想。应用分组主要是着眼于同一领域、交互关系密切的一系列应用分为一个应用组,比如信贷应用组、营销应用组、支付应用组、存款应用组等。应用分层主要是按照面向客户提供服务的角度,将应用分为不同的层次,比如渠道层、服务层、产品层、数据层等。


05 聚合架构-应用架构设计方法


付晓岩老师最近出版的《聚合架构——面向数字生态的构建化企业架构》一书中,也将视野扩展到应用架构,提出了应用架构元模型,具体如下图:



在聚合架构中,将应用构件作为核心概念。业务构件指导了应用构件的设计,应用构件中包含了逻辑功能和逻辑数据,逻辑功能实现了业务架构中的业务任务,逻辑数据实现了业务架构中的业务数据,多个应用组件通过应用编排实现不同的业务活动,这样就通过应用构件实现了业务任务颗粒度上的复用

可见在聚合架构方法中,将业务架构和应用架构结合得非常紧密,应用架构是业务架构设计的紧后工作,业务人员也和技术人员一块参与这一阶段的工作,双方能够达成共识,避免不必要的理解错误造成的返工。


作者:武艳军,从业16年的金融科技老兵,专注研究数字化转型。公众号:金融IT那些事儿(FinanceITer),微信:13426424828,欢迎交流。