基于WSRF的个性化信息服务研究,本文主要内容关键词为:信息服务论文,WSRF论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
收修改稿日期:2006-04-11
【分类号】 TP393
1 引言
在数字图书馆,用户需求信息的主要目的是利用知识信息解决自己科学研究中的特定问题,有效的信息服务一定是针对具体用户个人的课题、环境、知识等特征来实施的,因此,信息服务从本质上讲是个性化的,提供高质量的个性化服务是数字图书馆所面临的挑战。
网格技术和Web Service技术最初无论从应用方式上还是技术手段上都相去甚远,但随着它们各自的发展,现在已经融合在一起了。正是网格技术吸收了Web Service技术中的优点才有了今天的WSRF[1](Web Service Resource Framework),即Web服务资源框架,这种网格资源框架利用Web Service的技术手段来更新原有的开放式网格服务架构(Open Grid Service Infrastructure,OGSI)[2],使资源协同工作发挥更大的作用,使用户可以控制要获取信息的内容、时间、方式。
本文所提出的基于WSRF的个性化服务模式描述了如何利用丰富的数据库资源和分散在不同地域的网络资源为用户提供准确、及时、个性化和全程式的信息服务。
2 Web服务资源框架——WSRF
WSRF是被提议的Web服务规范的一部分,其目的是要阐明把“状态”怎样加入到Web服务中。Web服务资源框架通过一个隐含的资源模式[1] 为在Web服务之间创造有状态的资源定义了一个系统。
2.1 WSRF的相关规范定义
WSRF有5个标准化的规范定义,分别是:
(1)WS-ResourceProperties[3]:定义了如何使用Web服务技术来查询和改变与一个有状态资源相关联的数据。提供了一种标准的方法,可以用于关联数据和允许由客户端访问的资源。Web服务资源的特性声明代表了Web服务资源状态的一个投影或一个视图,这种投影又代表了一种隐含的资源类型,可以用来通过Web服务接口定义访问资源特性。
(2)WS-ResourceLifetime[4]:是指Web服务资源的生命周期规范,定义了销毁Web服务资源的两种方式:立即销毁和预定销毁。通过使用该规范定义的一些方法,资源实例的任何客户端都可以在一段特定的时间内建立和重新开始它们与资源实例的关系。
(3)WS-RenewableReference[1]:定义了端点变为无效时,对需要检索端点引用更新版本的策略信息的常规WS-Addressing端点引用。规范中的机制可应用于任何的端点引用,但是对于指向Web服务资源的端点引用尤为有用,因为它能够提供持久的、稳定的Web服务资源的引用,能够允许同一状态随着时间的推移被重复访问。
(4)WS-ServiceGroup[5]:定义了一种方法,通过这种方法,Web服务和Web服务资源可以为某个领域的特定目的而聚集或组合在一起。为了让请求者能够根据服务组(ServiceGroup)的内容进行有意义的查询,必须以某种方式来限制组中的成员资格。对成员资格的限制是通过使用分类机制以级别表达的,而每个级别的成员必须共享一组共同的信息来表达查询。
(5)WS-BaseFaults[6]:为基本故障定义了一个XML模式类型以及Web服务如何使用这种故障类型的规则。Web服务应用程序的设计人员经常使用别人定义的接口。当每个接口使用不同的约定来表示故障消息中的常见信息时,管理这种应用程序中的故障就会变得更加困难。
对问题确定和故障管理的支持可以通过一种通用的方法指定Web服务故障消息来加以增强。除此之外,还有一个不属于WSRF规范,却是必不可少的标准方法:WS-Notifications[1]。其本身是一套(包含3个规范)标准的规范,即:Notification、NotificationProducer、NotificationConsumer,这些规范为Web服务客户机定义一种标准的方式,以“订阅”特定的主题,并接收各种事件的通知。WSN系列规范只定义应该做什么,而不定义应该如何做,具体的实现由应用程序去完成。
2.2 WSRF的资源模型[7]
任何一个有状态资源构成于隐式资源模式下,都称作WS资源(WS-Resource)。即:Web Service+有状态资源=WS-Resource[7]。上节中的规范和方法都是围绕着WS-Resource来定义和工作的。为了便于理解,本节从两个角度进行解释。
从技术的角度来看这个问题[8],WS-Resource有以下两个特点:
(1)组件状态用XML文档来描述,用XML文档定义它和Web服务的接口类型。
(2)用“隐式模式”寻址和访问有状态资源,通过端点引用来寻址。对客户端来说,“隐式”指不需要了解有状态资源标识符(标识符代表有状态资源的身份信息,用来识别有状态资源)的内容。图1说明了通过资源C创建有状态资源的过程。
图1 WS-Resource框架模型
从实际的角度来看这个问题,正如个性化信息服务系统,一个特定的用户来请求检索信息,被检索的信息服务系统可以表示为一个有状态资源。其中资源是后面被屏蔽了的各种数据库和其它资源信息,它们能够提供“被检索”的服务,状态是要检索的特定用户的注册信息、个人偏好、检索历史等。这些状态可以被改变,而且是用信息服务这个对象的各种属性值来表示。例如,在一次检索中没有命中,则该状态会被记录并影响到下一次的检索(通常是排除前面没有命中的结果)。
通过将二者资源和状态结合起来,我们创建了一个WS-Resource。如何在应用程序中表示这个有状态资源呢?答案就在其ResourceProperties中,ResourceProperties是一个用来描述WS-Resource的XML格式的文档,如:
〈customizedInforServiceProp:customizedInforProperties
xmlns:customizedInforProp=" http://localhost/customizedInfor" 〉
〈customizedInforProp:major〉software〈/customizedInforProp:major〉
〈customizedInforProp:favorite〉BI,EAI,SOA〈/customizedInforProp:favorite〉
〈/customizedInforProp:customizedInforProperties〉
3 基于WSRF的个性化服务模式
Web Service解决了应用程序的互操作性和跨平台性,但是为了解决跨来自多个客户端的多个请求的状态维护,服务器应用程序必须有一种方法来确定每次交互中将要更新的状态数据,WS-Resource提出了一个隐含的资源(Implied Resource)模式来完成这项任务,基于此,本文提出在数字图书馆建立基于WSRF的个性化服务模式。
3.1 基于WSRF的个性化服务模式框架
(1)在深入研究WSRF技术规范之后,本文提出了如图2所示的个性化服务模式框架,主要模块功能均通过Web Service来实现,该系统的主要功能是用户根据自己的研究领域、信息需求、个人偏好、检索历史等对系统提出信息服务请求。
图2 个性化服务模式框架图
(2)主要模块功能
①用户分析模块
用户首次进入系统主页时,系统提示注册登录,注册完毕,进入定制内容的页面。定制完成后,将直接登录进入用户个人页面。根据用户的注册信息及用户行为(包括检索历史)对用户进行兴趣分析,建立相应的用户信息知识库,以便系统在服务过程中进行分析,及时调整为用户推送的信息。
②数据资源模块
用户感觉到定制过程比较麻烦,要进行一定的选择以及输入。系统可以先按不同专业和层次预制系统定制模板,也就是系统根据专业、层次、地域等针对不同用户的特点和需求事先组织若干个资源与服务集合(模板)供用户选择,同时,用户也可以重新定制学科资源以及相关主题。
③检索服务模块
这一模块是本文重点研究的部分,工作过程如图3所示。
图3 检索服务模块的工作过程
该模块对用户的检索提问进行智能分析,用户提交时,系统判断用户输入的数据是否正确、完整,如果输入有误,则重新返回输入页面,让用户重新输入。然后将分析得出的检索词,同时,结合用户的检索历史信息进行专业匹配分析,接着用分析得到的专业ID和检索ID来调用相应的检索服务,得出检索结果。如果用户满意,则将检索结果送到数据存储模块进行存储。如果不满意,则通过反馈检索模块返回给用户,进一步完善检索策略,直到用户满意。同时,将用户对该检索结果的满意评价信息也保存在用户信息库中,以便系统以后分析使用。在此结合检索专家的领域经验,为用户提供及时、准确的个性化信息服务。
在本模块中,用户的检索历史、用户偏好等作为有状态资源,也就是说,即使不与之交互也是存在的,同时还具有自己的属性值。
④反馈检索模块
根据初始检索显示的检索结果,由用户进行评价,并选择一篇相关性好的文献反馈给系统,系统将重新对检索特征项进行判别,自动生成新的检索结果。该模块主要用于提高用户的检索效果。
3.2 关键技术问题分析
本文将以IBM WebSphere Application Server5.1.2为测试环境,来描述如何创建和访问WS-Resource,使用WSDL文件来定义WS-Resource所使用的消息模式、端口类型和操作、服务和绑定等以及如何访问个性化服务系统。
(1)个性化检索服务的实现
可以使用EJB技术或者其它分布式组件技术来实现个性化的检索服务,和以往实现的信息检索不同的是:在检索的时候考虑用户的专业、偏好和检索历史等,以便提供更高的命中率,这些都是“检索服务”这个资源的属性也就是状态,改变这些状态会影响检索结果。
Public class CustomizedInformationService implements SessionBeans{
private SessionContext ctx;
String Major;
List Favorite;
List searchHistory;
public void setMajor( String Major)
{…}
public void setSearchHistory( List searchSubject)
{…}
public void searchInformation( String KeyWord) {…}
在实现中,我们定义了一些属性:Major为检索人员的专业信息,在查询时会优先将和检索人员专业相关的信息返回;Favorite存放检索人的偏好,可以定制和改变,通常用户可以在线设置,系统也会根据长期的查询历史来自动改变。例如,系统发现在过去的几十次查询中,用户查找的大部分信息都是和ERP相关的,就会将这个特点保留在用户偏好这个属性里面,作为下次查询时优先返回的结果领域,searchHistory属性存放检索人员的检索记录,在每次检索完之后会调用setSearchHistory()来改变“检索历史”的状态:将这次的检索记录保存,便于下次检索参考(通常是排除,因为要继续查找则说明检索人员尚未发现合适的信息)。其中主要的方法——searchInformation()方法是根据当前输入的关键词再参考当前最新的状态(Major,Favorite,searchHistory)来检索信息。
(2)个性化检索服务的服务描述WSDL
服务在实现之后需要通过Web Service描述语言来描述提供的服务。WSDL文档将Web Service定义为服务访问点或端口的集合。在WSDL中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此,可以对抽象定义进行再次使用。例如,用户要修改自己的专业信息,就需要调用setMajor()方法,可以描述如下:
〈element name=" SetMajorRequest" 〉
〈complexType〉
〈all〉〈element name=" Major" type=" String" /〉〈/all〉
〈/complexType〉
〈/element〉
〈message name=" SetMajorInput" 〉
〈part name=" body" element=" inforTypes:SetMajorRequest" /〉
〈/message〉
〈portType name=" MajorType" 〉
〈operation name=" SetMajor" 〉
〈input message=" tns:SetMajorInput" 〉
〈wsa:Action=" http://localhost/customizedInfor" /〉
〈/operation〉
〈/portType〉
〈service name=" CustomizedInforService" 〉
〈port name=" MajorPort" binding=" tns:MajorSoapBinding" 〉
〈soap:address location=" http://localhost/customizedInfor" /〉
〈/port〉
〈/service〉
在这里,SetMajorInput是将发送给服务器的消息作为输入的消息,其中用到的参数SetMajorRequest在文档开头的〈element〉域作了定义,对于改变“专业”的方法SetMajor(),已定义在〈PortType〉〈operation〉中。在标签〈service〉域中,已将定义的服务setMajor作了绑定。
为了简洁起见,这里只描述了发送给服务器的消息的定义,不描述返回的消息的定义。
(3)将个性化检索服务作为Web Service公开发布
SOAP规范在服务请求者和服务提供者之间定义使用XML格式的消息进行通信。将应用程序请求(在XML中)放入SOAP信封中(也是XML),并从请求者到提供者发送应用程序请求,提供者发回的响应也采用相同的形式。在WSRF环境中,服务的位置信息使用简单的统一资源标识符URI是不够的,需要借助WS-Addressing来提供一种方式指定关于位置的信息。
〈SOAP-ENV:Header〉
〈wsa:ToSOAP-ENV:mustUnderstand=" 1" 〉http://localhost/customizedInfor
〈/wsa:To〉
〈wsa:Action〉http://localhost/customizedInfor〈/wsa:Action〉
〈infor:UserId〉ZhangHong〈/infor:UserId〉
〈/SOAP-ENV:Header〉
〈SOAP-ENV:Body〉
〈SetMajorRequest xmlns=" http://localhost/customizedInfor.xsd" 〉
〈Major〉software〈/altitude〉…
〈/SetMajorRequest〉
〈/SOAP-ENV:Body〉
在此,在http://localhost/customizedInfor这个地址发布了前面创建的服务。
(4)从客户端调用已经创建并且发布的个性化检索服务
WS-Resource在实现以后,可以通过各种语言或者方式来访问,此处为Java客户端的访问示例。
javax.xml.soap.SOAPElement SE=customizedInforService.getProvider( userID) ;
com.ibm.samples.wsa.wsaddr.EndpointReference epr=
com.ibm.samples.wsa.wsaddr.EndpointReference.fromSOAPElement( SE) ;
com.ibm.samples.wsa.utils.JAXRPCHelper.setEPR( ( javax.xml.rpc.Stub)
customizedInforService,epr) ;
customizedInforService.searchInformation( keyword) ;
在不同的应用服务器平台上,调用过程会有一些差异。
在此,本文展示了在检索服务过程中如何创建和访问有状态资源,而且这些实现可以在对Web Service客户端作最小限度的改变的前提下进行扩展。
4 结语
本文介绍了当前最新的一种网格结构形式WSRF,并基于该技术对数字图书馆中的个性化检索作了探讨。目前,信息服务正在向专题集成和个性化服务方向发展,目标是满足用户特定的信息需求,其中提供个性化服务已成为热点。
基于WSRF的个性化服务是以数字资源整合为出发点,重点关注用户(或用户群)的个性,以提供个性化服务为目的的服务模式。目前,WSRF还在起步阶段,本文只是对WSRF技术在个性化信息服务中的应用原理进行了初步探索,如何将WSRF技术更广泛地应用到数字图书馆领域,还有待于我们进行更加深入的研究。