APP下载

基于微服务的智能档案服务系统设计与实现

2018-03-29黄嘉诚董晶

电子设计工程 2018年2期
关键词:知识库信息管理系统检索

黄嘉诚,董晶

(华北计算技术研究所公共安全系统部,北京100083)

随着互联网和信息通信技术的迅猛发展,档案数据信息化建设正在如火如荼地进行。其中档案信息管理系统是档案信息化建设的核心,如何增强档案信息管理系统的智能化和稳定性是本文的主要研究方向。

微服务(micro-service)是近年来软件开发领域兴起的一种新型软件架构。相对于过去采用SOA思想开发的单体式(monolithic)应用来说,微服务化其实就是进一步分布式和去中心化,目的是提高开发敏捷性,适应越来越快速的技术迭代。微服务架构最重要特点在于业务系统的彻底组件化、服务化。原有的单体式应用被拆分为多个独立设计、开发和维护的微服务。这些微服务通过RESTful的API互相调用。

每个服务从UI到控制层、逻辑层再到数据库访问都完全独立。每个服务除了完成自身的任务之外,还可以调用其他微服务提供的功能,同时将自身的能力向外发布为服务。微服务系统架构不再强调传统SOA架构应用中比较重的ESB企业级服务总线,将SOA的思想应用到单个业务系统内部实现真正的组件化。其主要优势体现在以下几点:

1)由于微服务化架构的每一个服务都由消息驱动的API定义了清楚的边界,单个服务的开发和维护可以由单独的团队完成,易于开发和维护。2)单个服务的开发可以采用独立的技术来完成,开发者可以自由选择合适的技术进行开发,只要能够提供符合要求的API就够了。由于每个微服务都相对简单,采用新技术重新开发也不会像从前那么困难。3)各个服务可以独立部署,加快部署速度,UI团队可以采用AB测试,快速的部署变化,微服务架构模式使得持续化部署成为可能。4)每个服务都可以独立地进行扩展。开发者可以根据每个服务不同的需求来提供满足需求的规模,甚至可以使用针对某个服务专门优化的硬件,极大提升软件速度和服务的质量。

另外,个性化服务理念是当前档案馆服务中“以人为本”思想的重要体现。实现以人为本的人性化服务,首先要转变服务理念,以档案利用者为服务对象,采用信息技术为其提供更精准的个性化服务。针对档案数据的个性推荐功能,该系统采用apriori算法和互信息计算为底层算法构建了档案数据利用的知识库。知识库作为数据检索领域常用的数据组织形式,受到了国内外很多研究机构的重视,很多组织例如Google、微软、百度等都建立了庞大的知识库并在此基础上构建了多种应用系统。本文通过一个独立的微服务,基于档案检索历史数据,学习并总结出档案数据之间的关联并形成知识存储在档案数据知识库中。并基于此为用户提供档案检索结果的智能化推荐,进一步提升了档案信息管理系统的智能化程度。

1 智能化档案信息服务系统的功能设计

微服务化档案信息管理系统在功能设计方面,需要根据实际情况,将原有档案管理系统的功能进行充分解耦,形成小服务群。这些小的服务彼此独立,单独部署,并都可以完成自身的任务。每个小服务都是从交互、业务逻辑再到底层存储,独立形成一个应用。每个小应用之间通过互相调用API实现通信。

本档案信息管理系统的功能设计如图1所示。

图1 智能档案信息管理系统功能设计

传统档案信息管理系统的功能更偏向于档案数据管理方,考虑的主要方面在于如何管理档案,而对于数据利用方来说,其提供的服务相对较少。本系统通过档案利用知识库的建立,根据档案利用的历史知识数据和用户的检索行为,提供智能化检索结果推荐。

2 智能档案服务系统的系统架构设计

2.1 当前档案服务系统的缺陷

当前档案信息服务系统的缺陷主要体现在两个方面,一个体现在单体式应用的系统架构方面,另一个则体现在智能化个性化服务的缺失方面。

2.1.1 系统架构缺陷

