论基于DSSA的软件架构设计与应用

论基于DSSA的软件架构设计与应用
摘要:2020年4月,本人所在的某市金融投资集团启动了集团综合管理系统建设,该项目实现基金、融资租赁、资金管理、转贷、融资担保、保理等金融业务信息化及人力资源、智能办公、法务管理等内部管理功能。在此项目中,我担任了架构师,负责项目总体架构设计工作。本文以该综合管理系统为例,主要论述了基于DSSA的软件架构设计与应用。领域分析阶段,以集团已有系统资源出发,综合分析新业务系统需求,获取集团各业务所共有的领域需求,整合产生领域模型;领域设计阶段,分析领域模型,设计出通用业务架构,实现高层次领域实现;领域实现阶段,根据领域模型和DSSA,一面从已有系统剥离,一边重头开发,产生领域共有可重用元素。最终项目顺利上线,运行平稳,获得了领导的高度认同。
正文:本人所在的某市金融投资集团已经建设了移动办公系统、财务系统、融资租赁系统、基金管理系统等应用系统,但仍有部分业务缺乏信息化支撑,已建成的系统比较分散,主要是“竖井式”方式建设,系统与系统之间信息不共享以及信息与业务流程相脱节。针对这些问题,2020年4月,经集团党委决定,启动集团综合管理系统建设,实现以下功能。一、实现转贷、保理、融资担保、资金管理、人力资源、智能办公等业务流程信息化,同时整合基金管理系统、移动办公系统、财务系统等已有信息资产,促进部门、子公司之间横向协同。二、建立统一共享的信息平台,利用数据报表平台为管理层提供决策信息支持,实现纵向管控。三、建立涵盖分布式文件存储、单点登录、分布式事务支持、短信邮件通知、可控任务调度等服务的基础IT设施,提供高质量、可重用的平台服务。
在此项目中,我担任架构师一职,负责系统总体架构设计。通过分析,由于集团已有成熟的业务系统,且集团对于所有业务设计了一套通用的业务流程,且大致业务实体类似,因此采用基于DSSA的软件架构设计将大大加快系统的推进,并有助于提升代码质量,提高系统可靠性。
在集团金融业务内部管控领域中,领域需求主要包括项目立项、项目尽调、项目方案调整、项目合同签订、项目投放、收付款、项目收尾等业务需求,每一项业务步骤均可能包括审批、材料审核等流程。领域模型由项目、尽调、合同、投放、收尾等一系列业务实体类组成,并且涵盖业务经理、审核人员、业务主管等角色,包括了项目立项、项目尽调等上述功能的用例图,对于复杂用例如项目调整,采用活动图详细描述整个过程,形成整体领域模型。基于层次系统架构风格设计DSSA,分为表现层、中间层、数据访问层三层架构,从融资租赁系统中抽离出领域共有部分,对其进行裁剪、抽象、细化、扩充,形成通用业务构件,实现各领域需求,包含项目、合同、投放各业务流程,特定业务开发时,以通用业务构件为基础,在此之上进行个性化扩展,实现快速开发。相应的支持环境或设施有,基于OSS的分布式存储机制、基于seata的分布式事务机制、支持多种方式的登录鉴权机制、访问控制机制、增删改查代码快速生成模块、基于activity的工作流机制、邮件短信同志模块等基础设施。
本文以集团综合管理系统为例,从领域分析、领域设计和领域实现三个活动出发详细阐述基于DSSA的软件架构设计与应用。
一、领域分析获取领域模型。
集团已有包括融资租赁系统及基金管理系统在内的业务管理系统,且集团有一套基本的管控流程,所有业务流程均在此套流程上进行裁剪、细化、扩充实现。因此,通过与业务领域专家的探讨,我们决定从融资租赁系统中及集团综合管控流程入手,分析领域需求,获取领域模型。由集团基本管控流程分析得知,业务基本分为立项流程、尽调流程、合同审查用印流程、投放流程、收付款流程即合同执行流程以及合同收尾流程。另外根据融资租赁系统分析得知,各业务系统均有自己个性化需求,如租赁强调租赁物的价值,以及该租赁物抵押所带来的的风险。另外系统还包含文件共享、登录、数据访问控制、分布式事务等基础设施需求。以这些获取到的领域需求为基础,我们设计了包含项目、合同、投放等业务实体,包含立项、尽调、合同审查等流程,以及各公共基础设计的领域模型,全面表达了领域内的范围、特定元素及环境约束。
二、领域设计获取DSSA。
通过参考融资租赁系统,我们决定采用层次架构风格设计系统,实现基于B/S系统的的表现层、中间层及数据层。从领域维度又分为基础设施层、通用业务层、特定业务层。基础设施层涵盖基于OSS的分布式存储机制、基于seata的分布式事务机制、登录鉴权机制、短信邮件通知服务等等基础设施,该层次的功能基本与具体业务无关,为其他所有业务的开发提供基础功能支持,便于快速开发,由于这些基础功能的大规模复用,经过实战的考验,又为系统的稳定运行提供保障。通用业务层涵盖集团整体管控流程,需做到通用,能够普遍适应其他特定业务,因此它是可配置的、可扩展的,通过配置调整参数,可以控制流程的流转,比如对于不需要投放流程的转贷,可以通过配置跳过投放,对于融担不走线上审批的业务,可以跳过审批,并转而上传文件来完成业务。对于每个业务实体,我们包括两个部分,一部分为通用实体部分,另一个是特定实体基类,对于特定业务,如果无法通过配置来实现,则通过继承基类扩展实现。这样,我们就得到了集团业务领域的DSSA。
三、领域实现获取可重用元素。
在得到领域模型和DSSA后,我们分析得知我们需要的领域可重用元素包括通用业务构件及分布式存储构件、分布式事务构件、登录鉴权构件、短信邮件通知构件、工作流构件等基础设施。由于集团已存在部分信息化系统,我们对遗留系统进行分析,确定了分布式存储构件、工作流构件、短信通知构件等基础构件可从融资租赁系统中提取获得,登录鉴权构件也通过提取并扩展登录方式得到。对于通用业务构件,提取出的代码由于与原系统具有非常大的耦合性,缺乏对于整个领域设计的高度抽象,因此我们决定仅做参考,对其进行重新设计实现。项目界面采用VUE框架实现,后端采用Spring MVC,基于spring cloud实现微服务架构,用mybatis实现ORM方式的数据访问层设计。实体数据分为基础数据和个性化数据,个性化数据由具体业务定制实现,然后在Dao层对其进行汇聚,产生具体的实体数据,在此基础上,service层对数据层下所发生的的事情完全透明,只需要按照预定去获取数据即可。以这样的方式,我们得到了大量的可重用元素,为后续的特定业务开发提供参考。
2021年9月,项目顺利上线,运行平稳,获得了领导和同事的一致好评。由于项目采用了基于DSSA的架构设计方法,项目上线时间大大早于预期,并且领域实现的可重用元素均由资深实现人员实现,因此质量情况较好,系统可靠性较高,也因为领域构件会被大规模复用,因此对这些构件的改动需要考虑之前的兼容性,并编写足够的单元测试测试保证质量,对这方面的重视也大大提高系统整体的质量。另外由于系统业务也在不断扩展、深化,因此领域模型、DSSA及领域可重用元素并不是一成不变的,也需要不断迭代自己,通过进化、调整以适应变化的需求,另外也通过自身能力的提高,不断地驱动着业务的扩展,如数据分析能力为业务的开展提供数据支撑。基于DSSA的软件设计方法也为后续新业务开展打下了坚实的基础,如后续小贷业务的开展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值