基于微服务架构的图书馆能力开放平台设计

2021-12-08 13:26徐华
无线互联科技 2021年19期
关键词:微服务虚拟化图书馆

徐华

摘 要:当前,各高校自建图书馆管理系统,其可靠性和可扩展性较低,不能适应图书管理工作快速发展的要求。文章基于微服务、DevOps、虚拟化等技术,提出了基于微服务的体系架构、基于数据中台的数据共享框架两个设计思路,图书馆能力开放平台架构包括基础资源层、数据共享层、应用融合层;其次,对架构的基础资源层、数据共享层、应用融合层进行了详细设计,并分析了各层的技术实现方法。通过应用分析,文章验证了该能力开放平台架构具有较好的敏捷开发能力、持续集成能力以及弹性扩展能力。

关键词:图书馆;能力开放平台;微服务;虚拟化

0   引言

随着社会发展和科技进步,图书馆在知识积累和知识查询工作中的作用越来越重要。为提升图书馆资源的利用率,方便读者对知识的查询和使用,数字图书馆已成为图书馆资源管理的发展趋势[1-2]。这种背景下,各个高校开始自建图书馆管理系统,对数字资源进行管理和使用。如何建设更加高效的图书馆管理系统,已成为当前的一个研究重点。杨思洛等[3]分析了国内外图书馆的发展趋势,研究结果表明,大数据和人工智能技术是图书馆数据资源管理和使用的关键技术。“十四五”规划纲已将大数据、人工智能等核心技术与各产业深度融合作为今后行业发展的方向。以教学工作为例,程玉等[4]提出了学生画像、个性化学习、学习效果评价等方面的大数据应用发展路径。考虑到图书馆数字资源的体量大、数据类型多样,曾文等[5]分析了科技大数据领域数据的特点,提出了提升数据清洗、存储效率的关键技术措施。为提升数字图书馆知识发现的效率,李洁[6]研究了知识发现算法,提出了数字图书馆知识发现服务的模式和策略。

通过对已有研究分析可知,当前研究主要集中在如何提升单个圖书馆管理系统的效率。但是,每个图书馆建立自己的信息化平台,在资源利用率、成本开销方面存在局限性。为了提升图书馆系统的可靠性和可扩展性,本文提出构建图书馆能力开放平台。首先提出了基于微服务的体系架构、基于数据中台的数据共享框架两个能力开放平台架构的设计思路。其次,提出了图书馆能力开放平台架构,该架构包括基础资源层、数据共享层、应用融合层。其次,对基础资源层、数据共享层、应用融合层3个层面进行了详细设计,并给出了实施建议。最后,对基于微服务架构的图书馆能力开放平台的应用方法进行了分析,验证了体系架构,较好地实现了图书数字资源的敏捷开发、持续集成和弹性扩展。

1 能力开放平台架构设计

1.1 设计思路

为提升图书馆对数字资源的管理能力,本文提出基于微服务架构的图书馆能力开放平台。该平台需要实现资源的可扩展、可维护、可共享3个目标。为实现3个目标,本文提出基于微服务的体系架构、基于数据中台的数据共享框架两个设计思路,下面进行详细介绍。

在基于微服务的体系架构方面,考虑到微服务架构与传统体系架构的区别是服务小、易扩展。微服务技术可以根据业务需求,将图书管理系统划分为多个独立的小服务,从而降低图书管理系统修改和维护的难度。另外,基于微服务技术,可以使平台支持Docker容器技术。在Docker容器技术环境下,虚拟机的粒度更小,可以根据需要进行迁移、关闭、扩容,从而显著降低资源消耗,提升硬件资源的利用率。

基于数据中台的数据共享框架方主要利用数据中台的功能丰富、便于共享两个优势。随着知识经济的到来,知识共享已成为推动社会发展和进步的关键要素。图书馆作为知识积累和共享的关键途径,数据共享已成为其发展的必然趋势。在数据共享领域,数据的安全是数据共享相关方最关注的问题。为了提升数据安全共享的能力,本文采用大数据技术对数据进行安全管理,采用数据中台技术实现数据的安全共享。

1.2 体系架构

