李海燕 吳元業(yè) 崔一鳴
摘要:機構(gòu)學者庫受到越來越多圖書館和科研機構(gòu)的關注,文章構(gòu)建了一個基于微服務架構(gòu)的機構(gòu)學者庫平臺,依托成熟的開源框架,采用Spring Boot框架搭建后端微服務,前端基于React,采用Ant Design框架,實現(xiàn)平臺的高度可擴展及敏捷開發(fā),并就平臺建設中的姓名消歧問題進行設計,系統(tǒng)運行良好,可為機構(gòu)學者庫建設提供借鑒和參考。
關鍵詞:微服務;機構(gòu)學者庫;姓名消歧;Spring Boot;Dubbo
中圖分類號:TP311;G251? ? 文獻標識碼:A? ? 文章編號:2096-4706(2021)07-0010-04
Design and Implementation of the Institutional Scholar Base Platform Based on Microservice Architecture
LI Haiyan,WU Yuanye,CUI Yiming
(Shenzhen University Library,Shenzhen? 518060,China)
Abstract:The scholar base has received the attention of more and more libraries and scientific research institutions,and the article has built a institutional scholar base platform based on microservice architecture,relying on mature open source framework,using the Spring Boot framework to build back-end microservice,front-end based on React and uses Ant Design framework,and the platform can implement agile development and be highly scalable. Then,designing algorithm of name disambiguation for the platform,the system is well operating,and can provide experience and reference for the construction of institutional scholar base.
Keywords:microservice;institutional scholar base;name disambiguation;Spring Boot;Dubbo
收稿日期:2021-03-09
基金項目:深圳大學校級青年扶持項目(Q NFC1948)
0? 引? 言
機構(gòu)學者庫以機構(gòu)學者為中心,對學者的研究成果、學術(shù)活動等結(jié)構(gòu)化數(shù)據(jù)進行收集、存儲和管理,旨在以各種方式將分布在不同系統(tǒng)的數(shù)據(jù)進行整合,并通過可視化的統(tǒng)計及分析功能滿足眾多個性化需求[1]。機構(gòu)學者庫的建立有利于高校圖書館或科研部門對學術(shù)數(shù)據(jù)進行長久存儲,并在此基礎上,按學院、學者、成果類型、時間等維度進行成果統(tǒng)計,分析各學科的科研趨勢,提供精準的學科服務,更長遠的目標是通過展示學者的研究成果提升學者的影響力,進而促進學者間的合作。
在當前學者庫建設過程中,學者成果數(shù)據(jù)往往由學者自主提交,學者參與感不強,即使有政策鼓勵,也難以保證時效性[2]。部分支持管理員批量導入,系統(tǒng)自動或人工匹配后發(fā)給學者認領,但是受學者姓名歧義問題困擾,工作量較大。特別是英文文獻,存在同一作者對應多個英文名,不同的學者有同樣的英文名等問題,系統(tǒng)輔助消歧顯得尤為重要。學者成果除論文、專著外,開始向?qū)@麅A斜,并考慮將專題講座、課程教學演示文稿等階段性成果納入學者的個人成果,故機構(gòu)學者庫平臺應靈活可擴展,能敏捷開發(fā),迅速迭代,滿足邊建設、邊使用、邊完善的要求。
綜合以上問題,筆者提出了基于微服務架構(gòu)的機構(gòu)學者庫平臺建設,并針對平臺建設中的姓名消歧問題進行設計,系統(tǒng)具有高可擴展性、可為其他圖書館和科研機構(gòu)提供建設參考。
1? 微服務開發(fā)框架搭建
微服務架構(gòu)是一種把單體應用拆分成各種獨立可運行服務的架構(gòu)方式,這些服務通過輕量級協(xié)議通信。其有以下優(yōu)點[3]:
(1)服務粒度小,聚焦解決具體業(yè)務,業(yè)務清晰,易于開發(fā)與維護。
(2)每個服務獨立部署,松耦合,能持續(xù)交付和優(yōu)化。對某個微服務進行修改,只需要重新部署這個服務即可,不影響整體框架。
(3)按需收縮,可根據(jù)需要實現(xiàn)粒度擴展,如某個服務吞吐量較大,可增加內(nèi)存或升級CPU等。
使用微服務架構(gòu),可以使平臺更加靈活,易于持續(xù)維護和擴展。
1.1? 相關框架介紹
本平臺采用開源框架Spring Boot、Duboo、Ant Design來搭建,各框架特點如下:
(1)Spring Boot。Spring Boot[4]繼承了Spring框架優(yōu)勢,幫助開發(fā)者更容易創(chuàng)建基于Spring的應用程序和服務,擁有良好的可擴展性。Spring Boot提供spring-boot-starter-web.jar,嵌入了Tomcat,簡化了項目的部署,同時可以支持使用Spring MVC的注解。實現(xiàn)自動配置,不用進行復雜的xml配置。
(2)Dubbo。Dubbo[5]是阿里巴巴公司開源出來的一款輕量級、高性能的Java RPC框架,能與Spring框架無縫對接。
(3)Ant Design?;赗eact的Ant Design[6]提供的組件構(gòu)建,React使代碼呈現(xiàn)模塊化,可維護性高。Ant Design是螞蟻金服開發(fā)和正在使用的一套服務于企業(yè)級產(chǎn)品的界面設計組件,通過模塊化的解決方案,降低生產(chǎn)成本,讓設計者專注于更好的用戶體驗。
1.2? 基于微服務架構(gòu)的機構(gòu)學者庫平臺搭建
本平臺依托于成熟的開源技術(shù),采用Spring Boot+Dubbo搭建微服務架構(gòu),基于React的Ant Design用于搭建界面,實現(xiàn)多層設計,業(yè)務分割。邏輯架構(gòu)圖如圖1所示。系統(tǒng)的前端使用Ant Design,擁有開箱即用的高質(zhì)量React組件,界面設計快捷,分層清晰,易學易用。與傳統(tǒng)的B/S單體架構(gòu)相比,基于微服務架構(gòu)的機構(gòu)學者庫平臺,將系統(tǒng)分成應用層、服務層、數(shù)據(jù)持久層、數(shù)據(jù)層四層。將具體的業(yè)務需求抽象成邏輯服務,如學者信息管理、論文作者核對、論文地址核對等,這些業(yè)務服務基于Dubbo形成微服務,注冊到Zookeeper中,應用層借助Spring Boot開發(fā)框架,將抽象出的服務以Rest API或WebService的方式提供給第三方系統(tǒng)對接,便于定制開發(fā),使系統(tǒng)具有高可擴展性。
2? 平臺建設內(nèi)容
2.1? 基本功能
經(jīng)過需求收集和分析,本平臺建設基本功能如下:
(1)登錄認證體系。通過標準化接口,對接機構(gòu)統(tǒng)一身份認證體系,實現(xiàn)校園卡號/工號登錄。
(2)用戶管理。增加、禁用用戶;設置角色,用于設置用戶模塊訪問的權(quán)限;設置審校權(quán)限,用于審校其他用戶的工作等。
(3)參數(shù)設置。設置系統(tǒng)參數(shù)如服務站點、文件存放路徑、登錄失效鎖定次數(shù)、鎖定周期等。
(4)機構(gòu)學者庫主要業(yè)務模塊。
文件上傳模塊:分為導入文獻數(shù)據(jù)平臺下載的文件和導入已知的收錄號兩種導入模式,并設置收錄類型、收錄時間。文獻數(shù)據(jù)平臺文件導入后,可先進行系統(tǒng)的自動清洗、查重等,并完成系統(tǒng)的自動消歧。導入已知收錄號,可處理該批次的統(tǒng)計結(jié)果。
文件管理模塊:已上傳文件的查看、打標簽、分配給其他館員處理、導出該批次的統(tǒng)計結(jié)果等。
核對模塊:分未核對列表、部分核對列表、核對完成列表、所有核對列表、核對存疑列表等子模塊,支持按序號、收錄號、作者名、導入文件名、學者核對等信息檢索;上次核對即為詳細的核對頁面,包括核對地址和核對作者,核對地址支持查相似地址、學者單位,用于輔助地址核對;核對作者支持按作者模糊查詢,并支持按作者全稱和簡稱查詢,大大地提高了人工核對效率。核對存疑列表用于存疑數(shù)據(jù)的備注、統(tǒng)計及導出。
日志服務模塊:按核對人、核對類型、時間區(qū)間,統(tǒng)計個人的完成數(shù)量及完成時間。
統(tǒng)計服務模塊:支持按導入的文件統(tǒng)計、按第一作者統(tǒng)計、按通訊作者統(tǒng)計、按所在引文數(shù)據(jù)庫等等,根據(jù)需要進行篩選,并生成統(tǒng)計報告。支持按需導入,如學科CNCI和FWCI文件等。
2.2? 主要數(shù)據(jù)庫表設計
經(jīng)過對系統(tǒng)平臺功能進行分析,系統(tǒng)配置及權(quán)限相關表:系統(tǒng)權(quán)限表sys_permission、系統(tǒng)配置項表sys_parm、菜單表sys_menu、菜單角色關聯(lián)表sys_menu_role、角色表sys_role、角色權(quán)限表sys_role_permission、用戶表sys_user、用戶角色關聯(lián)表sys_user_role等。
業(yè)務相關表:學者信息表szu_hrinfo、學者機構(gòu)表szu_org、機構(gòu)類型表szu_orgtype、學者別名表szu_hrinfo_alias、文獻信息表p_articleinfo、文獻詳情表p_articledetail、文獻作者表p_author、文獻批量文件p_file、文獻地址表p_org、文獻地址作者關聯(lián)表p_org_author、工作日志表p_work_log等,數(shù)據(jù)庫采用MySQL,主要業(yè)務數(shù)據(jù)庫表詳情見有表1、表2、表3。
2.3? 作者姓名消歧
針對成果里英文作者對應的中文學者消歧困難的問題,設計學者消歧算法,實現(xiàn)系統(tǒng)輔助消歧。本系統(tǒng)以Web of Science數(shù)據(jù)庫數(shù)據(jù)為深圳大學科研處及各學院提供數(shù)據(jù)分析。
作者姓名消歧分為先驗數(shù)據(jù)處理、待消歧數(shù)據(jù)預處理、作者姓名消歧流程三個階段,具體如下:
(1)先驗數(shù)據(jù)處理。對接本單位的人事接口,獲取學者的基本信息如:校園卡號、姓名、性別、單位、出生日期、入職日期、在崗狀態(tài)等存入本系統(tǒng)的學者信息表,并通過漢語拼音著者號碼表,將學者的姓名轉(zhuǎn)成對應的拼音,生成“姓全拼+‘,+名全拼”格式及“姓全拼+‘,+名首字母”格式存入學者別名表,作為學者匹配的先驗數(shù)據(jù),符合大部分期刊英文文獻命名規(guī)則。
(2)待消歧數(shù)據(jù)預處理。先根據(jù)文獻地址獲取屬于本機構(gòu)的作者姓名;然后進行作者數(shù)據(jù)清洗,處理數(shù)據(jù)中“-”“.”空格等特殊情況,標準化后作者名存入文獻作者表。
(3)作者姓名消歧流程。消歧過程如圖2所示,系統(tǒng)消歧成功后,系統(tǒng)自動填入消歧數(shù)據(jù),由人工核對確認無誤后,修改核對狀態(tài),并將作者名補充到學者別名表;對于系統(tǒng)消歧失敗的,由人工核對,利用地址相似性匹配單位,利用作者名進行模糊查詢,匹配成功則修改核對狀態(tài),并將作者名補充到學者別名表;否則標注存疑信息,導出與各單位核對。
3? 實施情況與效果
深圳大學圖書館機構(gòu)學者庫自2020年8月份上線以來,運行穩(wěn)定,效果圖如圖3所示,處理Web of Science數(shù)據(jù)庫收錄的發(fā)文單位為“Shenzhen Univ”和“Shen zhen Univ”的文獻,共完成26 785篇論文的核對(截至2021-01-10),為學校及各學院提供了多份數(shù)據(jù)報告,大大提高了館員的工作效率。
本系統(tǒng)處理數(shù)據(jù)年份從2020年開始處理,并陸續(xù)回溯舊數(shù)據(jù),如表4所示,按處理次序從左至右列出數(shù)據(jù),通過作者姓名消歧算法,隨著存量數(shù)據(jù)的增加,自動消歧的成功率逐步提高,經(jīng)過相似單位及模糊學者查詢輔助人工核對,作者消歧成功率在97.8%以上。
4? 結(jié)? 論
機構(gòu)學者庫的建設與應用是循序漸進、相輔相成的動態(tài)過程,本平臺基于微服務的架構(gòu),可以滿足“邊建設、邊使用、邊完善”原則,實現(xiàn)機構(gòu)學者庫的構(gòu)建與應用同步進行。同時為姓名消歧設計切實可行的算法,實現(xiàn)自動消歧,并輔助人工核對,完成學者成果的歸屬,為其他圖書館和科研機構(gòu)提供可借鑒的方案。
未來在數(shù)據(jù)建設方面,支持多種成果類型的抓取、錄入,并開放學者自主填報及認領功能,協(xié)同實現(xiàn)數(shù)據(jù)的高質(zhì)量建設。支持與第三方對接,與查收查引平臺對接,完成學術(shù)數(shù)據(jù)的同步更新;與職稱申報平臺對接,完成學者的學術(shù)成果補充。
進一步完善學者姓名消歧算法,在本算法的基礎上,利用二三級機構(gòu)、合著者、研究方向等特征,進行深度的自動消歧,進一步提高自動消歧的成功率。
參考文獻:
[1] 閆偉東.學者知識庫建設探究——以深圳學者知識庫為例 [J].圖書館建設,2018(12):57-62.
[2] 鄭昂,曾建勛.數(shù)字圖書館學者庫構(gòu)建方式研究 [J].圖書情報工作,2020,64(5):133-140.
[3] 林偉明,楊巍.基于微服務構(gòu)建的新一代圖書館服務平臺 [J].圖書館雜志,2020,39(8):66-74.
[4] Spring. Spring Boot [EB/OL].[2021-3-26].https://spring.io/projects/spring-boot.
[5] gitee. Apache/Dubbo [EB/OL].[2021-3-25].https://gitee.com/apache/dubbo.
[6] Ant Design. Ant Design of React [EB/OL].[2021-53-28].https://ant.design/docs/react/introduce-cn.
作者簡介:李海燕(1988—),女,漢族,湖北孝感人,助理館員,碩士,研究方向:計算機應用、數(shù)據(jù)分析等;吳元業(yè)(1984 —),男,漢族,廣西合浦人,館員,碩士,研究方向:計算機應用、圖書情報;崔一鳴(1993—),男,漢族,廣東深圳人,助理館員,本科,研究方向:系統(tǒng)開發(fā)及應用。