金秀凤
摘 要:ABP是一个开源且文档友好的应用程序框架,能够提供最佳实践的基于领域驱动设计(DDD)的体系结构模型。文章在解读ABP框架及其分层架构的基础上,从平台构建的用户需求出发,全面阐述了档案信息大数据资源中心和档案大数据管理平台、档案信息公共服务平台、档案管理业务处理平台(即一个中心、三大平台)模型构建思路,提出采用ABP框架实现模型快速构建档案信息资源共享平台并提升平台构建质量。
关键词:ABP框架;档案信息资源;共享平台;模型构建
Abstract: ABP is an open source and document-friendly application framework that provides the best-practice domain-driven design (DDD) architecture model. Based on the interpretation of the ABP framework and its layered architecture, the article comprehensively expounds the archive information big data resource center and archive big data management platform, archive information public service platform, archive management business processing platform ( That is, one center and three platforms) model building ideas, and proposes to use the ABP framework to realize the model to quickly build a file information resource sharing platform and improve the platform construction quality.
Keywords: ABP framework; Archive information resources; Sharing platform; Model building
1 ABP開发框架概述
ABP是ASP.NET Boilerplate Project的简称,ABP框架是一个开源的、有良好文档记录的应用程序框架,它提供了基于领域驱动设计的强大架构模型,整合了当前流行的Web开发工具,已成为目前Web应用程序的开发模板。ABP框架基于ASP.NET Core和EF Core,同时支持ASP.MVC 5.x 和EF 6.x。ABP框架是遵循“关注点分离”的领域驱动的经典分层架构思想进行设计的,主要有以下优点:
从服务器端角度来看,ABP框架基于最新版的ASP.Net MVC和WebAPI,实现了领域驱动设计(实体、仓储、领域服务、应用服务、数据传输对象、工作单元等),实现了分层架构(展现层、应用层、领域层和基础设施层),提供一个开发上可重用的基础结构以及针对大型项目所需要的模块,并且这些模块都是可组合式的,提供一个基础且更易于使用的依赖注入机制(使用Castle Windsor作为DI的容器)以及一个严谨的对象模型和基类,轻易地通过对象关系映射。
在应用程序开发中,为了减少代码的复杂性以及提高代码的可重用性,分层架构是常用的技术[1]。ABP遵循DDD设计原则和模式来实现由4个基本层组成的分层应用模型,即展现层、应用层、领域层和基础设施层[2]。
展现层提供了一个面向用户的接口,使用应用层来和用户进行交互;应用层是展示层和领域层之间的桥梁,可以定义一些应用的服务等;领域层是核心层,即业务对象和业务规则的所在层,也是整个应用程序的核心部分,所有业务规则都是在领域层实现的[3];基础设施层通过提供通用性技术来支持更高层次的基础服务,基础设施层的仓储可以通过ORM实现与数据库的交互[4]。
2 平台需求模型构建
2.1 档案信息大数据资源中心。档案信息大数据资源中心是共享平台的数据核心。该中心采用两种模式实现对外的数据交互,一种模式是主动抓取现有平台的档案信息数据;另一种模式是提供授权的共享平台接口,通过该模式可以实现各级档案管理部门数据交换与共享[5]。与此同时,利用大数据存储技术如分布式数据库和分布式文件系统对不同形式的档案信息数据进行高效存储,建立档案信息资源的高可用性、高性能和可扩展性机制。
在平台上线的前期,数据量级有限,随着时间的推移,数据量级会出现爆发式增长,可以利用云计算以及云存储技术,实现对档案信息大数据的动态灵活存储。考虑到档案信息数据资源的特点和其自身数据的敏感性,系统大数据管理在实现上需要考虑其安全性要求。面向终端用户的档案信息资源公共服务平台、各级档案管理部门、大数据中心等需要实现数据交互服务的检索、管理、权限控制。
2.2 档案大数据管理平台。档案大数据管理平台主要实现平台数据日常运行的各项监控,如用户登录、操作日志等,档案信息资源数据作为核心资产,要充分重视数据的采集与存储;同时,平台需求在不断变化之中,要确保平台设计的可扩展性[6]。档案信息接入到数据共享大平台后,需要对归集的信息进行整理,为了档案管理部门更直观地感受到采用共享平台的优点,需要提供一个档案大数据看板,工作人员通过看板可以直观地看到平台各项运行情况。
2.3 档案信息公共服务平台。该平台是面向终端档案信息用户的服务平台,为用户提供一站式档案信息服务平台。过去的档案服务如各种档案证明之类,可能需要通过不同单位的档案部门来查询,这样真正存在档案需求的用户就会为了简单的证明往返于不同部门,通过档案信息公共服务平台,用户只需要在手机或者电脑上注册,通过身份验证后可以在共享平台上办理授权业务,实现档案管理一条龙服务。档案信息数据资源投入使用后,档案信息存储在中央数据库中,数据的录入与存储通过提供的标准接口进行,这样大大节约了资源[7]。
2.4 档案管理业务处理平台。档案管理业务处理平台是档案管理部门的各类业务管理系统集成。平台向不同的档案部门提供了良好的集成模块,使各业务系统实现了相互独立又可以实现高度的数据共享,为各业务系统构建了统一的数据安全管理及应用权限管理,并统一为一个大平台管理。
3 平台实现模型构建
3.1 领域层实现。档案信息资源共享平台的领域层实现,主要包括实体、仓储、工作单元等模块的实现。实体是领域驱动设计的核心概念之一,这部分需要实现平台的档案信息分类、档案信息资源、档案用户信息等实体的构建。领域对象在数据库上的操作是采用仓储实现的,对于不同的实体会创建相对应的仓储,ABP框架提供了通用的仓储实现,也就是对于档案信息资源共享平台中的数据库操作。只要将实体层构建好,通过ABP框架可以自动实现对档案信息资源数据的操作。在实际的应用中,档案数据的实际操作非常频繁,要求数据操作的过程中要保持一致性。为了解决该类问题,可以采用工作单元解决事务性要求高的功能,比如档案管理部门使用的档案数据操作功能。
3.2 应用层实现。档案信息资源共享平台的应用层主要包括应用服务、权限、审计等模块的实现。应用服务主要用于将领域层相关的业务提供给展现层,展现层访问以及操作档案信息资源数据必须通过应用服务实现,这样做最大的好处是确保终端数据操作的安全性,共享平台最大的特点就是信息共享,用户来源比较复杂,对于平台的操作权限验证就比较重要,ABP框架提供了权限验证接口,同时也可以根据需要实现指定的权限验证方式,权限验证是用来检查用户是否允许某些指定操作,相关的功能也是在应用层实现的,为了确保对档案信息操作具有可追溯性,就必须对平台的操作进行记录,ABP框架提供了能够为应用程序交互自动记录日志的基础设施,可以利用该特性对共享平台的操作进行记录。
3.3 基础设施层实现。档案信息资源共享平台的基础设施层主要是实现对数据库的底层操作,并实现通用操作的处理,如日志、多語言功能的实现。随着平台应用的深入以及平台的升级,对基础数据结构的变更以及新平台业务数据的迁移会是一项重要的工作,在该层上集成ORM框架并协同工作是解决档案信息数据处理问题的不错办法,目前常用的ORM框架是微软提供的Entity Framework,为了和该框架集成,需要到Nuget上下载Abp.EntityFramework 的包,然后新建一个独立的程序集,通过这个程序集调用下载的包和 EntityFramework。
3.4 Web与展现层实现。档案信息资源共享平台的展现层主要包括页面和业务接口,用户对平台的操作习惯由过去的电脑操作向手机操作转变,平台面对的目标用户由过去单一的桌面操作系统向移动应用操作系统转变。这就要求对外展现的页面需求也要同步转变,需要同时支持浏览器、移动手机客户端等主流终端,这就要求采用响应式前台页面设计,前台页面的设计与开发应当根据用户行为以及设备环境进行相应的响应和调整,前台页面调用后台数据通过接口的方式进行,这样保证了一套接口支持多种页面的实现方式。
*本文系2016年度教育部人文社会科学研究规划基金项目“大数据时代档案信息资源共享平台构建的研究”(项目编号:16YJA870001)研究成果之一。
参考文献:
[1]王素芳,胡必波.基于多层架构的ASP.NET 4 MVC 框架研究[J].电脑与电信,2015(10):64-66.
[2]郝树青,武彤.ABP框架及其在WEB项目开发中的应用[J].计算机技术与发展,2019(04):19-23.
[3]XU Luhang.Research on the value-passing method between pages under ASP.NET MVC mode[J].Applied Mechanics and Materials,2015,713-715:2398-2404.
[4]陈浩.ABP框架的体系结构及模块系统分析[J].电脑知识与技术,2016(32):45-46.
[5]卞咸杰.大数据时代档案信息资源共享平台数据交互服务的研究[J].浙江档案,2018(11):15-17.
[6]卞咸杰.档案信息资源共享平台数据处理流程研究[J].档案管理,2018(06):33-35.
[7]XianJie Bian,Xiaomei Lu.Research on Data Storage of Archives Information Resource Sharing Platform[J].Academic Journal of Computing & Information Science,2018,1(01):114-120.
(作者单位:盐城工学院学生处 来稿日期:2020-04-20)