ALEPH500系统X-server接口的研究与实践
张红, 王美英, 只莹莹
国家图书馆 北京 100081
摘要

X-server接口是ALEPH500系统提供的基于XML的Open API。以国家图书馆ALEPH500的外连应用系统为例,对X-server接口的使用方法、功能分类、具体应用、安装部署、注意事项等方面进行详细研究和阐述,充分展示X-server接口是一种安全、稳定、便捷的数据交互机制。

关键词: ALEPH500; X-server; OpenAPI
中图分类号:G250
The Research and Practice for X-server of ALEPH500
Zhang Hong, Wang Meiying, Zhi Yingying
National Library of China, Beijing 100081, China
Abstract

The X-server is an Open API of ALEPH500 based on XML. This paper takes the external applications interacting with ALEPH500 of National Library as example, and introduces the using method, the functional classification, the actual application, the deployment, the details for X-server concretely, demonstrating X-server is a security, stable and convenient pattern in data transmission.

Keyword: ALEPH500; X-server; OpenAPI
1 引 言

ALEPH500系统是ExLibris公司开发的大型图书馆自动化集成管理系统,国家图书馆于2002年引进该系统,为了满足不断扩展的业务需求于2009年完成了20版升级,成为国内首家启用ALEPH500系统20版的用户。国家图书馆的业务范围不断扩大,读者服务全面提升。数字图书馆的建设发展迅速,因此越来越多的应用系统需要与ALEPH500中的基础业务数据进行交互。

直接从ALEPH500数据库中读取基础数据显然会对系统的性能和安全造成威胁。ALEPH500系统本身提供了一种安全、稳定、可靠的数据交互中间件——X-server接口,它是一个基于XML的、Web Services形式的Open API,为开发强大的第三方应用提供了有力支持。国家图书馆已经基于X-server开发了众多外连应用系统,充分显示了X-server作为Open API的强大功能。

2 X-server接口简介

X-server是ALEPH500系统的对外数据交互接口,它是标准的XML API,其优势表现在以下三个方面:

(1)使ExLibris产品能够完全对外连应用系统开放,X-server以URL超链接作为输入,以XML格式的报文作为输出,是一个标准、简单的接口,如图1所示[ 2]

图1 X-server交互模式

(2)无论外连应用系统的组织形式、内部协议和结构如何,都能通过X-server接口与ExLibris产品进行简单、直接的交互;

(3)X-server只关注与用户如何交互、数据如何揭示,完全不依赖于具体应用。

X-server接口的运行依赖于ALEPH500系统的WWW-server服务,表现在三个方面:WWW-server服务必须启动并正常运行,X-server接口才能被访问;X-server和WWW-server是同一个日志文件;基于X-server的XML和基于WWW-server的Web OPAC请求队列相同。X-server接口包含多个服务,每一个服务对应一个service-name,执行特定功能的操作,并返回相应结果。

3 X-server接口应用研究

X-server接口有42个标准服务,包括了检索、流通、读者等相关信息,下面对一些常用的X-server接口进行分类研究。

3.1 检索接口

与检索相关的X-server接口有find(检索)、sort-set(排序)、present(显示书目记录)、item-data(显示单册信息)、ill-item-by-bc(根据单册查找书目信息)。

(1)find服务同Web OPAC中的CCL检索命令,支持中英文检索词,可以通过多种检索条件和输入参数进行书目数据的检索,检索参数对应关系:bar-条码号、wrd-关键字、wti-题名、wau-作者、wsu-主题、wpu-出版者、wyr-出版年,注意中文检索词要输入UTF-8编码才行。find服务支持多个检索词,只需设置输入参数adjacent=Y即可。find服务返回的是一个结果集,这个结果集有唯一标识。find返回的XML报文如下:

< find >

< set_number >197815< /set_number > //结果集唯一标识

< no_records >000004687 //结果集命中数

< no_entries >000001000 //结果集最多能显示的数量

< session-id >K447QMUIBEXRIPPUBV813IQEUM4AHY4ISV FS K8VKQ87DLD5XG4

(2)sort-set服务是将find结果集进行排序,其中set_number为find结果中的< set_number >,sort_code_1为排序依据,可通过get-sort-codes服务得到排序依据的对应关系,比如01是编目年、02是著者、03是题名等,sort_order_1用来指明是升序还是降序排列,后面还可以加参数sort_code_2和sort_order_2。

