使用WCF构建区域图书馆

2011-04-10 02:22渝,郭
制造业自动化 2011年9期
关键词:异构契约编程

朱 渝,郭 毅

ZHU Yu,GUO Yi

(四川理工学院 图书馆,自贡 643000)

0 引言

区域图书馆是目前图书馆发展的一个重要的模式,主要是通过对某一行业或地理区域的文献资源进行整合,形成一个基于网络的虚拟图书馆,实现图书馆的文献资源建设、流通等功能。Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的区域图书馆。基于WCF构建区域图书馆的过程中,能使用SOA对图书馆的各种服务和功能进行规划,通过契约对服务进行公开和约定,可以使用OO对具体的服务进行设计,最终通过WCF这一平台或编程模型来实现区域图书馆。

1 在WCF中应用SOA来设计区域图书馆

现代的区域图书馆应该是一个以服务为中心的图书馆。区域图书馆的可以看作是一个又文献的查询、借阅、传递、咨询、读者认证等多种服务通过松耦合形成的一个服务集,那么在规划的时候就需要面向服务的体系结构(Service-Oriented Architecture,SOA)这一个组件模型来实现。同时,区域图书馆的各个成员的提供的信息资源彼此孤立,结构各异,这也需要将这些异构资源进行整合和封装,使得SOA也成为了一个必然的选择。(参考基于SOA的数字图书馆研究)

一方面,区域图书馆的特性使得SOA成为系统设计的必然选择,另一方面, WCF合并了当前分布式系统技术,为SOA提供了良好的支撑。WCF的编程模型为区域图书馆的实现提供了统一、简化并且可管理的分布式系统开发的方法,能够很好的支持SOA。使得我们能够在设计区域图书馆的时候采用SOA,并通过WCF来编程模型来实现一个松散耦合的区域图书馆系统。

图1 文献传递

例如,使用WCF可以这样来设计区域图书馆中的文献传递系统(如图1所示)。整个文献传递系统主要包括两项服务:1)文献传递处理服务,主要用来接收文献请求;2)文献发送处理,主要用来对请求的文献进行发送。在区域图书馆中,需要处理文献传递请求数量很大,必须在文献传递处理器前加入一个路由器将传递请求分发到某个文献传递处理服务。在文献分发处理系统前面也加上一个分发路由器,其功能和文献传递路由器相同,将文献分发的请求转发到某个分发处理系统。其他的内部系统能与和文献传递系统相互通信和交换信息,和文献传递服务之间相互独立自治,任何一个服务的改动都不会影响其他服务。

2 使用契约来开放区域图书馆的服务

根据区域图书馆特点能够很快的构划出区域图书馆的SOA服务模型,当各个服务以及服务之间的联系一旦建立,我们就需要为区域图书馆的各个服务绑定到一个或多个端点上去,并通过契约来约束客户端端点允许的操作和有效服务方法使用的数据类型。

契约是用户定义某些方面的服务,如消息的格式与结构,以及具有同等重要性的服务的行为。(应用书WCF高级编程29页)在WCF中支持有三种契约格式,分别是服务契约、消息契约和数据契约。在应用这些服务在设计区域图书馆的服务的时候,主要是使用服务契约,来告诉客户提供的小事数据类型、操作位置、通信协议以及服务提供的操作等内容。如区域图书馆中的读者认证服务可以通过服务契约定义对服务端点有效的用户认证、密码修改、用户查询等有效的操作,还可以定义这些操作基本的消息交换模式,是单向、双向的。具体的实现可以通过WCF中的类和接口来进行定义。消息契约主要是对SOAP的控制,数据契约主要定义交换的数据协议,在设计这两个级别的契约一般很少用到。

3 在WCF中使用OO来实现区域图书馆中的服务

WCF中可以使用SOA在规划整个区域图书馆的中的各种服务以及服务和服务之间的关系。具体的实现某一服务的时候,除了使用契约来声名这一服务的行为和规范外,还需要对服务的具体行为进行设计和编码。这个时候在WCF中可以使用面向对象的方法(OO)来设计,通过对程序设计到的对象和对象属性、行为的分析,可以设计出一个一个结构清晰的区域图书馆中的具体服务内容。在WCF中对OO和SO的设计都能很好的支撑,并能使这两种方法同时应用到系统程序中去,这对于在构建区域图书馆的时候,可以灵活方便的选择自己熟悉的设计方法。

比如,在实现服务器端的读者验证服务的时候,用接口来定义并使用契约来声明。在LibUser类中来实现这个接口,就可以通过在类中的公开方法来实现用户的登陆和注销了。

WCF中通过SOAP进行通信的,这样一来能提高整个区域图书馆的通信效率和安全性,同时使得通信能够跨越不同的操作系统平台;由于基于WCF的区域图书馆服务和通信通过应用XML来解决各种异构数据之间通信问题,就可以将区域内的各种异构资源很好的进行整合,使的服务还能跨越不同的数据源[3]。最后,我们在客户端只需要发现和调用服务,就能够使用区域图书馆了。

[1] 百度百科.WCF [EB/OL].http://baike.baidu.com/view/1140438.htm?fr=ala0_1_1.2010-9-14.

[2] 徐震.基于SOA的数字图书馆研究[J].图书馆学研究,2009(10):13-15.

[3] 年福丰,刘秋让.基于WCF的异构数据源集成系统的研究和实现[J].科学技术与工程,2009(11):3116-3119.

[4] scot klein.WCF高级编程.北京:清华大学出版社,2008.

[5] 黄文镝,廖小梅,刘磊.论区域图书馆区位设置与规划[J].图书与情报,2009(6):8-13,50.

[6] 范亚芳,王传卫.我国高校区域性图书馆联盟建设模式研究[J].图书馆,2008(1):65-67,80.

猜你喜欢
异构契约编程
一纸契约保权益
试论同课异构之“同”与“异”
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
吴健:多元异构的数字敦煌
异构醇醚在超浓缩洗衣液中的应用探索
以契约精神完善商业秩序
LTE异构网技术与组网研究