现在正在使用中的档案管理系统,绝大多数属于单体式应用系统。从系统架构角度来讲,从用户交互,到后台服务再到数据存储,通常采用一体化开发,各个功能模块之间耦合度过高。这样的系统一是难于维护,各个功能之间没能很好的解耦,往往维护起来牵一发而动全身。二是这样的系统在添加新的功能时,需要在原有的代码中新增模块,而新增的模块往往又会调用原有的服务,进一步增加的系统的耦合程度和复杂程度。以笔者曾参与开发和维护的一个档案馆信息管理系统为例。其采用的是传统的企业级应用开发模式,即MVC三层架构,基于SSH编程框架开发。其项目架构如图2所示。

图2 某档案信息管理系统架构

尽管这也是模块化开发逻辑,但最终依然会打包成单一的war包,部署在统一的Tomcat服务器上。这种应用开发风格非常流行,因为IDE和其它工具都擅长开发一个简单应用,这类应用也很易于调试,只需要简单运行此应用,用Selenium链接UI就可以完成端到端测试。单体式应用也易于部署,只需要把打包应用拷贝到服务器端,通过在负载均衡器后端运行多个拷贝就可以轻松实现应用扩展。在早期这类应用通常运行的很好。但到开发的后期,由于不断添加新的功能,这类系统会变成一个“庞然大物”,不利于软件的开发和维护。由于没有某单个开发者能够完全理解整个大的系统的全部代码,这会导致开发维护团队工作起来非常地“艰辛”,修正问题和新增功能变的非常困难,同时又非常耗时。另外,随着应用的不断扩大,应用启动的时间也会越来越长,有些应用的启动时间会达到几十分钟,生产效率受到极大的影响。单体式应用另外一个问题是可靠性。由于所有模块都运行在一个进程中,任何一个模块中产生内存泄露,将会有可能弄垮整个进程。最后,单体式应用使得采用新架构和语言非常困难。比如,对于上面笔者提到的例子,该系统有大约两百万行代码。这时开发团队如果想改用其它更好的框架,无论是时间还是成本都是非常昂贵,这是一个无法逾越的鸿沟。开发者就不得不在最初选择面前妥协,继续维护这个陈旧的庞然大物,或者干脆推倒重来。

综上所述,笔者认为这种开发架构越来越不适应现在的应用开发形势。随着新技术产生的速度越来越快,如何充分解耦整个系统,同时又能兼顾鲁棒性,必然成为软件开发领域未来的发展方向。在后面的章节,本文会简要的介绍微服务化系统架构的优势,以及如何采用微服务架构实现一个全新的档案管理系统。

2.1.2 智能化服务的缺失

正如谷歌公司首席经济学家所说,在当前的大数据时代,我们不缺少数据,缺少的是在浩如烟海的海量数据中发现价值的能力。同样笔者认为,对于当前的档案数据来说,其中的价值并没有的到很好的挖掘和开发。对于档案数据,档案馆最重要的任务就是如何管理好和利用好档案数据。目前档案馆对于数据的管理和利用存在短板,主要体现在档案数据关联程度低。根据笔者调研,目前的档案管理系统多数存储的数据为档案标题,类别,时间等属性数据。提供的功能仅限于根据这些属性,配合查阅权限等业务流程进行档案检索。检索的结果包括档案是否可用,档案的位置等信息。这种检索从根本上来说并没有很好的利用档案数据电子化的优势,原因在于这些业务逻辑其实和纸质档案系统中是完全一样的。这种检索仅仅把原始的服务转移到了线上,用来提高检索的速度,却并没有利用这些数据资源建立档案之间的关联体系,实现智能化检索。

基于此,笔者希望能够利用数据关联技术,实现一种档案利用知识库。文中探索了一种基于检索历史和档案类别建立的档案数据知识库,提升档案检索的的智能化程度。

2.2 智能档案信息管理系统的架构设计

由于整个系统被分成多个相互独立的小应用,所以在系统架构设计方面,应分成两个层次,即小应用层面的架构以及整个系统的架构。

2.2.1 独立微服务的架构

