基于RSS技术的重点学科信息推送系统设计及实现
薛娟
南京邮电大学图书馆 南京 210003
摘要

概述图书馆RSS技术应用的现状,针对高校重点学科建设问题,提出将高校重点学科资源与图书馆信息推送服务相结合的观点。从设计思路、系统功能、技术实现三个方面介绍基于RSS技术的重点学科信息推送服务系统的实现方法,扩充图书馆RSS的应用形式,提高图书馆资源的利用率。

关键词: 重点学科; 信息推送; RSS技术
Design and Implementation of Key Subjects Information Push System Based on RSS Technology
Xue Juan
Library of Nanjing University of Posts and Telecommunications, Nanjing 210003,China
Abstract

The paper firstly summarizes the current application of RSS technology in library. According to the problems of key subjects information construction in universities, the author presents an idea of combining the information of key subjects in universities with library information push service. This paper introduces the approach on key subjects information push service system based on RSS technology from the aspects of design methodology, system function, and technology implementation. The system expands the form of RSS application in library, and improves the utilization rate of library resources.

Keyword: Key subjects; Information push; RSS technology
1 引 言

RSS技术是Web2.0的核心技术之一,是一种用于共享新闻标题和其他Web内容的XML格式。更准确地说,RSS是一种轻量级、多用途、可扩展的元数据描述及联合推广格式, 能够用于共享各种信息。

随着Web2.0技术的发展与成熟[ 1],RSS技术在升级图书馆传统服务、建设“图书馆2.0”中具有重要作用, 其中应用较多的是[ 2]:

(1)馆内新闻发布,如中国科学院国家科学图书馆的服务公告、台湾大学图书馆开通的RSS 资讯服务, 集馆内新闻与分类新到资料通告于一体;

(2)专题指南/导航,如武汉理工大学图书馆的专题信息门户RSS 推送服务;

(3)预约通知,如厦门大学图书馆预约通知,可以根据借书证号定制RSS Feeds;

(4)新资源通报,如Ann Arbor地区图书馆不但提供RSS通报服务,还能够对OPAC 搜索结果定制RSS,使用户能够及时地掌握图书馆最新资源。

高等学校重点学科的发展建设关系到整个学校的发展,对于高等院校来说,重点学科就是其特色学科。在重点学科的建设发展中,高等院校的图书馆必须充分发挥信息资源的优势,主动开发网上重点学科信息。随着RSS技术的发展和应用,对重点学科信息实现主动推送服务成为图书馆服务的一个发展趋势。本文结合南京邮电大学重点学科资源和图书馆的实际工作研究,开发了基于重点学科的RSS信息推送服务系统,扩充了RSS在图书馆的应用领域,将学科信息以推送的方式展现在读者面前,为学科建设提供新的服务领域,为相关专业科研人员提供个性化信息服务,满足其准确、快捷地获取所需学科信息资源的要求。

2 系统设计
2.1 需求分析

在通常情况下,读者要获得图书馆的网络资源服务,首先访问图书馆网站主页,然后选择相应的服务链接,通过一站式检索或单个系统的逐步检索获得所需结果。这种服务是被动式的服务,用户必须主动关心才能知道结果,耗时又耗力。而传统的推送服务如采用邮件或手机信息提示推送、采用专用网页定制服务、基于频道订阅推送服务等也都存在一些问题,主要表现在以下两个方面[ 3]:

(1)过分依赖于计算机自动化技术,忽略了人特别是学科馆员在信息服务过程中的主观能动性;

(2)个性化服务不突出,给出的结果集合太大,大多存在信息过载的状况,占据大量网络带宽,效率低下。

本系统的设计目标是由图书馆学科馆员对图书馆现有电子资源进行采集和筛选,通过创建相应的学科目录,订阅相关学科的RSS源,同时本系统还创建了一个基于Web的RSS阅读器,读者可直接在本系统中阅读RSS信息,而不需要再安装其他RSS阅读器,集订阅、阅读于一体。读者只要选择自己所关心的学科,相关学科的最新信息就能及时主动地推送到桌面,而且不需要访问网站就能得到最新的内容。

2.2 功能模块设计

本系统包括RSS订阅模块和RSS阅读模块两个部分[ 4]:

(1)RSS订阅模块

该模块主要完成以下功能:

①创建RSS列表:根据本校的重点学科分类,创建相应的RSS列表;

②订阅RSS源:将各学科相关的RSS源的URL地址添加到数据库中;

③修改RSS源:修改已经添加到数据库中的RSS源的各种属性;

④管理RSS源:对添加到数据库中的RSS源进行管理,提供重定向到“添加”和“修改”RSS源页面的按钮以及删除功能。

(2)RSS阅读模块

该模块主要提供RSS阅读功能,读者只需选中感兴趣的RSS源就可直接阅读相关信息,主要完成的功能有:

①解释RSS的频道,并读取频道的信息;

②解释RSS内容中的Item,并读取Item的信息;

③通过上述读取的频道信息和Item信息,创建一个RSS页面,在页面中显示RSS的内容。

3 系统实现
3.1 系统架构

参照B/S模式的三层结构和本系统的实现模式,确定系统结构如图1所示。后台数据采用SQL Server关系数据库[ 5, 6],系统开发采用ASP.NET2.0技术。

图1 信息推送服务系统结构

3.2 系统流程图

信息推送服务系统流程如图2所示:

图2 信息推送服务系统流程图

3.3 数据库设计

通过对信息推送系统所需数据进行分析可以发现,RSS信息推送系统的数据库需要由两张表组成:

