基于XML的Web Services在数字图书馆中的应用

2011-05-08 09:39宋海沂
图书馆学刊 2011年4期
关键词:调用服务器数字

宋海沂

(连云港师范高等专科学校科研处,江苏 连云港 222005)

目前,数字图书馆应用系统的开发普遍采用多层分布式结构,并大多以组件技术(如COM或CORBA)为设计基础,创建能够在应用程序之间可重用和共享的组件模块。但是,由于各自采用的平台、协议、体系结构的差异,使得这种传统的分布式系统设计模式面对基于异构平台的Web应用系统的实施与集成的挑战时,往往显得力不从心,给数字图书馆的资源共享带来了很大困难。近年来,随着以XML(可扩展标记语言)和Web Services为基础的新型分布式应用系统设计模式的崛起和发展,为解决这一难题提供了新的思路。

1 W eb Services运行模式及其优势

国际权威组织W3C(Word Wide Web Consortium)给Web Services的定义是:Web Services是被URI(Universal Resource Identifier)确定的一个软件应用。它的接口和封装是可以被XML定义描述和发现,并且支持与使用XML消息通过网络协议的其他应用软件进行直接交换。Web Services技术是建立在XML、SOAP、WSDL(Web Services Description Language)、UDDI(Universal Discovery Description and Integration)基础之上的分布式应用架构[1-2]。

1.1 Web Services运行模式

Web Services是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。Web Services面向服务架构SOA(Service Oriented Architecture),包括3个部分。如图1所示[3]。

与Web Services有关的操作主要有以下3种:

①发布(Publish)。服务提供者首先需要将服务进行一定描述并发布到注册服务器上,注册自己的功能及访问接口。

②查找(Find)。服务请求方根据注册服务器提供的规范接口发出查询请求,通过Service broker查找以获取绑定服务所需的相关信息。

③绑定(Bind)。服务请求方通过分析从注册服务器中得到的服务绑定信息,包括服务的访问路径、服务调用的参数、返回结果、传输协议、安全要求等,对自己的系统进行相应配置,进而远程调用服务提供者所提供的服务。

1.2 Web Services的优点[4]

①良好的封装性,调用时只考虑Web服务的功能列表,无需了解实现细节。②促进松耦合的分布式应用,只要Web应用的界面不变,其他任何变更,甚至迁移到其他平台,对于调用者来说都是透明的。③基于Internet标准协议的开发和使用,提高了系统的开放性、通用性和扩展性。④通过跨平台、透明化的动态业务集成,降低了系统复杂性。

2 W eb Services在数字图书馆中的应用

2.1 Web Services是数字图书馆共享问题的“天然”解决方式

美国著名情报学家兰开斯特(F.Wilfrid Lancaster)认为,未来图书馆应该是没有围墙、没有门槛、高度共享和无纸化的图书馆。上个世纪90年代以来,随着网络技术和计算机技术的飞速发展,这一“理念”正逐渐变为现实,但共享却成为发展过程的一个“瓶颈”[5]。图书馆数字化的核心基础是数据库,但是由于异构数据库间并不兼容,使得信息共享难以实现。基于XML的Web服务在信息服务机构中可以解决这一难题。因此,两者的结合是未来图书馆信息共享问题的天然解决方式。

2.2 基于XMLWeb Services的数字图书馆应用系统

在综合考察现有的分布式数字图书馆应用系统设计技术的基础上,根据Web Services开发的基本原理,我们提出了基于XMLWeb服务构架的图书馆体系结构(如图2)。

在这个结构中,单个图书馆既可以通过注册机构(简称UDDI)来查找其他图书馆或信息源发布的Web服务,然后对其进行捆绑应用,直接提供给客户使用,也可以针对自己的特色馆藏创建Web服务,然后通过注册机构进行对外发布,以供其他图书馆引用。

下面通过建立一个简单的XMLWeb服务来介绍如何将Web服务应用到图书馆建设中。开发一个基于XMLWeb服务的数字图书馆主要有以下几个步骤:①评估安全选项;②创建并测试基于XML的Web服务;③创建一个使用该Web服务的Web应用项目。

2.2.1 安全性选项

目前国内的一些数字图书馆(如:中国知网、万方)在检索全文信息时通常要求用户是注册(付费)用户,这就需要对用户进行身份认证。关于XMLWeb服务的安全保证有两套选择方案[6]。第一种是由内置的IIS安全选项组成。这些选项的好处是不需要额外的用户数据库,但对Internet应用来说,为每一个顾客创建一个域用户记录可能并不是最好的方案。第二种方案是提供自定义验证。目前,Web服务安全采用的是已有的Internet和WWW的一些安全策略,例如数字签名、XML加密技术和标准、访问标准技术等。本示例采用了第二种方案。

2.2.2 创建基于XML的Web服务

