基于协同浏览的实时参考系统的设计与实现_实时系统论文

基于协同浏览的实时参考咨询系统的设计与实现,本文主要内容关键词为:实时论文,系统论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

【分类号】G250.76

1 引言

实时参考咨询(Real-time reference或者Live online Reference)是咨询员通过网络以即时交互的方式为读者提供参考咨询服务的一种方式,是一种在虚拟环境下读者与专家的交互过程[1]。实时参考咨询服务摆脱了传统参考咨询在空间上的局限性,克服了延时参考咨询响应时间长的缺点,并且可以通过协同浏览等功能为用户提供更直观的咨询服务,大大提高了咨询的效率,增强了咨询的效果。

在笔者看来,一个完善的实时参考咨询服务系统应该包括下列服务[1]:

(1)协同浏览(Co-browsing):咨询员和读者可以相互推送网页,而且双方都可以看到对方对网页的操作,包括网页地址的变化,检索词的输入和网页拖拽动作等等。

(2)咨询脚本数据库记录(Transcript database):咨询员和读者的实时咨询内容会被记录在数据库中,以备检索,同时也可以将这个咨询脚本发送到读者指定的邮箱里。

(3)知识库保存(Knowledge base):对数据库中的文本咨询内容记录进行加工整理,形成知识,并存入知识库。

(4)电子邮件辅助(E-mail):将实时参考咨询过程中遇到的复杂问题,在咨询结束后以电子邮件的方式将答案发送到读者的电子邮箱中。

(5)图片嵌入(Image):咨询员可以在咨询中嵌入图片来帮助表达自己。

(6)文件传递(File transferring):将读者需要的文档直接传送给读者。

(7)远程控制(Remote control):咨询员可以远程控制读者的电脑,帮助读者完成系统安装配置等复杂的操作。

(8)后台通道(Back channel):咨询员可以通过该功能将读者的提问转发给其他咨询员,通过协作来完成对读者提问的解答。

其中,协同浏览是实时咨询的一个重要功能,以协同浏览为主要交流手段的实时咨询方式正在逐渐成为主流。咨询馆员通过协同浏览可以给读者展示相关数据的检索过程和结果,以增强读者的信息检索能力。协同浏览利用自己独特的读者交流方式很大程度上提升了实时参考咨询服务的读者教育能力[2]。

本文阐述了CSDL(国家科学数字图书馆)实时参考咨询系统的设计方案,并重点阐述了协同浏览的技术实现,希望以此与各位同行进行交流,共同探讨实时咨询的技术需求及实现办法,不断完善实时参考咨询的功能。

2 协同浏览的三种技术思路

协同浏览也叫做“协作Web浏览”(Collaborative Web Browsing,CWB)[3],该技术允许处于分布状态的Web读者可以共享同一个Web页面,并且具有双向网页推送和动作监视等功能。咨询员在输入检索词或者其他要求输入的文本项目时,读者可以看到咨询员所输入的内容;咨询员进行鼠标点击、移动、翻页、拖拽等动作时,读者也可以看到。

现在常用的协同浏览的技术思路有3种[4],每种都有自己的特点,可以满足不同系统对协同浏览的需求。这3种技术思路分别是:

(1)咨询员向读者的浏览器发送指令,让其浏览一个特定的URL,以此实现咨询员和读者共同访问同一个网页。这种方式效率比较低,而且无法解决网页的身份认证问题,但是实现简单,网络负担小。针对这种技术思路,可以采用浏览器为客户端,以浏览器插件作为解决方案。

(2)咨询员和用户都连接到另外一台计算机,即代理服务器。代理服务器是真正用于浏览的电脑,它会将浏览的内容同时发送给咨询员和用户,实现协同浏览。这种方式不受身份认证问题的困扰,但是硬件消耗比较大。在这种技术思路下,咨询员与读者的终端都可以采用流行的浏览器,例如IE等等,并且技术上不需要为浏览器添加任何插件。

(3)咨询员远程控制用户的电脑,进行操作。这种方式功能强大,理论上可以实现读者端的任何操作,但是会消耗大量的带宽,而且这种远程控制会降低读者电脑的安全性。普通的浏览器不能够满足这种思路的实现,因此必须另外开发客户端软件作为解决方案,这无形中增加了系统技术开发的难度和用户的开销。

这3种技术思路各有优劣,一般情况下不会同时被采用,具体采用哪种思路需要在系统设计时具体问题具体分析。

3 CSDL实时参考咨询系统的设计与实现

CSDL参考咨询项目一期建立了一个延时参考咨询系统[5],项目二期的目标是建立一个分布式延时参考咨询系统,内嵌实时参考咨询系统。其中,协同浏览更是实时参考咨询系统的技术开发重点,其目的是为读者提供方便、直接、快捷的服务[6]。

实时咨询是延时咨询的有力补充,因此,它的设计及实现必须要基于延时咨询系统,在延时咨询系统设计的基础之上进行需求分析。

3.1 CSDL实时参考咨询系统的需求、技术框架与流程