(1)RSS链接地址表RSSUrl,该表存储RSS页面的链接地址。RSS阅读器将读取该表中存储地址的页面内容。

(2)学科馆员信息表User,该表存储管理该系统的学科馆员的用户名及密码,只有通过身份验证后,学科馆员才能进入后台管理系统,对RSS源进行管理。

基于以上分析,本系统在SQL Server 2000数据库管理平台上建立用户数据,其中主要的数据表及其结构如表1所示:

表1 系统数据库结构
3.4 系统关键技术实现

因为本系统是集订阅、阅读于一体的专业化学科信息推送系统,由专业的学科馆员对信息进行收集和订阅,读者只需选择感兴趣的学科进行阅读即可,所以在系统中创建阅读模块是该系统实现的关键技术。

阅读模块中首先定义了一个类,用来创建RSS页面。该类包括创建RSS页面的头部、Item项、尾部,以及输出RSS页面的方法[ 4]:

(1)创建RSS页面的头部

方法CreateRSSHeader (XmlTextCreater creater)创建RSS页面的头部。它通过XmlTextCreater对象creater输出RSS页面的必要内容,如RSS页面标志、版本、频道的链接、频道的描述、版权信息等。主要代码如下:

private XmlTextCreater CreateRSSHeader(XmlTextCreater creater)

{//输出RSS的版本信息

creater.CreateStartDocument();

creater.CreateStartElement("rss");

creater.CreateAttributeString("version","2.0");

//输出RSS中的频道元素

writer.WriteStartElement("channel");

//输出RSS中的标题

writer.WriteElementString("title","……");

//输出RSS中的链接

writer.WriteElementString("link","……");

//输出RSS中的描述

writer.WriteElementString("description",

"A RSS document generated using XMLTextWriter");

//输出RSS中的版权信息

writer.WriteElementString("copyright","Copyright 南京邮电大学图书馆");

return writer; }

(2)创建RSS的Item项

方法WriteRSSItem(XmlTextWriter writer,string title,string link,string description)创建RSS页面的Item项。程序代码如下:

private XmlTextWriter WriteRSSItem(XmlTextWriter writer,string title,string link,string description)

{writer.WriteStartElement("item");//创建RSS中的一个Item项

writer.WriteElementString("title",title);//写Item项中title属性的值

writer.WriteElementString("link",link);//写Item中link属性的值

writer.WriteElementString("description",description);//写Item中description属性的值

writer.WriteElementString("CreateDate",DateTime.Now.ToString("r"));//输出日期

writer.WriteEndElement();

return writer; }

(3)创建RSS页面的尾部

方法WriteRSSTailer(XmlTextWriter writer)创建RSS页面的尾部。程序代码如下:

private XmlTextWriter WriteRSSTailer(XmlTextWriter writer)

{ //输出RSS的文档结尾部分

writer.WriteEndElement();

writer.WriteEndDocument();

return writer; }

(4)输出RSS页面

方法CreateSampleRSS(HttpResponse response,params RSSItem[] items)创建RSS页面,即在网上输出RSS页的内容。程序代码如下:

public void CreateSampleRSS(HttpResponse response,params RSSItem[] items)

{ //创建写RSS文档的对象

XmlTextWriter writer = new Xml TextWriter

(response.OutputStream,System.Text.Encoding.UTF8);

WriteRSSHeader(writer); //写文档的头部

//写文档的Item

foreach(RSSItem item in items)

{WriteRSSItem(writer,item); }

WriteRSSTailer(writer); //写文档尾部

//缓存页面

writer.Flush();

writer.Close();

//设置页面的输出格式

response.ContentEncoding = System.Text.Encoding.UTF8;

response.ContentType = "text/xml";

response.Cache.SetCacheability(HttpCacheability.Public);

response.End(); }

4 应用实例

该系统在本馆网站上试运行状况良好,效果如图3图4所示。其中,图3是RSS源管理页面,该页面可实现RSS源的订阅、修改和删除,由相关学科馆员进行维护管理;图4是RSS输出页面,即在网上输出相应RSS页的内容。

图3 RSS源管理页面

图4 RSS输出页面

5 结 语

本文对基于RSS技术的学科信息推送服务系统进行了分析和研究,同时给出了实现该系统的关键技术-RSS阅读模块的主要代码。该系统根据学科进行分,整合图书馆的数字资源,同时以推送的服务方式将信息资源展示给读者。这种推送服务是对目前图书馆RSS服务的一种扩充,是一种新的信息服务模式,可以很好地为学科建设服务。

参考文献
[1] Dave J. RSS and Atom in Action: Web 2. 0 Building Blocks[M]. 北京: 电子工业出版社, 2007. [本文引用:1]
[2] 刘佳音. 应用Web2. 0 核心技术的图书馆信息服务创新[J]. 图书馆学研究, 2008(3): 98-101. [本文引用:1]
[3] 胡新平, 张天俊, 董建成. 基于数字图书馆的RSS 推送服务研究[J]. 情报杂志, 2008, 27(1): 55-56. [本文引用:1]
[4] 郑耀东. 精通ASP. NET2. 0的Web 2. 0应用——Blog. Tags. NAS. XML社区. Ajax Mail[M]. 北京: 人民邮电出版社, 2007. [本文引用:2]
[5] 张跃廷, 王小科, 许文武. ASP. NET数据库系统开发完全手册[M]. 北京: 人民邮电出版社, 2007. [本文引用:1]
[6] 施伟伟, 王敬栋. ASP. NET 2. 0数据库通用模块开发与系统移植[M]. 北京: 清华大学出版社, 2007. [本文引用:1]