每个独立的服务都拥有自己的一套业务逻辑和数据库,对外提供符合整个系统需要的API进行交互。我们以目录著录功能的微服务为例,其组织架构如图3所示。此应用在交互层面,只针对档案目录的著录人员。其API设计采用REST设计,对著录人员提供档案目录数据的增删改查等操作,同时对整个系统中的其它应用提供与功能相适应的API。其架构图如图3所示。

图3 独立微服务的架构

2.2.2 系统的整体架构

微服务化系统的整体架构由多个独立的小应用组成,应用之间可以互相调用其向外提供的API实现数据的交换。

系统的体系架构图如图4所示。

图4 档案信息管理系统的整体架构

对于目录检索用户来说,其检索结果不仅由某一个微服务提供,而是包括了目录著录、结果推荐等多个微服务的数据。对于这种情况,我们采用API Gateway服务器负责请求转发、数据整合以及协议转换。所有来自于用户的请求都会先经过API Gateway,然后路由这些请求到对应的各个微服务。API Gateway再将这些数据整合,提供给客户端一个粗粒度的API,实现分布式微服务架构对用户的透明性。

3 档案检索结果个性化推荐的实现

档案数据知识库是本档案信息系统提供智能化检索服务的基础。通过对检索历史的记录与分析,向用户提供有价值的检索建议。档案数据知识库实质上是一个档案数据之间的关联体系,它可以存储关联紧密的档案类别,或者档案之间的联系,并在用户检索其中一项时向其推荐其他数据。建立档案知识数据库主要可以采取两种方式。第一种是人工添加,即根据档案工作人员以往的工作经验,总结出哪些档案类别或者档案经常会同时使用,然后将其存储为一条知识到档案数据知识数据库中。这种方式局限性比较大,较依赖于工作经验丰富的档案工作人员,并且不够全面。为了解决这个问题,本档案信息管理系统使用了Apriori算法和互信息计算法,通过两种算法的计算来发现档案之间的关联关系。

3.1 档案数据知识库的建立

Apriori算法是广泛应用于关联挖掘领域的算法,它通过计算候选集和情节的向下封闭检测两个阶段来挖掘频繁项集。知识学习微服务通过Apriori算法计算关联关系的过程如图5所示。

图5 Apriori算法获取档案检索频繁项集

通过Apriori算法计算得到的知识需要通过第二步,即互信息计算最终确定该条知识是否具有客观价值和合理性。互信息是信息论领域一种重要的信息度量,它用来表示一个随机事件的发生对另一个随机事件发生概率的影响。形式化的解释为:设有两个事件X、Y,已知事件X的发生的概率为P(X),当事件Y发生时,事件X发生的概率变为P(X|Y),即Y发生是X的条件概率。则X、Y的互信息量S为事件X发生概率的改变量,即P(X|Y)-P(X)。S的绝对值越大,说明事件X、Y之间的的关系越紧密。S的值正向越大,说明事件X、Y同时发上的可能性就越大,S的值负向越大,则说明X、Y的发生越互相排斥。

我们通过计算一条知识中各个档案被检索这个事件之间的互信息,来检验其合理性。如果两个事件之间的互信息量值达到一定数值,我们便可以推测出这两类档案被同时检索的可能性较高,进而确认这条知识的可信性。

档案数据知识库的建立也得益于本系统的微服务化架构模式。由于Apriori算法和互信息计算需要占用较大的服务器计算资源,如果采用单体应用架构,会极大的影响系统的性能和稳定性。通过采用微服务化架构,各个服务单独部署,彼此的运算资源隔离并可以按照需求部署,提高了系统在运算方面的能力。

3.2 智能化检索的服务流程

智能化检索的服务流程如图6所示。

图6 档案利用者检索流程

用户通过客户端,网页或智能终端发送检索请求,API Gateway获取请求,分解为细粒度请求分发给各个微服务。接着各个微服务返回数据到API Gateway进行整合,返回给用户。

4 结束语

文中针对笔者在实际档案信息管理系统的开发和维护工作中遇到的问题,即单体式应用开发维护难度高、技术陈旧并难以采用新技术以及档案数据关联体系的缺失,智能化程度低等问题,提出了包括采用Apriori算法和互信息计算来建立档案关联知识库,以及其他独立服务群的微服务化体系架构的档案信息管理系统的设计。