通过对参考咨询服务系统二期项目和分布式延时咨询系统框架的分析,得出了以下这些关于实时参考咨询系统的需求。

实时参考咨询系统基于协同浏览,因此必须首先考虑协同浏览的实现,实时咨询系统的其他功能需要在协同浏览实现的基础上继续开发;实时参考咨询系统内嵌于CSDL分布式参考咨询系统,是它的有机组成部分,因此,实时参考咨询系统必须同分布式参考咨询系统有着良好的接口,保证读者的无障碍浏览[7];延时系统完全基于浏览器,为了减轻读者的负担,实时咨询系统的客户端也应该以浏览器为基础开发[7];对于读者,实时参考咨询系统必须提供代价最小的服务,不开发另外的客户端或者浏览器插件是最理想的方案;由于咨询员精力有限,现在只能实现一对一的实时咨询,即每个读者只能同时与一个咨询员进行咨询,咨询员只能同时与一个读者进行咨询;为了保证咨询的顺利进行,保护大多数读者的利益,咨询员必须具备实时咨询的管理权限,可以剔出恶意咨询或者闲聊的读者,以便更好地为其他读者提供服务。

结合以上的需求分析与之前讨论的技术思路分析,笔者决定采用代理服务器技术思路及使用单纯的浏览器作为客户端的方式来实现协同浏览,而其他功能也在这个思路的基础上实现,逐渐扩展成为一个实时咨询系统。在服务器技术上,笔者选择了与延时系统相一致的JSP技术和J2EE技术,后台采用Apache Tomcat作为服务平台,采用MSSQL Server2000作为数据库支持。如此选择的好处在于,采用浏览器作为客户端的实时咨询系统具备更强的兼容性和通用性,其开发相对容易,与延时系统的接口设计也比较简单。实时参考咨询系统技术框架见图1。

图1 实时参考咨询系统技术框架图

实时参考咨询系统流程见图2。

图2 实时咨询系统流程图

读者和咨询员首先需要通过Web浏览器访问代理服务器。两者在登录和登出的同时都会修改自己的状态,状态代码保存在数据库中。整个流程是:首先,咨询员登录,开启一个实时咨询线程,自己的状态将自动改为“在线并空闲”,等待读者加入;读者登录后,只能加入状态为“在线并空闲”的咨询员的实时咨询进程;读者加入后,状态自动改为“正在咨询”,咨询员的状态将自动改为“忙碌”,接着读者可以享受咨询员的文字服务、协同浏览服务、文件传送服务等等;在结束咨询的时候,读者登出,会自动修改自己的状态为“空闲”,并把咨询员的状态改为“在线并空闲”,并进入评价界面,提交评价意见后退出到延时咨询,同时评价意见也会记录入数据库。管理员登出的时候,也会在数据库中自动修改自己的状态为“离线”。

3.2 协同浏览的技术实现

在确定了实时咨询系统的流程之后,就需要考虑协同浏览的实现。笔者参考了一些采用代理服务器进行远程响应和网页推送的代码,决定采用Servlet技术,并设计了协同浏览技术实现模型。协同浏览的技术实现见图3。

图3 协同浏览技术实现图

笔者在远程服务器上部署了一个Servlet,用于响应咨询员和读者提交请求。咨询员登录时,需要首先在Servlet中注册自己的信息。读者登录实时咨询系统时,就会在相应的咨询员进程中注册自己的ID等独有信息。注册的目的是确定咨询员和用户的一一对应关系。

注册之后,双方都会进入到相应的浏览器界面。当咨询员在自己的协同浏览网址输入框中输入所需推送的网址后,所输入的URL会被提交给Servlet,Servlet就会启动另外一个进程Corequest,并将URL转交给它。Corequest会自动连接URL,获得从URL所属服务器发送过来的HTTP流,将其中的HTTP代码和HTTP头信息分别保存到临时文件,并通知Servlet。Servlet会从这个HTTP代码的临时文件中读取信息,并将这些信息输出到咨询员和读者的浏览器上,呈现为HTML网页。这就是协同浏览的技术过程。

在这个过程中,为了使协同浏览操作起来更加顺利和方便,系统需要实现这样一个效果:让咨询员在协同浏览的窗口网页上点击网页链接,也可以实现协同浏览,将该链接所指的网页推送到读者的协同浏览页面上,而不需要每次都必须在网址输入框中输入所需要推送的URL。因此,在获取远端URL的HTTP流之后,Corequest还需要对这些HTML代码进行处理,目的主要就是让HTML的URL链接标签“”中href的值变成经过点击后可以将它原来所指向的URL提交到代理服务器上的Sewlet的形式。在处理完毕后,Corequest进程会通知Servlet来读取这个修改过的HTML临时文件。由于咨询员与读者的浏览器所显示的都是同一套HTML代码,因此,他们看到的网页内容是一模一样的,并且不但咨询员可以通过点击协同浏览的网页上的链接将所指向的网页推给读者,读者也可以享受同样的功能。

3.3 实时参考咨询系统其他功能的实现

在协同浏览功能的基础之上,笔者开发了其他的功能,使之能够同协同浏览功能相配合,完善实时咨询系统。系统的其他功能如下(图4左为咨询员界面,右为读者界面):