(3)present服务显示排序后结果集的前n条书目记录。

(4)item-data服务显示某个书目系统号下面所有单册,每条单册信息都包含了条码号、单册状态、馆藏、索书号以及是否被预约请求等信息。

(5)ill-item-by-bc服务能通过单册条码号找到对应的书目信息。

3.2 流通接口

与流通相关的X-server接口有renew(续借)、hold-req(预约)、hold-req-cancel(取消预约)。

(1)renew服务支持以读者卡号和读者ID进行续借,不仅能通过单册的条码号续借,还能通过管理记录号进行续借,且只能续借一次,不允许续借多次、欠费续借、逾期续借。

(2)hold-req服务不仅能通过单册的条码号预约,还能通过管理记录号进行预约,预约成功会返回OK以及预约请求有效期和取书地,预约失败会有相关的失败提示信息,与Web OPAC一样,比如提示读者已达到预约请求最大数、读者证已过期等。

(3)hold-req-cancel服务一般不用,此服务是根据预约序列号直接将该预约请求删除,不进行任何判断,Web OPAC对已经进行处理的有效预约请求不允许删除,hold-req-cancel的操作与实际不符。

3.3 与读者相关的接口

与读者相关的X-server服务有bor-auth、bor-info、ill-bor-info、bor-by-key、update-bor。其中bor-auth、bor-info、ill-bor-info、bor-by-key这4个服务都能得到读者相关信息,但是它们之间也有区别,如表1所示:

表1 读者信息接口的对比

update-bor能够对读者信息表Z303、Z304、Z305和Z308进行增加、删除、修改操作,该服务需要post程序提交一个XML文件,这个XML文件不能超过2万字符,包括所有与读者信息相关的库表字段,并且这些信息都是针对同一个读者。update-bor服务有一个输入参数UPDATE_FLAG,"UPDATE_FLAG=Y"即对数据库进行写操作,"UPDATE_FLAG=N"不对数据库进行写操作,但是能查看执行结果。

4 X-server接口应用实践
4.1 国家图书馆X-server接口的应用情况

国家图书馆通过X-server接口与ALEPH500系统相连的应用系统目前有16个,其功能需求涉及业务工作和读者服务的众多方面,X-server接口功能需求可以分为几个方面,每种功能需求涉及到的外连应用系统如表2所示:

表2 X-server接口功能与外连应用系统对照表

(1)读者身份认证

读者身份认证功能就是通过X-server接口来读取读者卡号或读者ID以及借阅密码进行读者身份的验证,如果读者卡号或读者ID与密码相匹配,那么读者就可以登录该应用系统。比如已办卡读者登录无线网系统后就可以免费在国家图书馆的区域范围内享受无线上网服务;读者使用固定电话或手机拨打“400 600 6988”即可进入国家图书馆呼叫中心系统的语音服务平台,按照自动语音提示输入读者卡号和密码验证通过后,即可以享受一系列相关服务;已办卡读者通过读者卡号和密码在读者管理系统验证通过后,即可以实现国家图书馆众多网上资源系统间的相互连通。

(2)读者个人信息的查询、新建和修改

读者个人信息包括读者用身份证办卡时由工作人员录入的个人基本信息以及读者在国家图书馆所拥有的读者卡和子库权限,读者新办卡时会新建个人基本信息,缴纳押金增加外借权限会新增子库信息,读者修改借阅密码、电话、地址以及读者验证时都会修改个人信息,读者登录后会看到姓名等个人信息,X-server接口提供了非常丰富的对读者个人信息的操作。比如自助办证充值系统可以读取二代身份证的信息来创建读者个人信息,缴纳押金增加外借权限,修改借阅密码和验证;读者管理系统可以修改读者个人基本信息以及密码。

(3)流通功能

通过X-server接口能够实现的流通功能有图书续借、预约和借阅历史查询。读者通过应用系统进行的流通操作和Web OPAC一致,对已借图书只能续借一次,续借多次、欠费续借、逾期续借都不允许,对符合预约条件的单册才显示给读者预约的超链点,对不符合预约条件的单册不予显示预约超链点,这样可以避免读者频繁预约失败的情况,对“非在架预约” 的图书预约成功后会显示读者的排队序号,对“在架预约”的图书预约成功后会提示读者取书地,对于多个取书地的情况,在Web OPAC上可以让读者进行选择,但是X-server接口无此功能,只是把tab37参数表中的第一个取书地默认为读者取书地。比如呼叫中心系统可以根据自动语音提示进行在借图书的续借操作;短信平台系统让读者通过发送短信的方式办理图书续借手续,即读者发送短信指令代码加图书条码号到国家图书馆的服务号码即可完成续借操作;数字电视服务是国家图书馆与北京歌华有线电视网络公司合作的成果,读者利用遥控器通过歌华有线电视平台就能完成图书在线预约、续借和查看借阅历史的操作。