目前,Web服务的构建平台主要有IBM的Websphere,Microsoft的Visual Studio.net及Sun的Sun ONE。本系统采用的是SUN的J2EE,因为J2EE具有平台独立性、面向对象技术、多线程、动态性、安全性、健壮性和分布式等优点[7],使得Web服务的开发与应用变得非常简单和方便。笔者侧重介绍如何实现一个Web Service,即基于无状态会话EJB组件的FindBook Web Service。编程模型采用RPC-StyleWeb Serviced。下面以FindBook Web Service开发为例,说明使用java ant工具开发基于Weblogic服务器的Web Service的实现方法。

生成FindBook.jar文件:Web Service的生成需要EJB.jar文件,因此,在EJB组件代码实现以及部署描述文件ejb-jar.xml和weblogic-ejb-jar.xm l的基础上,使用JAR命令生成FindBook.jar文件。具体过程如下:

①创建一个临时目录temp。

②拷贝已编译好的FindBook EJB类文件及相关支持类文件至临时目录。

③在临时目录下创建META-INF子目标。

④将EJB的部署文件ejb-jar.xml和weblogic-ejb-jar.xm l拷贝至META-INF子目录。

⑤利用jar命令创建FindBook.jar文件。

步骤如下:

①创建一个新目录。

②将FindBook.jar文件和build.xml文件拷贝至新创建的目录。

③运行ant命令,在本目录中产生FindBook.ear文件。

部署Web Service:可直接将ear文件拷贝到BEA_HOME/config/domain/applications目录。其中BEA_HOME指Weblogic的安装主目录。

至此,已完成基于Weblogic服务器的Web Service开发的所有工作,可以接受客户端对Web Service的调用。

2.2.3 使用XMLWeb服务

可建一个新的项目来使用这个Web服务。下面以一个简单的应用程序来展示如何调用XMLWeb服务。在J2EE框架中,JAX-RPC将客户端调用转换成一个基于HTTP请求的SOAP消息发送给服务器,服务器收到客户请求,把SOAP消息转换成方法调用服务器的Web Services方法,再通过JAX-RPC将结果包装成SOAP消息形式返回给客户。用JAX-RPC开发Web Services非常容易。一个Web Services有两个文件:一个是接口,用来定义Web Services的远端可以调用的方法;另外一个是实现了这个接口方法的类。以下是相关的部分代码:

定义的Web Services方法的接口

import java.rm.iRemote;

import java.rm.iRemote Exception;

public interface Book extends Remote{

public Book id []get BookList( )//Web Services方法

throws Remote Exception;

public String orderBook(String bookName,int num)//Web Services方法

Throws Remote Exception;}

实现了上述接口的类如:

Public classBookImp1 implements Book{

Public Bookid[]get BookList()throws Remote Exception{

…}

Public String orderBook(String bookName,int num)throws Remote Exception{

…}}

综上所述,如果采用Web服务来构架数字图书馆,就可以从真正意义上做到数字图书馆的共建共享。因为有了Web服务,我们就可以不必去关心某一数字图书馆采用的是什么操作系统以及何种开发工具,我们只需要去关心它发布的Web服务,然后进行具体应用即可。因此,基于XMLWeb服务的理念和技术的出现,将给未来图书馆的建设带来新的思路。

3 结语

XML的出现解决了在不同平台/系统之间的数据结构/模式的差异,使得数据层在XML技术的支持下统一起来,XML成为了互联网上的通用语。Web服务完全基于XML独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。Web服务的目的就是实现语言无关、平台无关、协议无关的互操作。

Web服务不仅是一些协议的集合、独立应用实体的集合,还是一个集应用逻辑、商务智能、网络技术、工作流管理、知识表示、逻辑推理、安全保密和信息集成等技术为一体的新兴应用模式。基于XML的Web Services构建的数字图书馆是采用XML、SOAP、WSDL、UDDI、J2EE等多种开放标准而开发的,可以预期在不久的将来基于XML的Web Services将得到广泛的应用,并为解决长期困扰用户内部,尤其用户之间的信息系统集成问题开辟有效途径。

[1] Catalog of OMG Specifications.[2007-09-30.]http://www.omg.org/technology/documents/spec_catalog.htm.

[2] Web Services Architecture.2002-06-04[2007-09-30].http://www.w3.org/2002/ws/arch/2/08/wd-wsa-arch-20020821.html.

[3] 叶小阳.基于Web Services的分布式数字图书馆解决方案.图书情报知识,2005(2):87-89.

[4] Hongbing Wang est..Web services:problems and future directions.Web Semantics:Science,Services and Agents on theWorld WideWeb,2004(1):309-320.

[5] 王本年等.Web智能研究现状与发展趋势.计算机研究与发展,2005(5):721-727.

[6] Paul Kearney.Message level security for web services.Information Security Technical Report,2005(10):41-50.

[7]Stephen Asbury,Scott R.Weiner著.王强等译.Java企业极应用开发指南.北京:机械工业出版社,2004:13-25.

猜你喜欢
调用服务器数字
核电项目物项调用管理的应用研究
通信控制服务器(CCS)维护终端的设计与实现
答数字
中国服务器市场份额出炉
得形忘意的服务器标准
基于系统调用的恶意软件检测技术研究
数字看G20
计算机网络安全服务器入侵与防御
成双成对
利用RFC技术实现SAP系统接口通信