1、优质文档新一代图书馆开放效劳平台FOLIO应用实践研究叶仁杰吴元业 摘 要 FOLIO是一个具有开展前景的新一代图书馆效劳平台。本文以深圳大学图书馆对FOLIO的应用实践为例,介绍FOLIO平台架构、核心网关OKAPI架构及运作流程、FOLIO应用程式开发实践,致力于为其他高校图书馆提供相关FOLIO的研究及实践经验。关键词 图书馆开放平台 FOLIO OKAPI 微效劳分类号 G250.7DOI 10.16810/jki.1672-514X.2023.02.007Research on Application Practice of New Generation Library Servic
2、e Platform FOLIOYe Renjie, Wu YuanyeAbstract FOLIO is a new generation library service platform with development prospect. Taking the application of FOLIO in Shenzhen University Library as an example, this paper introduces the framework of FOLIO platform, the framework and operation process of OKAPI
3、 core gateway, and the development practice of FOLIO application program, aiming to provide other university libraries with relevant researching and practical experience of FOLIO.Keywords Library service platform. FOLIO. OKAPI. Micro-services.0 引言随着信息技术在图书馆领域的深化应用,信息化建设的重要性日益凸显。目前,电子资源在馆藏中占据的比例急剧增长,
4、而传统的图书馆集成管理系统往往是基于纸本资源设计的,无法胜任电子资源采集、加工、保存、发现及获取等工作1。同时,越来越多的读者通过图书馆外的机构来获取信息,图书馆的纸本书流通率与咨询量越来越低,传统的图书馆集成管理系统无法满足读者的需求和行为方式的变化。图书馆管理系统应重新梳理并整合现有资源及业务,做好读者及图书馆管理人员的需求调研工作,利用好信息技术的开展,以满足读者个性化的阅读需求2。再者,传统的图书馆自动化集成系统由于系统结构老化、资源分散、孤岛系统多及升级维护难度高等原因,已无法满足图书馆管理和效劳的要求变化,理应升级转型成具备资源管理、流程管理及资源发现功能的新一代图书馆管理系统3。
5、平台化转型是新一代图书馆管理系统的开展趋势4,目前,国内暂无产品化的新一代图书馆效劳平台,而供应商开发的产品封闭且单一,无法满足图书馆的复杂业务迭代,且国内图书馆的创新驱动力缺乏,研发新一代的图书馆开放平台需要大规模的人力、物力投入,因而可从技术架构、产品特点、业务功能等多个方面,对国外产品进行借鉴5。FOLIO是EBSCO公司在2023年推出的开源图书馆效劳平台工程,是一个以微效劳架构为核心、以应用程式支持传统资源管理功能并扩展到新领域的创新平台。FOLIO具有模块化、灵活性好、可扩展性高及技术先进等特点,工程一经发布就受到国内外图书馆界的关注6。本文旨在通过对FOLIO平台应用实践的研究,
6、为FOLIO平台的本地化应用,以及符合国情的新一代图书馆系统的自主研发提供有益经验。1 FOLIO平台国内外研究与应用实践FOLIO的建设理念是图书馆和效劳供应商共同研究图书馆的未来开展及新技术的应用,以社区协作为导向,自2023年3月份开源LSP(Library Service Platform,图书馆效劳平台)工程以來,已有来自数十个国家的1000多名成员参加FOLIO社区。美国德克萨斯A&M大学图书馆院长David Carlson表示,FOLIO不仅改变了图书馆系统的市场环境,同时也改变了图书馆与供应商之间的关系,是图书馆系统开发的一项非凡创举7。目前,芝加哥大学、杜克大学、康奈尔大学等
7、高校图书馆参与FOLIO社区讨论,共同研究新一代图书馆效劳平台的开展方向;Index Data公司致力于电子资源模块的研发以及FOLIO架构的设计,为FOLIO平台提供技术支持;Ebsco公司为FOLIO平台的开展提供资金支持,保证工程的有序开展,同时还对工程进行方案指导和推广。此外,还有其他社会组织为FOLIO公司提供技术支持、托管效劳、软件开发等,各界组织协作构建FOLIO平台,共同打造一个可持续、开放的生态系统。在国内,亦有不少高校图书馆开启了对新一代图书馆效劳平台的研究及实践。重庆大学图书馆杨新崖等以重庆大学图书馆为实证研究案例,提出平台化转型是新一代图书馆管理系统的开展趋势,其应具备
8、平台化结构、资源整合及新技术应用的根本特征4。北京大学图书馆刘素清提出,国外产品的本地化应用实证分析及我国新一代图书馆系统的研发实践探索,是新一代图书馆系统研究的重要方向,新一代的图书馆系统需要图书馆界携手系统提供商、信息技术效劳商等多方共同研发5。厦门大学图书馆肖铮等对FOLIO平台的系统设计及技术架构进行研究,认为国内图书馆有必要关注FOLIO、尝试搭建并进行实践探索8-9。上海图书馆正在搭建基于FOLIO的下一代图书馆效劳平台FOLIO工程,并制定了2023、2023的相应开发方案。深圳大学图书馆亦在深入研究FOLIO平台与深大图书馆新一代管理系统的整合,目前已完成FOLIO平台的本地化
9、构建,并与新一代管理系统完成应用对接。CALIS从2023年3月便已开始对FOLIO的架构及核心模块进行研究,目前以FOLIO架构为根底的新一代图书馆效劳平台CLSP正在不断开展,并组织成立了CLSP建设联盟。CLSP平台已于2023年10月发布,倡导“大馆藏下的“大平台与“大联盟的建设,力求打造符合国情的开放平台和生态系统10。综上所述,FOLIO是一个具有开展前景的新一代图书馆服務平台。本文以深圳大学图书馆对FOLIO的应用实践为例,介绍FOLIO平台架构、核心网关OKAPI架构及运作流程、FOLIO应用程式开发实践,致力于为其他高校图书馆提供相关FOLIO的研究及实践经验。2 FOLIO
10、概述2.1 FOLIO平台简介FOLIO平台是一个供图书管理员、系统开发人员及供应商协作的开源平台,是一个现代化的技术生态系统,通过开源应用程式建立起可持续的多方协作,从而更有效地管理图书馆资源并创造收益。FOLIO工程旨在促进可持续的、以社区为导向的协作,积极创立现代技术生态系统,使图书馆通过开源应用程序来管理图书馆资源,发挥图书馆价值6。FOLIO平台主要具备3大特性。(1) 模块化:应用之间的交互快速便捷,用户可以自行选择所需应用,供应方和图书馆都可以开源或收费共享应用。(2) 灵活性:用户可以自行选择平台的运营方式,满足自己的开发需求。(3) 扩展性:FOLIO平台可轻易拓展各种应用系
11、统,如校园网、机构库、资源发现等。2.2 FOLIO平台架构FOLIO平台架构主要由4局部组成。(1)UI用户界面层:App的应用界面。(2)APP应用层:构建、拓展、应用各种应用程序,如流通、编目等图书馆传统效劳以及各种个性化应用。(3)OKAPI网关层:FOLIO的核心网关,管理和运行微效劳。(4) 系统层:实现各种根底业务逻辑,包括数据库配置、数据存储、索引、日志、租户管理等。2.3 核心微效劳网关OKAPI架构及运作分析微效劳架构是一项在云中部署应用和效劳的新技术,是一种将单体应用程序作为小型效劳开发的方法,每个单体应用程式都可以在“自己的程序中运行,并通过“轻量级设备与型API进行沟
12、通11。OKAPI是FOLIO管理和运行微效劳的网关,其核心为API网关模式,由OKAPI代理效劳实现,核心职责为身份验证、监控、负载平衡、缓存、请求整形和管理及静态响应处理。OKAPI通过提供具体的Web效劳端点和请求处理的详细信息,处理请求和响应实体、状态代码、错误条件等12。OKAPI的架构如图1所示,其核心是3大效劳。(1) 代理效劳(Proxy Service):管理模块信息、租户信息、接口与租户之间的关系信息并请求转发。(2) 发现效劳(Discovery Service):管理模块注册及启动信息。(3) 部署效劳(Deployment Service/Agent):管理模块运行。
13、其中OKAPI管理模块分为两种模式。(1) 托管模式:OKAPI根据模块的描述文件定义的内容,启动模块并通过进程ID监控模块的运行。(2) 代理模式:OKAPI仅负责请求的转发。FOLIO基于描述文件将模块挂接至OKAPI的代理效劳,其描述如下。(1)ModuleDescriptor.json:描述Module的根本信息(ID,名称等)、依赖信息、对外提供的API接口信息、版本信息等。(2)DeploymentDescriptor.json:描述Module的部署信息。以应用程式(选座日志系统) 为例,一个完整的OKAPI管理模块运作流程如图2所示。(1)通过ModuleDescriptor.
14、json、DeploymentDescriptor.json描述文件配置,使应用程式作为一个独立运行的模块托管挂接在OKAPI网关上。(2)用户或模块之间访问API时,OKAPI根据请求者所属的租客信息验证对应模块权限。(3)OKAPI网关根据模块注册的接口信息,向对应的接口进行调用。(4)OKAPI网关接收接口返回的响应信息并转发给发起请求者。在应用FOLIO前,建议对OKAPI进行部署练习,编译和运行OKAPI提供的测试例如模块(如okapi-test-auth-module、okapi-test-module,以及okapi-test-header-module),加深对OKAPI模块运
15、作流程的理解,并熟悉命令维护模块的模式。3 FOLIO根底平台构建FOLIO根底平台的构建需FOLIO自身提供的根底模块如下。OKAPI:API网关,负责管理和运行微效劳。mod-authtoken:负责过滤所有代理流量并检查有效令牌模块。mod-login:用户模块。mod-permissions:用户权限信息模块。mod-users:用户根底信息管理模块。mod-users-bl:以用户为中心进行数据简单访问的业务逻辑模块。通过整合FOLIO平台的部署、发布、配置等命令,配置租户及用户的信息描述文件,提取核心命令进行封装,并通过反射机制,获取应用程式内的对象信息,自动生成配置模块化所需信息
16、描述文件,实现启动FOLIO平台所需命令的深度整合,到达了“一键启动FOLIO平台的效果。其中FOLIO平台初始化流程如图3所示。在构建FOLIO平台的过程中,需注意以下几点。(1)FOLIO支持使用的数据库是MongoDB和PostgreSQL,如使用PostgreSQL作为平台数据库,其数据库版本需为9.6.6或以上,否那么会出现pgcrypto插件错误的问题。(2) 初始化FOLIO平台前,应先创立好相应的数据库用户,并分配其相应数据库权限,再根据FOLIO提供的数据库初始化命令,建立表及相应逻辑关系。(3) 初始化FOLIO平台时,注意在开启令牌拦截模块(authtoken)前完成添加租户及超级用户的操作,否那么会出现无法进入平台的问题。(4) 编写一份平台启动的