(4)书目信息检索

X-server接口支持的检索服务同Web OPAC中的检索一样,可以通过多种检索条件和输入参数进行书目数据的检索,并能查看相应书目下的所有单册信息。比如WAP网站使读者能够通过手机上网随时随地进行国家图书馆书目信息的检索,并能查看到具体单册信息,及时方便;资源揭示系统支持特色资源的全库检索,它以国家图书馆自建特色数字资源为主,实现了对多种类型资源的跨库检索。

(5)架位信息上传

架位信息是指单册的具体搁放位置,例如1层工具书南区19架6层,如果读者知道架位信息就可以很方便地找到自己所需图书,X-server接口支持架位信息的上传,目前国家图书馆用Z30表的Z30_call_no_2字段存放架位信息,这些架位信息为智能架位导航服务提供支持。智能架位导航系统嵌入Web OPAC中,读者查询到自己感兴趣的文献资料,点击“架位导航”超级链接,即可得到目标图书架位三维分布图,明确提示目标架位所在位置,并给出最佳路线导引。由于单册的搁放位置会不断变化,所以架位信息要根据具体变化及时更新,以方便读者获取目标文献。

(6)建立金融功能

ALEPH500系统中Z31表记录了金融信息,X-server接口了写Z31表的功能,目前国家图书馆只有自助办证充值系统用到了该金融接口,读者自助缴纳外借押金时,会通过金融接口将该交易款项明细写入Z31表,并为读者增加相应的外借权限。

X-server接口的功能非常丰富,但在实际应用中这些标准服务还不能完全满足需求,需要ExLibris公司新增服务或者修改标准服务来提供支持,ExLibris公司为国家图书馆专门定制开发的服务有:update-bor-nlc(修改读者信息)、update-item-nlc(修改单册信息)、hold-req-nlc(根据国家图书馆实际需求开发的预约请求服务)、item-data-nlc(增加了单册是否被预约请求的判断)、loan-history(查看借阅历史)、update-cash(增加金融功能)、bor-info-nlc(显示更全面的读者信息)。

4.2 X-server接口应用实例

以自助办证充值系统为例,详细阐述X-server接口的应用实践。

自助办证充值系统是国家图书馆百年馆庆时推出的面向读者的完全自助式服务,凡是年满16周岁的读者,可以凭借二代身份证在自助办证充值机上办理普通读者卡,读者还可以凭借二代身份证或读者卡自助完成增加外借功能、修改借阅密码、验证和充值等操作,如图2所示:

图2 自助办证充值系统首界面

系统配有“补打押金收据”程序,实现无押金收据退费,并通过“中心管理平台”对财务数据和业务量进行统计和管理,同时在每台终端机配有清点现金和打印账目明细的功能,彻底实现财务管理的电子化。该系统涉及到办卡和金融功能,对及时性、安全性和稳定性要求非常高,通过X-server接口实现的功能如表3所示。

表3 通过X-server接口实现的功能列表

自助办证充值服务解决了人工单一受理、读者排队等候、读者填表拍照等业务问题,使办卡过程方便快捷,整个办卡时间不到30秒,它稳定、安全、高效的操作过程深受广大读者喜爱,到目前为止有15万多名读者自助办理了读者卡,自助金融交易达720多万元,取得了良好的社会效益。

4.3 X-server接口应用中的注意事项

X-server返回的错误提示是XML格式的报文,如果URL请求没有成功就会返回相应的错误原因,默认的错误提示是英文的,但在URL超链接上加&lng=chi就能显示中文的提示。有些X-server接口输入参数支持多样化,比如item-data(显示单册信息)和hold-req(预约请求)的输入参数既支持管理记录号,也支持条码号。