图书馆平台架构如图1所示。从图1可知,现有的图书馆系统架构如图1(a)所示,每个图书馆构建自己的硬件平台、系统软件、应用软件。这种架构存在资源浪费、可维护性差等缺点。本文提出的图书馆能力开放平台架构如图1(b)所示,该架构包括基础资源层、数据共享层、应用融合层。

基础资源层包括云计算平台和PAAS平台两个模块。云计算平台层采用虚拟化技术,可以提升资源利用率和资源可靠性。云计算平台的按需扩展和动态迁移技术,可以根据每个图书馆的业务需求,对资源进行动态调整。数据处理层主要包括大数据平台层和数据中台层。大数据平台层主要实现数据的采集、传输、存储、管理等功能。数据中台层主要实现数据处理的共用功能。应用融合层包括微服务架构和DevOps架构。微服务架构可以将图书馆的系统进行拆分,得到多个互相独立的微服务。这种架构可以便于图书馆开发新功能。DevOps架构是基于微服务架构实现一站式开发的一组过程和方法。在DevOps架构下,图书馆系统的开发人员和IT运维人员可以整合为同一技术人员。在这种背景下,软件模块的开发、测试、发布、维护、更新的效率更高,更能适应当前的开发环境。

2 各层的设计与实现

2.1 基础资源层设计与实现

基础资源层的实现主要采用云计算技术和Docker容器技术。在云计算平台层,通过采用虚拟化技术,可以实现服务器、网络设备、存储设备的按需扩展和动态迁移。在服务器虚拟化方面,平台可以提供的资源包括计算资源池、弹性主机服务。在网络设备虚拟化方面,平台可以提供网络资源池、通信链路资源池。在存储设备虚拟化方面,平台可以提供存储资源池、异地容灾资源池。为保障云计算平台的可靠性和稳定性,平台提供负载均衡、安全管控等性能管理设备。

PAAS主要功能是根据业务需求,提供灵活的中间件服务。中间件服务主要采用Docker容器技术实现。Docker容器可以在云计算平台上申请资源。Docker容器的最大优点是申请的资源容量小、部署速度快,可以满足小型业务的计算资源、网络资源、存储资源的需求。采用Docker容器技术后,可以有效提升云计算平台资源的利用率和便捷性。

2.2 数据处理层设计与实现

数据处理层主要包括大数据平台和数据中台两个模块。大数据平台模块主要包括数据的基础操作功能、数据中间件两个子模块。数据的基础操作功能包括数据采集和传输、数据存储、数据治理等基本功能。数据治理主要是根据图书馆的预定规则,对数据进行规范化处理,便于数据在图书馆业务中使用。数据中间件模块主要包括数据处理的消息队列、提升数据处理速度的缓存服务等功能。

数据中台主要完成数据汇聚、数据可视化、数据提纯加工等数据处理的公共工作,便于各个图书馆可以快速方便地对数据进行处理。本文中数据中台主要功能包括常用的机器学习算法、语音识别算法、图像识别算法、数据可视化等数据处理功能。

在数据处理层的技术实现方面,当前大数据框架主要包括Hadoop,Spark,Storm,Flink,Samza,Presto五种。根据对各种框架的应用场景、用户人数等特征比较,本文选择Hadoop作为数据存储平台,Spark作为大数据分析架构。Hadoop主要技术包括MapReduce、HDFS、Yarn三种。其中,MapReduce作为分布式计算技术,HDFS作为分布式文件存储系统,Yarn作为高效的资源调度工具。在Spark架构方面,平台可以采用Scala,Java,Python等语言作为数据分析语言。考虑到人工智能技术领域使用最多的语言为Python,所以本文采用Python语言作为数据分析语言。

2.3 应用融合层设计与实现

应用融合层主要功能是为图书馆提供常用的应用开放功能。例如,图书馆数据业务功能服务接口、业务接口开发规范、大数据应用子系统、知识图谱算法库等常用的应用接口和子系统,主要由微服务架构和DevOps架构两种技术实现。微服务架构的实现一般包括服务注册、服务发现、服务负载均衡、服务网关4个关键要素。当前可以实现微服务架构的管理框架较多,Dubbo和Spring Cloud是当前使用比较广泛的两种架构[7]。

