图书馆应用服务器的基础配置 - DigitalPlatform/dp2 GitHub Wiki
图书馆应用服务器刚安装好以后,还没有任何数据库和其他基本配置参数,图书馆业务系统这时还不能立即投入运行。
因为图书馆的实际情况是千差万别的,dp2图书馆集成系统作为一个通用的平台化图书馆集成系统软件,不会在安装的时候自动设定死板的结构和参数,这就需要数字平台的工程师或图书馆系统管理员根据图书馆的实际情况,对应用服务器进行一些初步的参数配置。
对dp2图书馆应用服务器的配置,主要依靠dp2内务前端的【系统管理窗】 来进行。少数参数可能需要直接修改应用服务器数据目录内的library.xml文件、公共查询数据目录内的opac.xml文件。
应用服务器在安装的时候,会由安装者设定数据目录。例如,“c:\dp2\syzx\library_data” 这是由安装者决定的一个磁盘目录,它不同于应用服务器安装的程序目录,它主要用来存储各种配置文件和数据文件。 一旦应用服务器安装配置妥当后,系统管理员应当备份这个数据目录内的全部文件和下级子目录。
在每日运行中,数据目录内会创建当天的事务日志文件和统计信息文件等,因此建议系统管理员每天备份一次数据目录。
在应用服务器的数据目录内,有一个名为library.xml的配置文件,它是应用服务器最重要的配置文件,配置了许多系统参数。 这个文件的格式是XML,可以用Windows记事本打开和编辑。
在修改它的时候,请注意保持其XML结构的完整和正确。
书目库是用来存放书目信息的数据库。 dp2系统要求一个书目库内的全部书目记录必须属于同一种MARC格式类型。
一般首先按照MARC格式来划分书目库,然后按文种、用途来划分。 例如,一个图书馆有中文和英文两大类书目数据,中文采用UNIMARC格式,英文采用USMARC格式。出版物类型有图书和期刊。图书有中文和英文的,而期刊只有中文。这样,可以规划创建一个中文图书库,一个中文期刊库,一个英文图书库。 (注:USMARC就是MARC21格式)
注意:不必为每个馆藏地点创建一个单独的书目库。因为出版物的册信息中,本来就有馆藏地点一项,在同一个数据库中,软件可以妥善管理好物理上存放在不同馆藏地点的出版物。
书目库划分要尽量精简,这样就减少了系统管理员日常管理的负担。虽然dp2图书馆集成系统支持创建任意多个数据库,但数据库数量太多了是不经济的。
书目库有“大书目库”和“小书目库”的概念。所谓小书目库,就是指用来存储和管理MARC/DC等格式的书目数据的、在dp2内核层面的一个独立的逻辑数据库。所谓大书目库,是指通过小书目库,连同配套的(可选的)实体库、订购库、期库、评注库组成的一个数据库群,用来实现图书馆的完整业务。大书目库为了称呼的方便,用其中最重要的小书目库名称来称呼它。但这并不是说它只包含一个具体的小书目库。
从大书目库角度,要实现图书馆的业务功能,需要伴随创建一些功能性的数据库。 如果要提供册流通的功能,需要伴随一个“实体库”;如果要提供采购的功能,需要伴随一个“订购库”;如果需要提供期刊管理的功能,还需要伴随一个“期库”;如果需要书评和读者荐购功能,还需要伴随一个“评注库”。从逻辑上来说,大书目库内的各个数据库,数据构成了一个整体,彼此之间存在紧密的内在联系。
下面以创建“中文图书”为例,介绍如何操作创建一个大书目库。
1)启动dp2内务前端。利用主菜单“系统维护/系统管理窗”命令,打开一个“系统管理窗”: 2)点下方工具条上的“创建”按钮。会出现一个菜单,点“书目库”命令,会出现一个“创建新书目库”对话框: 在“书目库名”文本框中,输入拟定的书目库名字。 建议不要在书目库名字中包含“库”字。例如,中文图书库,可以就叫“中文图书”,而不必叫“中文图书库”。
当输入了书目库名以后,根据“文献类型”组合框中的具体类型,程序会自动填写“实体库名”、“订购库名”、“期库名”和“评注库名”。如果“期库名”没有被自动填写,那一定是“文献类型”组合框内的值为“图书”的缘故。如果“文献类型”组合框的值为“期刊”,“期库名”一定会被自动填写的。
如果大书目库不需要具备采购业务功能,则需要手动把“订购库名”文字框内容清空。如果不需要册流通功能,则需要手动把“实体库名”文字框内容清空。如果不需要书评和读者荐购功能,则需要手动把“评注库名”文字框的内容清空。
选定好“数据格式”组合框的内容。
“参与流通”布尔框决定了新创建的书目库是否参与流通借还操作。这个参数,还可以在数据库创建完成后随时进行修改。
按“确定”按钮,数据库即被创建。
读者库是dp2系统中用于存储读者信息的一种数据库类型。 读者库采用dp2系统专有的一种XML格式存储记录信息。
创建多个读者库是可以的,目的主要是按照不同的用途来管理读者。但建议读者库的个数不要设立得太多,以免管理起来困难。
读者库内的每一条读者记录,有一个最重要的信息字段就是**“证条码号”**字段,无论创建了多少个读者库,在这些所有的读者库中,一个跨越多个读者库的名字空间内,证条码号值是不允许发生重复的。 在OPAC界面上每个读者都可以为自己设定一个“显示名”。显示名值也是不允许发生重复的。
读者库可以设置为“不参与流通”。这样的读者库,其作用是存储数据备用。例如,学校图书馆可以定期将已毕业的学生的读者记录,转移到不参与流通的数据库内,既不会干扰日常流通操作,也起到了备查的作用。
在dp2内务前端的“系统管理窗”中,点下方工具条上的“创建”按钮。会出现一个菜单,点“读者库”命令,会出现一个“创建新读者库”对话框: 读者库的特性比较简单,除了指定读者库名外,就是指定是否“参与流通”。 按“确定”按钮,创建读者库。
这里介绍读者类型概念,为相关配置操作打下概念基础。
为了便于分类管理读者的权限,图书馆需要制订读者类型表,把读者划分为不同的类型。
然后,在给读者办证,也就是创建读者记录的时候,在读者记录中输入适当的读者类型值。
具体的读者类型具有什么样的借阅权限,可以在系统中另行设定,并可以随时调整。
由于具体的读者类型所对应的借阅权限参数可以经常调整,具有很大的灵活性,那么就提供了一种便利,使得读者类型本身可以维持相对稳定。因为前者很容易进行修改配置,一旦修改完成,就对系统内的相关(全部)读者类型生效;而直接修改读者记录中的读者类型值因为涉及的读者记录数量通常都很庞大,就不是那么容易了。
因此,从理论上来说,日常的读者权限调整,我们希望主要是调整具体读者类型的权限值而不是直接调整读者类型本身。
例如,在某一个阶段,有两类读者的权限参数是不同的。在此时,为这两类读者划分不同的读者类型,显得是“值得”的。而过了一段时间,图书馆调整读者权限,将这两类读者的权限调整为一模一样了。这时候,系统管理员容易有一种错觉:早知道如此,还不如当初把这两种读者都设立为同一种读者类型,这样权限参数个数定义起来会少一套。且慢。首先,这种合并操作实施起来意味着要去每个相关的读者记录中修改“读者类型”值,这个操作的工作量是很大的;另外,这种“合并读者类型”的做法也是有风险的:万一将来又要重新分为两类不同的权限,那么就又要去每个相关的读者记录中修改“读者类型”值,这个操作的工作量又是很大的,而且分的时候,比合的时候更难一些,更不容易进行批处理操作。
建议读者类型按照其实际自然类型来设定划分,先不必考虑权限定义的因素。
读者类型在两类场合参与定义:
一类是读者数据输入和编辑的时候,希望界面上出现值列表,方便输入。
一类是用于定义读者的借阅权限。
读者类型在 系统管理/流通权限 属性页定义。配置读者类型之后,一定要注意同时在library.xml中将verifyReaderType开关打开。
这里介绍图书类型概念,为相关配置操作打下概念基础。
为了便于分类管理图书被读者使用(借阅)权限,图书馆需要制订图书类型表,把图书划分为不同的类型。
这是从形态上、使用方式上划分的图书(册的)类型,而不是从内容上划分的图书类型(例如图书分类)。下面的例子都是这里所说的“图书类型”。
例如,许多图书馆在买来一种图书的若干册后,会分配到不同的馆藏地点。可以划分为“流通”和“阅览”两种类型。前者允许读者外借;后者只能在阅览室阅览,不能外借。
例如,许多图书馆虽然只有一个书库,但是书架上的书却被划分为两种类型:“保存本”和“普通本”。前者不允许读者外借;后者允许外借。如果这样的书库是开架书库,虽然还没有什么办法阻止读者从书架上拿下属于“保存本”的书并带到出纳台准备办手续外借,但是当进行外借操作的时候,软件可以发现这本书属于不允许外借的,会向图书馆工作人员发出警告。
(注:通过册记录中的“馆藏地点”值,也可以定义属于某些馆藏地点的册(全部都)不允许外借。而通过图书类型来定义是否允许外借和一种类型的图书对于某类读者总共可以外借多少册,显得更灵活一些)
例如,一些图书馆的英文原版书在借阅政策方面有特殊性,那么就可以为图书类型设立一种“英文图书”。
注意图书类型是指图书的册的具体类型,而不是针对整个一种图书的的所有册的。同样一种图书内,其各册完全可以被分配为不同的图书类型。
图书类型会在两类场合参与定义:
一类是图书的册数据输入和编辑的时候,希望界面上出现值列表,方便输入。
一类是用于定义读者对图书的借阅权限。
图书类型在 系统管理/流通权限 属性页定义。配置读者类型之后,一定要注意同时在library.xml中将verifyBookType开关打开。
读者借阅权限是在library.xml文件中的元素内定义的。 可参考下面的样例:
本科生 普通1 例子中,所出现的读者类型为:本科生,硕士生,教师,博士生,教授
图书类型为:文学,科技,社科
这里按照最简明的方法,先列举配置各读者类型,然后在每类读者类型中列举配置各图书类型。最终形成了一个穷举所有读者类型和所有图书类型的“表格”状配置。
其中,“工作日历名”、“可借总册数”和“可预约册数”3个参数,是仅仅和读者类型相关而和图书类型不相关的参数,所以在XML结构中被配置在读者类型内、图书类型列举以外的位置。
为了让相关界面能显示出便于理解的读者权限对照表,还需要在元素内配置和元素,这两个元素定义了权限对照表的行和栏标题值。
这里举例的是一种速成、简易的读者权限配置方法,配置难度低。
工作日历,是对图书馆开馆(上班)日期的定义。应用服务器要通过工作日历来计算读者应还书的日期,某些情况下要忽略掉借阅周期内的休息日。应用服务器允许定义多个工作日历,不同的读者类型可以关联不同的工作日历。
注:软件计算读者借阅期限天数的时候,并不会把图书馆休息日排除在外。因为图书馆工作人员虽然休息了,但是并不妨碍读者自己在家看借来的图书。软件会观察在借阅期限的最后一天如果遇上图书馆的休息日,读者因此无法来图书馆还书,在这种特定的情况下软件会给出一定的宽限日。
刚才配置的读者权限元素内,有如下片断:
表示某些读者类型引用了一个叫做“基本日历”的工作日历。工作日历并不在内定义,内仅仅是引用了它。 工作日历是在应用服务器library.xml文件中元素下定义的。
不过,一般不必用在应用服务器library.xml文件中直接进行修改XML代码的方式来定义工作日历,在dp2内务前端的“日历窗”中,提供了一个非常直观的图形来界面来定义工作日历。
操作方法如下:
启动dp2内务前端,用主菜单“功能/系统维护/日历窗”命令打开一个日历窗:
在“日历名”组合框内点向下箭头按钮,一般来说会列出名称“基本日历”,这是在应用服务器安装时就缺省装入的一个日历。
可以直接修改和保存“基本日历”。
每个日期格子的左上角小框,如果点它后出现红色斜杠,表示这个日子被设置成了休息日,图书馆不开馆。否则就是工作日。如果要一次设置若干格子的特性,可以用Ctrl键结合鼠标左键定义“块”,然后点鼠标右键获得上下文菜单,用“设置状态”命令。按下鼠标左键的时候拖动鼠标,也可以定义“块”。
如果整个日历的时间范围不够宽,可以点右鼠标键获得弹出菜单后,用“前扩”或“后扩”命令。
修改完成后,不要忘记了按“保存”按钮保存。
如果要创建新的日历,可以在“日历名”组合框中输入一个新的日历名,然后编辑修改日历内容,最后按“创建”按钮保存。
馆藏地是否允许外借配置参数,决定了哪些馆藏地的图书可以外借,那些不可以被外借。当读者拿到本来不允许被外借的馆藏地的图书到出纳台办理外借手续的时候,软件会向操作者发出警告。
这里主要介绍如何利用dp2内务前端的“系统管理窗”对馆藏地是否允许外借特性进行定义。注意如上所说,这只是两种方法之中的一种。这种方法适合于馆藏地和是否允许外借特性之间有简单对应关系的情况。如果同一个馆藏地内的图书有的允许外借,有的不允许外借,这种方法就无法应付了,就需要采用另外一种脚本函数定义方法,请参见3.2中的有关内容。
如果馆藏地配置了借还的java脚本,要注意配置之后到library.xml中检查是否有定义Itcanborrow元素,如果有定义此元素,一定要删除。否则借还时Itcanborrow元素优先起作用,而导致java脚本失效。
排架体系指一套索取号的取号规则,包括索取号的类号来源、同类书区分号类型、索取号形态等因素。
图书馆的一些独立的馆藏地点,虽然物理上不在同一个书库,但是它们可以属于同一个排架体系,或者说同一个索取号的名字空间。如果要在这些馆藏地点之间调拨书刊,则不必更新书刊上的标签内容。许多小型图书馆只有一套排架体系。
dp2系统将索取号存储在书刊的册记录中,每一册书刊都可以有独立的索取号。这种做法,没有采用以往国内常见的CNMARC 905$d$e存储方式。因为dp2系统认为,属于同一种书目记录的若干册记录,所代表的册,可能会因为它们所从属的排架体系不同,而具有完全不同类型的索书类号、同类书区分号,因此书目记录中的字段是无法用来存储下属册的这些彼此之间完全不同的信息的。
图书馆的全部排架体系,需要在内务前端的系统管理窗的“排架体系”属性页中定义出来,这样内务前端的索书号创建管理相关功能才能正常发挥作用。 排架体系的定义操作方法请见“用户手册”2.45小节。
如果采用了种次号作为排架的区分号,一定要注意检查是否配置了种次库(老服务器数据迁移很有可能有此项),要注意删除种次库。
应用服务器有一个功能,可以按照一定规则校验前端发来的条码号,看它的格式是否正确。
注:这个功能仅仅是校验条码号形式上的正确性。例如,图书馆设定读者证条码号为10位数字,那么,形式上来说,从0000000001到9999999999的号码都是合法的形式。可能当前图书馆只用到了所有可能的号码中0000000001到0000010001的范围,但条码号的形式校验一般并不负责判断一个读者证条码号是否超过这个号段范围。
这个功能是通过在应用服务器数据目录内的library.xml中编写一个条码号校验脚本函数来实现的。
在应用服务器刚安装好的时候,这个函数是没有的。需要系统管理员(或数字平台公司的技术服务人员)根据图书馆的具体情况编写。
在dp2内务前端的“系统管理窗”内,点“条码校验”属性页配置。如何配置详见文档
配置条码校验函数之后,一定要注意同时在library.xml中将verifyBarcode开关打开。
dp2系统内创建了数据库以后,这些数据库并不会自动出现在OPAC读者公共查询的检索界面中(但可以被内务前端直接使用)。还需要进行OPAC数据库配置,这些数据库才能被读者检索。
OPAC系统能检索的,一般只是书目库。而读者库是不直接提供给读者检索的,因为读者信息属于隐私信息。
下面介绍OPAC数据库的配置操作办法:
启动dp2内务前端,用主菜单“文件/系统维护/系统管理窗”命令打开一个系统管理窗:
假定当前系统中已经创建好了两个书目库:中文图书,英文图书。
下面介绍如何将这两个书目库配置为OPAC可检索的状态。
点“OPAC”属性页:
在上方列表“参与OPAC检索的数据库”内,用其工具条的“插入”按钮,插入普通库:
在“新增普通库定义”对话框中,按右边的“…”按钮,可以选取数据库名:
选择库名“中文图书”。插入“中文图书”后,软件会为书目库“中文图书”自动配置好一个显示格式。
按照相同的方法,再插入书目库“英文图书”:
至此,OPAC公共查询页面中,已经可以利用这两个书目库进行检索了。
dp2系统的应用服务器,还提供了一种“虚拟库”的机制,允许把不同的书目库组合定义为一个虚拟库,这样,在OPAC系统中,读者只需要选择这个虚拟库进行检索,就可以实现对虚拟库的所有成员库的联合检索,理解和操作起来比较直观方便。
注:Z39.50服务器也可利用虚拟库定义,将虚拟库作为检索目标
下面讲解如何定义OPAC虚拟库。
在上方列表“参与OPAC检索的数据库”内,按工具条的“插入”按钮,在随后出现的菜单上,选“虚拟库”:
在“新增虚拟库定义”对话框中,在“虚拟库名”属性页,要为虚拟库取名字。一般至少中文、英文各取一个名字。如果要取更多的语种的名字,请在左方语言代码的颜色块上点右鼠标键,在随后出现的上下文菜单上选“后插”命令。
切换到“成员库”属性页。
利用“插入数据库名”按钮,分别插入“中文图书”和“英文图书”两个数据库名。
注:虚拟库的成员库,只能从已经参与OPAC检索的普通库范围中选取
注意当第一个数据库名插入后,需要在数据库名列表文本框中的文字末尾输入一个回车,以免后来插入的数据库名覆盖了刚刚插入的第一个数据库名。 切换到“检索途径”属性页。
按“导入”按钮:
按“全选”按钮以选定所有的检索途径,然后按“确定”按钮:
可以看到虚拟库的检索途径已经被定义好了。
注:这里介绍的操作是导入了虚拟库各成员库的所有检索途径。如果觉得不需要出现某些检索途径,可以在左边的色块上点右鼠标键然后用上下文菜单上的“删除”命令来删除它。
按“确定”按钮。
可以看到虚拟库“中西文图书”已经被插入到参与OPAC检索的数据库列表中。
每当系统配置参数修改后,需要在OPAC界面上用(具有管理权限的)工作人员身份登录进入,然后在“管理”页中使用“刷新配置”功能刷新系统参数。 刷新一下Web浏览器上的OPAC检索页面:
可以看到,虚拟库“中西文图书”已经可以被OPAC检索所利用。
dp2系统除了书目库和读者库外,还需要一系列辅助用途的数据库的配合,目前系统自动创建了这些辅助库。
违约金库:在收取违约金的时候,系统自动把每笔违约金的信息写入违约金库。这样,才能实现违约金结算等功能。押金和租金信息也写入这个库。
预约到书库:当系统发现有读者还回被预约了的图书,系统会对首位预约者发出取书的通知,并自动把相关图书的信息存储到预约到书库中。系统会自动跟踪这些预约到书记录,如果预约者超过规定的期限不来取书,系统会自动通知后面排队的预约者,或者在没有其他预约者的情况下向图书馆员发出归架的通知。
出版者库:用于存储ISBN号中出版社代码,和出版社名(出版地),以及和出版社所在国家地区代码的对照表。
消息库:用于存储系统内全部用户信箱的消息。
注意这些数据库每个类型的只需要创建一个即可,同一类型不要重复创建多个。
配置查重空间参数的目的,是让系统可以根据997字段来判断书目记录是否重复,从而避免重复的书目记录进入系统。具体配置方法参见文档