其中知识学习微服务和结果推荐微服务在档案管理系统中已经部署并运行。在实际应用中,知识学习微服务确实能够发现一些档案利用的规律,并应用于检索结果的推荐中。例如某档案馆某一段时间内办理离退休职工劳动保障工作的人较多,经过计算得出某几类档案是在办理这类服务中需要使用的,系统便可以在检索结果推荐中将其他几类案卷推荐给档案利用人员,提升了检索的效率和智能化程度,方便了档案利用者和档案服务人员的工作。在接下来的工作中,会陆续将其他微服务开发和部署完毕,并在实际的工作环境中投入使用。

[1]David Sidoti, DFM Ayala, S Sankavaram.etc.Decision Support Information Integration Platform for Context-Driven Interdiction Operations in Counter-Sumuggling Missions[C].IEEE/SICE International Symposium on System Integration,2015:659-664.

[2]刘晓光,刘剑锋,兰洁.基于Openfire服务器用户行为审计插件设计与实现[J].电子设计工程,2016,24(13):7-12.

[3]周云飞,刘立明.基于Openfire、SparkWeb构建即时消息平台[J].电脑知识与技术,2015,11(3):121-124.

[4]徐署民,张伟.JAVA中即时通讯内容扩展研究[J].软件导刊,2015,14(12):1-4.

[5]冯玉平,王曙光.基于Android的手机定位软件[J].计算机与现代化,2015(2):11-13.

[6]骆子玉,洪璇.AES算法在多核的安卓平台下的改进及应用[J].计算机应用与软件,2017(1):209-213.

[7]陈希,腾玲,高强,等.NTP协议和PTP协议的时间同步误差分析[J].宇航计测技术,2016,36(3):35-40.

[8]沈奎林,杜瑾.基于Openfire+Spark构建IM实时交流平台[J].现代图书馆情报技术,2011,5:83-87.

[9]张庆阳,杨阳,程久军,等.基于手机动态密码的计算机使用权限管理机制[J].信息网络安全,2014(8):46-51.

[10]蔡宇东,沈海斌,严晓浪.AES算法的高速实现[J].微电子学与计算机,2004,21(7):83-85.

[11]赵科佳,张爱敏,宁大愚.基于NTP协议的网络时间服务系统的实现[J].电子测试,2008(7):13-16.

[12]王艳敏,李永忠,吕少伟.Android平台下文件透明加密技术的研究与实现[J].计算机技术与发展,2014,24(9):137-140.

[13]MILLSDL.Network timeprotocol(version 3)specification,implementation and analysis[R].NetworkWorkingGroupReportRFC-1305,University of Delaware,1992.

[14]王圣东,方建勇,刘新友.基于NTP协议的一种校时实现及相关算法[J].指挥控制与仿真,2011,33(1):101-103.

[15]Joan Daemen,Vincent Rijmen.AES Proposal:The Rijndael Block Cipher[EB/OL].2017-03-03.

[16]Ray Hunt.Security Testing in Android Networks-A practicalCase Study[C]//IEEE International Conference on Networks,2013,121(1):1-6.

[17]Y Wang, Y Chen, M Yang,Researchand Application of XMPP-Based Modules in B/S Architecture[C]// Inernational Conference on Computational and Information Sciences,2013:1562-1565.

[18]杨化志,许兰,李培峰等.基于IPQueue的即时通信协议还原系统的设计与实现[J].计算机应用与软件,2012,29(3):46-51.

[19]曹新莉,侯晓翔,王树朋.基于改进灰色关联分析单步差拍控制法的APF应用与分析[J].陕西电力,2014(3):9-14.

[20]李元林,文跃秀,王子力.基于博弈论与灰色关联分析法的城市配电网安全综合评价[J].陕西电力,2013(10):5-9.

猜你喜欢

知识库信息管理系统检索
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
基于三维TGIS的高速公路综合信息管理系统
2019年第4-6期便捷检索目录
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
人事档案信息管理系统的设计与实现
高速公路信息系统维护知识库的建立和应用
专利检索中“语义”的表现
基于Drupal发布学者知识库关联数据的研究
国际标准检索