考虑到平台的易用性,本文选择Spring Cloud作为微服务架构的管理框架。在服务注册和服务发现方面,平台使用Eureka实现注册中心功能。Eureka可以为用户提供开放的API,便于用户将服务注册到注册中心,用户也可以在注册中心查找感兴趣的服务,并通过API进行调用。在采用Eureka实现注册中心功能时,平台通过构建Eureka Server,Service Provider,Service Consumer 3个角色,可以实现服务的注册和使用。Eureka Server可以实现服务的注册和发现功能,Service Provider可以实现服务的提供功能,Service Consumer可以实现服务的使用功能。在服务的负载均衡方面,平台使用Ribbon组件实现服务的负载均衡功能。Ribbon组件根据服务使用情况,可以自动执行服务负载均衡策略、服务超时重试策略,从而平衡已注册的各个服务的调用关系,提升系统的性能。在服务网关的配置方面,本文使用Zuul技术来实现。Zuul组件可以采用RESTAPI接口对外提供服务,有效降低各个服务之间因接口不同导致服务访问失败的概率,提升了服务的可靠性。

3 应用分析

为提升本文提出的基于微服务架构的图书馆能力开放平台的可用性,本小节对如何使用此平台进行分析说明。从本文提出的平台设计框架可知,搭建平台的基础资源层、数据共享层、应用融合层,可以提升图书馆资源管理平台的可扩展性、可维护性、可共享性。

搭建基础资源层需要支持虚拟化技术的硬件环境。所以,在采购基础网络资源、服务器资源、存储资源时,需要首先考虑的参数指标是对虚拟化技术的支持。在数据共享层面,平台考虑到大数据技术和数据中台技术包含的内容较多,在部署数据共享层时,尽量采用市场占有率较高的开源技术。这种部署策略可以有效提升数据共享层的可靠性和可扩展性,也便于后期对平台的维护和使用。对于应用融合层,微服务的架构和相关技术已在文中描述。需要注意的关键问题是应用的微服务化。因为微服务主要的优势是将大型软件划分为多个独立的子模块,便于一站式开发和应用。但是,如何进行服务的划分,是一个比较有挑战性的工作。所以,在应用融合层,尽量邀请实施经验丰富的业务专家和技术专家对业务需求进行分析,制定符合业务发展需要和技术架构的应用融合功能。通过上述分析可知,本文提出的基于微服务架构的图书馆能力开放平台,较好地提升了图书数字资源管理平台的敏捷开发能力、持续集成能力以及弹性扩展能力。

4 结语

随着信息技术的发展,图书馆中的数字资源快速增加。图书馆为了满足数字资源的存储和使用需求,开始加大图书馆软硬件资源的建设。但是,自建图书馆管理系统存在可靠性低,不便于扩展等问题,不能有效满足当前图书管理工作快速发展的要求。为解决此问题,本文提出构建图书馆能力开放平台,对该平台的基础资源层、数据共享层、应用融合层进行了详细设计,并给出了实施建议。在大数据时代下,图书馆的数字资源需要共享和使用,才能发挥数字资源的价值。下一步工作中,基于本文的研究成果,采用大数据挖掘和人工智能分析技术,研究图书馆数字资源的共享机制,从而发挥图书馆数字资源的价值。

[参考文献]

[1]王秀艳.国外智慧图书馆研究的热点主题和发展趋势分析[J].情报探索,2019(8):129-134.

[2]尚丽,李玉巧.我国智慧图书馆研究演进路径、热点与趋势分析[J].图书情报导刊,2019(10):68-73.

[3]杨思洛,董嘉慧.国内外智慧图书馆研究热点及发展趋势探究[J].现代情报,2020(11):167-177.

[4]程玉,胡凡刚,吴运明.教育大数据价值体现、问题反思与发展路径[J].软件导刊,2020(5):281-284.

[5]曾文,车尧.科技大数据的情报分析技术研究[J].情报科学,2019(3):93-96.

[6]李潔.数据驱动下数字图书馆知识发现服务创新模式与策略研究[D].吉林:吉林大学,2019.

[7]张树新,吴海斌,蒙辉,等.基于SpringCloud的航运EDI平台IT生态环境设计[J].中国储运,2018(2):100-103.

(编辑 王永超)

猜你喜欢
微服务虚拟化图书馆
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
图书馆
虚拟化技术在计算机技术创造中的应用
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
从单一模式系统架构往微服务架构迁移转化技术研究
存储虚拟化还有优势吗?
去图书馆