图4 实时参考咨询系统界面

(1)界面设计:客户端界面需要同时呈现出文字内容和协同浏览页面,以及控制页面等等。因此,笔者采用了Frame技术,将一个浏览器网页分割为几个部分,利用不同的部分来呈现不同的页面。咨询员界面分成了4个部分,分别是控制台,文字部分,协同浏览界面和网址输入(见图4左)。读者界面分3个部分,分别是输入部分、浏览部分和文字部分(见图4右)。

(2)文字咨询功能:笔者参考了各种知名聊天软件,采用无刷新技术实现了文字咨询。无刷新技术主要采用了SUN推行的JavaScript技术,可以在不刷新文字显示页面的情况下实现动态的页面内容变化。其技术特点是,在读者的浏览器中有一个大小为0的网页,该网页处于不断刷新状态,保持同服务器的联系。如果有新的文字内容需要呈现给读者,该网页会利用JavaScript将文字自动添加到读者的文字部分中,而负责显示文字的Frame页面是不需要刷新的。

(3)文件传送功能:文件传送的方式有多种。一种方式是采用FTP方式,通知读者FTP地址及账号、密码、文件名,读者可以自由下载。这种方式代价最低,但是安全性差,无法保证FTP上其他读者资料的安全。另一种方式是采用客户端的点对点发送方式。这种方式应用很广,但是需要在浏览器中添加插件,与设计中采用纯浏览器作为客户端的方案不相符,而且开发难度比较大。在该系统中,笔者选择了一种间接的方式实现了文件传送,即利用文件上传机制,先将咨询员想要传送给读者的文件上传到服务器,然后在读者的文字咨询界面上给出该文件的HTTP下载链接,读者点击下载。这种方式具有以下优点:

①上传的文件存储在服务器上,读者一旦丢失了所传送的文件,可以在聊天记录中找到该文件的下载地址,重新下载,免去了重新登录实时咨询要求咨询员重新传送文件的过程,同时节省了咨询员和读者双方的时间,提高了效率;

②HTTP下载安全可靠;

③读者点击即可下载,符合读者的上网浏览习惯。

(4)实时转入延时功能:如果读者提出的问题咨询员无法立即回答,可以将该问题转入延时系统,将其作为延时系统的问题进行回答,并在作答后以E-mail形式将答案发送给读者。

(5)敬语功能:系统预设了一些常用敬语,咨询员可以方便地利用鼠标调用,缩短了咨询员的响应时间。

(6)在线咨询员查看功能:咨询员可以实时查看在线咨询员的特长、单位等信息,当读者提出咨询员不擅长的问题时,可以建议读者更换擅长此类问题的咨询员进行提问。

(7)咨询内容数据库:每一次读者和咨询员进行文字咨询的内容都会被记录在数据库中。读者可以通过延时咨询中“我的问题”功能界面进行检索和访问。每次读者发送文字时,都会立刻保存入数据库。每次咨询结束后,都会将咨询内容以网页形式发送到读者的邮箱中去。

(8)读者管理功能:咨询员可以随时剔出当前正在咨询的读者。

(9)断线重连功能:客户端浏览器同服务器的交互方式采取了由客户端不断刷新来保持同服务器联系的方案。这种方案虽然会占用较大的网络带宽,消耗服务器的大量资源,但是开发难度小,而且通用性强。考虑到现今网络带宽已经足够而且服务器硬件的发展也足以应付大量的并发请求,因此,决定采用这种刷新机制来保证客户端同服务器的信息畅通。同时,为了保证客户端浏览器同服务器的连接正常,在网络出现短暂故障的时候,读者或者咨询员可以采用该功能强制窗口刷新,重新恢复原来的实时咨询进程。

(10)咨询质量评价功能:读者在完成一次实时咨询之后,评价页面会自动弹出。读者可以在评价页面中对本次咨询质量进行评价,提出自己的意见和建议。这些意见和建议会被保存入数据库。

4 结语

如今,实时参考咨询系统已经试运行了半年,呈现出了较稳定的状态,平均每天服务10个读者,得到的评价都是比较满意的。该系统弥补了延时咨询系统的不足,达到了其应有的效果。但是,相对于完整的实时咨询系统,完善的协同浏览功能、白板、图片、远程控制等功能都还没有实现,今后还要加入咨询员服务读者的一对多、多对多等方式,以及咨询员之间的后台通道功能等等,这都需要更进一步的努力。

Ajax技术支持采用JavaScript来向服务器发出请求,这样可以大大减少网络负担,避免阻塞读者,而且不刷新就可以更新页面内容。Ajax可以用来开发更加动态、响应更加快速的网页程序。今后的实时参考咨询系统会考虑采用Ajax技术,开发更加友好、方便的前台读者窗口。

收稿日期:2006-07-26

收修改稿日期:2006-08-04

标签:;  ;  ;  ;  ;  ;  ;  

基于协同浏览的实时参考系统的设计与实现_实时系统论文
下载Doc文档

猜你喜欢