马铭锦 应红燕
(北京信息科技大学图书馆,北京 100101)
近年来,电子期刊尤其是西文电子期刊以内容新颖、专深、学术价值高等优点,正受到越来越多的教师和科研人员的青睐。因此各个高校图书馆都在不断加大西文电子期刊的采购力度。仅2007年,北京信息科技大学图书馆就引进了ACM、ASME及ScienceDirect3种西文期刊数据库,西文电子期刊的数量达到了16000多种,较好地保障了学校教学和科研的需要。但是,这些电子期刊分布在不同的期刊系统中,读者需反复登录不同的数据库,才能达成检索目标,既浪费了大量的时间和精力,又降低了检索效率,严重影响了读者对资源的使用兴趣。此外,由于纸本西文期刊在管理方式、检索手段等方面与电子期刊又大不相同,这为读者查找不同载体类型的西文期刊,全面了解图书馆的西文期刊资源又设置了一大障碍。为了更好地管理和利用这些宝贵资源,就需要重组与揭示西文电子期刊,并将本馆订购的纸本西文期刊与电子期刊整合起来,纳入到统一的资源导航系统中,实现馆藏西文电子期刊和纸本期刊的统一检索、统一导航和动态管理,为读者提供“一步到位”式的一体化服务,这是高校图书馆期刊管理工作的重要任务。为此本馆在校科研基金的资助下,对国内10所重点高校中国人民大学、北京师范大学、上海财经大学、同济大学、南开大学、天津大学、武汉大学、南京大学、西安交通大学、电子科技大学图书馆的期刊导航系统进行了调查,在此基础上结合本馆的特点,开发了西文期刊导航系统。现结合开发工作的实践谈谈系统的设计理念、功能模块及实现技术。
综合组织和揭示图书馆各种类型的期刊资源,使实体馆藏与虚拟馆藏资源整合在一起,以体现馆藏期刊资源的全貌,这已成为期刊组织与揭示的新要求[1]。从调查的结果来看,目前大部分图书馆仍只将期刊导航系统作为组织、管理电子期刊的一个平台,没有对纸本期刊进行统一揭示。笔者认为,构建期刊导航系统便于依据电子期刊的特点对其进行更有效的管理。因此图书馆应该以期刊导航系统为核心,在整合订购的电子期刊资源的基础上将OPAC中的纸本期刊纳入期刊导航系统中,真正为读者提供“一站式”的期刊服务。
在调查的10家图书馆中,大部分图书馆对期刊的著录和揭示并不充分,都只是简单地著录“刊名”、“出版信息”及URL链接。只有个别几家图书馆揭示了馆藏期刊被EI或SCIE/SSCI/A&HCI收录的情况。揭示馆藏期刊被权威检索数据库收录的情况可以更有利于读者了解期刊的学术价值,因此在设计导航系统时应该重视对这方面信息的揭示。
大部分高校图书馆期刊导航系统的检索功能都比较简单,只能进行单个词的查找,没有多个词的逻辑组配检索功能,不利于精确查找某一种期刊。而且在按学科角度浏览期刊时没有提供关键词的检索功能,读者只能翻页浏览,使用起来极不方便。本馆设计的期刊导航系统充分考虑了读者的使用习惯,提供更加细致、完善的检索功能,提高期刊的查全率和查准率。
建立该系统的目的是为了更全面地揭示西文期刊资源,方便读者更好地检索、使用,提高期刊的利用率,因此在设计中充分考虑了读者的需求,设置了以下功能模块:期刊检索、期刊浏览、期刊系统管理与维护。如图1所示。
检索功能是西文期刊导航系统的主要功能。系统提供刊名、关键词、ISSN号等途径的检索,匹配方式分为“前方一致”、“模糊匹配”、“精确匹配”。为了便于读者精确检索结果,在结果页面中还提供了二次检索功能。
刊名字顺浏览:读者可以按26个英文字母选择浏览期刊,或全部浏览。
学科浏览:建立期刊导航系统所需的电子期刊数据来源于本馆购买的7个西文电子期刊数据库,其信息主要由数据库商提供。纸本西文期刊的数据由图书馆期刊部提供。对这些数据进行学科分类不仅为读者提供了一个非常有价值的检索点,也使从学科角度统计分析西文期刊馆藏成为可能,这为开展学科导航服务打下了很好的数据基础。本馆期刊系统的分类主要依据《中国图书馆分类法》,参考数据库商对收录期刊的分类描述,确定期刊的具体类目范围,为读者提供更专业的导航。
期刊来源数据浏览:将7个西文期刊数据库按名称字母顺序排列。读者可浏览各个数据库的简要介绍及各个数据库收录的期刊列表。
EI来源刊及ISI来源刊:为读者提供最近一年的EI及SCIE/SSCI/A&HCI收录的来源期刊。读者可按刊名字母顺序浏览,也可以通过关键词在来源期刊中进行检索。系统还将本馆收藏的电子期刊、纸本期刊与EI/SCIE/SSCI/A&HCI收录的来源期刊做了链接,方便读者查看本馆收藏的来源期刊全文。
后台管理有统一的管理入口,须经过用户名及密码校验后方可进入。在后台的管理平台中,期刊信息维护人员可以对期刊进行检索、删除、修改、导入或导出期刊数据等操作。可以完成URL的验证、批量更改及个别记录的添加/修改。系统管理人员还可以对期刊的点击率进行统计、排序,通过统计数据评价已购电子期刊及纸本期刊的使用效率。
该系统除了具备检索、浏览、后台维护、管理等功能外,还对本校三校区的纸本期刊与电子期刊进行了更加充分的揭示。不仅著录了“刊名”、“ISSN”、“出版信息”、“收藏范围”,还揭示了期刊被EI、ISI(SCIE/SSCI/A&HCI)收录的情况,同时给出了期刊的影响因子。这些信息的揭示更便于读者了解期刊的学术价值,有针对性地选择使用。
开发环境:Eclipse;后台数据库:SQLServer2000;Web服务器:Tomcat5.5。
期刊导航系统采用基于浏览器/服务器(B/S)的体系结构,利用当今较为流行的Web系统开发框架Struts+Hibernate。表示层用JSP技术结合Struts强大的自定义标签来实现,持久层通过Hibernate完成对象和关系的映射,业务层通过Hibernate API来操纵数据库,进而实现整个Web的应用。
Struts提供视图和控制层的支持,Hibernate提供数据层的支持,这种开发组合不但分离了业务逻辑和表示层,而且简化了开发人员在数据库逻辑方面的工作。既在较大程度上节约了期刊导航系统的开发成本,又提高了工作效率。
4.3.1 Web层应用Struts框架
表示层主要是期刊的检索和显示页面,及Struts框架中所引入的Form表单等。它由Struts实现,以Struts-config.xm l为核心,通用的控制组件ActionServlet承担MVC中Controller的角色,ActionForm类封装用户界面的数据元素,用Action类实现业务逻辑、动作处理、链接转向。下面我们就西文期刊导航系统如何在Web层应用Struts框架的问题进行分析。
导航系统主界面(见图2)是用户看到并与之交互的界面,是通过INDEX.JSP技术实现的,它在Struts框架中代表视图(View,或称表示层)部分,INDEX.JSP的部分源代码如下:
在表示层JSP中,没有任何处理业务逻辑过程的JAVA程序代码。读者在导航主页上按刊名字顺浏览时,当点击字母“A”时,onClick事件激活视图JSP文件中的脚本程序Read-Data(mStr),该函数中 formStr.action=“/ReadData.do?……”将请求发给Struts框架中的核心组件控制器,由控制器根据配置文件struts-config.xml的配置信息来决定业务流的转向。在该系统的struts-config.xml中,首先需要将客户端请求的页面中的FormBean在配置文件中声明。
type="magazine.frameworks.actionforms.JournalsForm"/> 在这里的FormBean也是属于MVC中的显示模块。Struts框架将JSP页面里的输入信息用Set方法存入到这个Form-Bean中去。以便让Action子类来使用。 type="magazine.frameworks.actions.JournalsAction"parameter="method"scope="session"> 在这个映射文件里,指明了处理客户端请求的Journals-Action子类以及处理后得到不同结果返回的不同页面。parameter=“method”是指用户在提交请求时取得method参数,根据method参数调用相应的方法。如:表示层INDEX.JSP脚本程序中“/ReadData.do?method=Search&Char=”+mStr+“&Cur-Page=1&OrderStr=TITLE”,就是把页面请求传递给对应JournalsAction子类中的Search方法,由这个方法去完成期刊检索的业务处理。这个JournalsAction子类就是MVC中的Model模型模块。这样,业务逻辑就可以和表示层彻底分开了。传递给这个方法的参数有:读者点击的字符Char=A,默认的当前页码CurPage=1,默认的浏览顺序OrderStr=TITLE(期刊名称)。 4.3.2 持久层创建Hibernate连接数据库的配置文件 Hibernate的配置文件有两种形式:一种是XML格式的文件,默认文件名为hibernate.cfg.xm l;还有一种是Java属性文件,采用“健=值”的形式,默认文件名为hibernate.properties[2]。 本实例使用Java属性文件的格式创建Hibernate配置文件。连接SQL Server2000数据库的hibernate.properties配置文件代码如下: hibernate.dialect=net.sf.hibernate.dialect.SQLServerDialect//指定数据库使用的SQL方言 hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver//指定数据库的驱动程序 hibernate.connection.url=jdbc:microsoft:sqlserver://211.68.37.160 :1433;DatabaseName=qikandaohang;Select-Method=Cursor;characterEncoding=GBK;//指定连接数据库的URL,包括服务器IP地址和数据库名 hibernate.connection.username=sa//指定连接数据库的用户名 hibernate.connection.password=123456//指定连接数据库的口令 Hibernate对多种数据库,如MySQL、Oracle和Sybase等,都有着良好的支持功能,我们只需简单修改hibernate.properties的配置文件,就可以实现低层数据库的切换。 目前该系统已投入使用,运行效果良好。但由于种种原因,有些地方还需要逐步完善。例如:网上有许多学术价值非常高的开放存取期刊,应将这些期刊资源纳入到导航系统中来,统一揭示给读者。另外,应在期刊导航系统中设置个性化的服务功能,使读者可以收集、组织和维护自己定制的有关电子期刊资源的网站链接;可以根据需要定制自己所需的期刊资源或文献信息;可以保存检索参数、个人检索记录与特殊记录;可以提交原文传递申请等等。 [1]赵乃.电子期刊管理——体系、方法与实践[M].大连:大连理工大学出版社,2006:125-126. [2] 孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005:20.5 改进方向
——以河北大学图书馆为例