X-server权限控制分两部分:IP权限控制和用户权限控制。任何外连应用系统通过X-server访问ALEPH500时,都需要将该应用所在服务器的IP在/exlibris/aleph/u20_1/alephe/tab/server_ip_allowed中进行配置,配置之后X-server服务才对此IP开放。用户权限配置需要指定该用户能访问X-server接口中的服务,在GUI端的馆员权限里面配置即可。也有一些不用配置用户权限就能访问的服务,像find和find-doc,只需将IP开放就可访问。如果是URL连接中没有写用户名和密码、默认使用缺省的WWW-X的用户,只能访问不需配置用户权限就能访问的服务。

4.4 X-server接口的部署过程

ALEPH500系统标准的X-server服务不需要部署,可直接访问,但是新增服务需要在ALEPH500系统上重新部署才能使用,新增服务的所有程序都在alephm_source/ffs_xml目录下。下面以根据国家图书馆具体需求而新增的预约请求服务hold-req-nlc为例,简单介绍X-server接口的部署过程。hold-req-nlc服务在alephm_source/ffs_xml/hold_req_nlc目录下有如下文件:

WWW_X_SERVICE_HOLD_REQ_NLC

XML_SERVICE_ HOLD_REQ_NLC

hold_req_nlc.trn

hold_req_nlc.tag

www_x_ hold_req_nlc

xml_ hold_req_nlc

xml_ hold_req_nlc.cbl

www_x_ hold_req_nlc.cbl

具体操作步骤如下:

(1)将文件WWW_X_SERVICE_HOLD_REQ_NLC和XML_SERVICE_HOLD_REQ_NLC复制到alephm_source/copy文件夹下。

(2)将文件hold_req_nlc.trn、hold_req_nlc.tag分别复制到alephe_root/www_x_chi和www_x_eng文件夹下。

(3)将www_x_ hold_req_nlc、xml_ hold_req_nlc复制到/exlibris/aleph/a20_1/aleph/error_chi和error_eng目录下,这两个目录分别对应中文和英文的错误提示。

(4)用iprou命令来编译*.cbl文件:

iprou ffs_xml xml_ hold_req_nlc.cbl

iprou ffs_xml www_x_ hold_req_nlc.cbl

注意要把*.cbl文件放在alephm_source/ffs_xml目录下执行,编译后生成的*.gnt文件在aleph_exe目录下能查看到。

(5)在alephe_tab/www_x_func文件中增加如下行:

HOLD-REQ-NLC www_x_ hold_req_nlc

(6)在alephe_tab/user_function.chi和user_function.eng文件中增加如下行:

WWW-X L X-SERVER Interface HOLD-REQ-NLC L Hold request - Create

这样就可以在ALEPH500系统的GUI端给用户增加该服务权限。

(7)为了保证X-server接口和Web OPAC返回的结果一致,需要根据实际情况修改参数表/exlibris/aleph/u20_1/nlc50/tab/tab_hold_request。

5 结 语

X-server接口在国家图书馆的应用非常广泛,功能也很丰富,积累了许多实践经验,给同行提供了很好的借鉴。今后国家图书馆会有更多的外连应用系统通过X-server与ALEPH500 系统相连,比如中文呈缴平台和文献数字化加工等系统也要使用X-server与ALEPH500系统相连。X-server对负载的承受能力以及对ALEPH500系统和WWW-server服务造成多大程度的性能影响,目前还没有相关的说明文档。因此随着外连应用系统的不断增加,X-server性能方面的研究值得关注。

The authors have declared that no competing interests exist.

作者已声明无竞争性利益关系。

参考文献
[1] ExLibris Ltd. ALEPH 18 User Guide[M]. 2008. [本文引用:1]
[2] ExLibris Ltd. ALEPH_18[1]. 01_X-Services[M]. 2006. [本文引用:1]
[3] 贾西兰. 基于OpenAPI实现数字图书馆系统互通互联[J]. 图书馆论坛, 2011(1): 81-84. [本文引用:1]
[4] 方玮, 张成昱, 窦天芳. 基于资源整合的手机图书馆系统的设计和实现[J]. 现代图书情报技术, 2009(6): 76-80. [本文引用:1]
[5] 薛崧, 徐建刚. 三大图书馆集成管理系统考察与比较[J]. 图书馆杂志, 2008(10): 54-58, 62. [本文引用:1]
[6] 林颖, 孙魁明. 基于WAP的图书馆移动信息服务体系及WAP+OPAC应用实例[J]. 现代图书情报技术, 2007(9): 80-83. [本文引用:1]