APP下载

构建基于WEB服务的SOA信息集成系统
——以襄樊学院图书馆为例

2012-12-08

湖北文理学院学报 2012年2期
关键词:功能模块调用数据库

胡 鹏

(襄樊学院 图书馆,湖北 襄阳 441053)

构建基于WEB服务的SOA信息集成系统
——以襄樊学院图书馆为例

胡 鹏

(襄樊学院 图书馆,湖北 襄阳 441053)

Web服务体系结构是一种面向服务的体系结构(SOA). 文章通过分析Web服务特性,以笔者所在图书馆的信息集成系统为例,探讨了如何利用Web服务构建面向服务体系结构(SOA)的信息集成系统,并与目前普遍使用的B/S信息集成系统进行比较分析,说明了SOA信息集成系统的高效性,可扩展性与跨平台性.

WEB服务;SOA信息集成系统;B/S信息集成系统

1 Web服务及SOA概述

近年来,Web服务技术发展迅速,它建立在广泛使用的HTTP协议之上,采用XML来统一数据描述格式,使用简单对象访问协议(Simple Object Access Protocol,SOAP)替代了传统的组件调用方式,而且基于XML的Web Service表现为一系列的功能模块,并能够通过标准接口进行访问,为互联网应用提供了一种共享数据和功能的有效方式,能够较好地解决异构应用之间松散耦合环境下的互操作,集成和协作问题[1-2]. 因此,基于XML的Web 服务技术正在成为互联网环境下异构应用之间的互操作和集成,以及数据共享的主流中间件技术,成为国内外网络软件技术研发的重要方向[3-4]. Web服务具有:完好的封装性;松散耦合性;使用协约的规范性;使用标准协议规范;高度可集成能力;开放性等特性.

Web服务体系基于三个方面即服务发布、服务注册、服务请求之间的交互. 对于服务发布方要求所提供的程序功能模块以Web服务形式发布,并将其在服务注册中心注册,而服务的请求方则使用查找操作从服务注册中心检索服务描述,然后通过服务描述与服务提供者进行绑定并调用web服务实现交互. 如图1所示.

图1 web服务体系结构

面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过服务之间定义良好的接口和契约联系起来. 接口采用中立的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言. 这使得构建在该系统中的各种服务以一种统一通用的方式进行交互. 当前SOA的实现形式是基于Web服务以及公开的W3C及其他公认标准. SOA具有以下特性[2-5]:1)可重用. SOA系统中的Web服务创建后能用于多个应用和业务流程. 2)松耦合. SOA系统中服务请求者到服务提供者的绑定与服务之间应该是松耦合的. 因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等. 3)明确定义的接口. SOA系统中的Web服务的交互必须是明确定义的. Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者的要求绑定到服务提供者的细节,但WSDL不包括服务实现的任何技术细节. 服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的. 4)无状态的服务设计. SOA系统中的Web服务是独立的、自包含请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态. 服务不应该依赖于其他服务的上下文和状态. 当产生依赖时,它们可以定义成通用业务流程、函数和数据模型.

2 Web服务的异步调用

常规的Web服务交互过程如下:

1)客户端程序发送SOAP请求;2)Web服务接收请求后,调用内部Web Method进行处理;3)客户端接收Web服务以SOAP形式响应处理结果.

在以上Web服务交互过程中,如果Web服务响应被立即提供,就不会产生任何问题. 但是,如果Web服务需要较长时间来完成服务处理,则客户端程序处理请求的线程会一直被占用,直到Web服务调用结束.异步调用允许客户端程序在调用Web服务时,不必等待Web服务的方法执行完成后,客户端程序才能继续执行;而是在调用Web服务后,立即返回. 因此,客户端程序调用Web服务后,能继续处理其他任务,包括发出更多的异步请求,然后在异步操作完成后来处理Web服务的响应.如图2所示. 请求1和请求2可以发送到同一台计算机,也可以发送到不同计算机. 异步通信将使应用程序复杂化并且难以调试,而且异步请求不一定按照它们被提交的顺序返回(如图2中,请求2在请求1的后面提交,但是先执行完先返回). 这种行为允许应用程序不按顺序执行操作.[6]Web服务的异步调用是实现高效SOA信息集成系统的一个重要基础.

图2 web服务的异步调用

3 B/S型信息集成系统模型

B/S系统一般为三层结构,以本校图书馆的图书管理系统IlasIII提供的B/S系统为例,其结构如图3所示. 其中用户浏览器作为客户层,而Ilas所提供的B/S系统服务端为服务层,IlasIII的Oracle数据库为数据层.

其工作流程如下:当用户通过自身的浏览器提交多个查询请求时,系统的服务层将按照用户提交的请求调用相应的查询模块并返回结果,只有当一个查询执行结束时,服务层才会执行另一个查询请求. 如图4所示:

图3 B/S系统结构

图4 B/S系统工作流程

从B/S系统的结构及其工作流程可以看出,B/S系统对于每个用户是基于单线程的工作流程,以顺序的方式执行用户提交的请求并返回结果,这样Oracle数据库所具备的多线程能力并未得到充分的利用,而单线程的工作流程反映出B/S系统的工作效率相对较低,同时由于B/S系统的服务层通常部署在一台服务器上,因此当客户访问量很大时服务器的负载非常重,效率降低.

4 基于Web服务的SOA信息集成系统模型

Web服务是构建SOA信息集成系统的基础,SOA系统功能可由各Web服务提供,因此将IlasIII提供的B/S系统功能模块改写为Web服务,构建如图5所示的SOA信息系统模型. 其中最大的变化是将B/S系统的系统服务层改写为以Web服务为核心的多层结构. 将B/S系统服务层的每个功能模块改写成一个Web服务形成一个Web服务集,并在图书馆服务注册中心注册,图书馆服务注册中心数据库用于存储馆内发布的Web服务的服务描述及调用地址. Web服务调用及数据汇集处理模块分为三个子模块,其中Web服务查询模块是根据用户的请求到图书馆服务注册中心查找相应的Web服务;Web服务调用模块是根据查找到的Web服务描述信息来对相应的Web服务进行异步调用;信息汇集模块是将各Web服务返回的信息进行汇集处理,然后将处理后的结果返回给用户. Web服务集是根据IlasIII系统提供的服务功能,其发布的Web服务主要包括4个功能模块:借阅文献查询、借阅史查询、财经查询、借阅权限查询. Oralce数据库是IlasIII的后台数据库. 这里图书馆服务注册中心数据库,Web服务调用及数据汇集处理模块,以及每个单独的Web服务均可以部署在不同的服务器上以实现整个系统的负载平衡.

图5 SOA信息系统模型

其工作流程如下:当用户提供多个请求时,SOA系统的服务调用及数据汇集模块会根据用户的请求在服务注册中心数据库中查找相应的Web服务,再通过该模块的Web服务调用子模块异步调用相应的Web服务,由于异步调用不需要等到前一个请求的结果返回即可调用下一个Web服务,因此几个Web服务相当于同时运行,这样Oracle的多线程处理能力就会得到更充分的利用;Web服务执行完毕后再将结果返回到系统的服务调用及数据汇集模块,并由其数据汇集子模块进行处理,将结果返回给用户,如图6所示.

图6 SOA信息系统工作流程

由此可见,当用户提供的请求越多,基于Web服务的SOA信息集成系统比传统的B/S系统具有更高的效率,更好的用户体验,而传统B/S结构系统并未将Oracle的多线程功能充分利用. 在服务器负载方面,由于SOA系统将B/S系统的系统服务层分得更细,同时每个模块和web服务可用一单独的服务器来负载,因此更具明显优势.

5 异构数据的兼容与系统的可扩展性在图书馆信息集成中的应用

由于Web服务所使用的信息传递方式是基于XML统一标记语言,因此SOA系统可以实现不同数据库的数据兼容,根据实际需求随时进行扩展. 图书馆的一个重要任务就是对多方面信息进行集成,根据本文所讨论的SOA信息系统模型,可利用.Net平台下的C#开发语言将图书馆原有的IlasIII和非书资料系统的B/S信息集成系统的功能模块改写成Web服务,构成IlasIII系统和非书系统的Web服务集,并将其注册到图书馆自建的服务注册中心数据库. 图书馆网站则用来完成Web服务的调用数据处理以及用户界面功能,这样就构建成由图书馆网站、IlasIII的Web服务集、非书系统的Web服务集、图书馆Web服务注册中心、IlasIII的Oracle数据库、非书系统的SQLServer数据库组成的SOA信息集成系统. 如图7所示. 非书系统是以SQLServer2000作为后台数据库,其数据格式与IlasIII的Oracle数据库有所不同,但若将非书资料系统中的功能模块作为Web服务发布到图书馆的服务注册中心数据库中,即可实现两个系统的信息整合. 图书馆用户可以通过图书馆网站提交自己的请求,网站后台程序会根据用户提交的请求调用相应的Web服务,并将用户所需要的结果通过网站返回给用户. 比如,如果用户想在一次请求中同时查询IlasIII和非书资料系统的信息,只需在网站中发出请求,网站便会通过异步调用技术,调用相应的Web服务,同时查询IlasIII的Oracle数据库和非书资料系统的SQLServer数据库,并将处理结果返回给用户. 倘若采用B/S信息集成系统,用户查询两个数据库中的信息,必须进行两次请求,并当一个查询完成后才能进行另一个查询. 因此在局域网的模拟测试中,SOA信息集成系统比传统的B/S信息集成系统更高效,用户体验也更好.

图7 图书馆SOA系统结构图

6 结语

Web服务构建的SOA信息集成系统是根据基于Web服务的分布式平台模型[4]演化而来,而基于Web服务分布式平台的优势是其高效性,及对异构数据的兼容和Web服务所具备的跨平台能力,为解决目前广泛存在的“信息孤岛”问题[7]提供了方案. 因此,基于Web服务构建的SOA信息集成系统同样具备基于Web服务的分布式平台模型所具有的高效性,对异构数据的兼容性、跨平台性、可扩展性. 除图书馆可用其进行信息整合外,将它应用于整个校园网或一个区域的局域网会使网内各种信息得以更好的整合与共享.

[1] 顾 宁, 刘家茂, 柴晓路. Web Services原理与研发实践[M]. 北京: 机械工业出版社, 2006: 7-9.

[2] 吕 曦, 王化文. Web Service的架构与协议[J]. 计算机应用, 2002(12): 62-65.

[3] 杨 涛, 刘锦德. Web Services技术综述——一种面向服务的分布式计算模式[J]. 计算机应用, 2004, 24 (8): 1-4.

[4] TOM BARNABY. Distributed.NET Programming in C#[M]. 北京: 清华大学出版社, 2004: 15-17.

[5] 杨俊超. 基于Soap/Web Service技术的分布式系统应用研究[D]. 广州: 广东工业大学, 2003.

[6] 胡 鹏. 基于WEB服务的分布式平台的研究与开发[D]. 武汉: 中国地质大学, 2007.

[7] 飞思科技产品研发中心. Web Service原理与开发实务[M]. 北京: 电子工业出版社, 2003: 8-9.

(责任编辑:陈 丹)

Construction of a SOA Information Integration System with WEB Sercice: Taking Library of Xiangfan University as an Example

HU Peng
(Library, Xiangfan University, Xiangyang 441053, China)

The web service architecture is a kind of service oriented architecture(SOA). This paper analyzes the characteristics of web service, and discusses the method employed to use the web service to construct service oriented architecture(SOA) information integration system based on the information integrated system in the college library as an example.This paper also analyzes the high efficiency,scalability and platform independence of service oriented architecture(SOA) information integration system compared with the widespread use of B/S integration system.

Web Services; SOA information integration system; B/S information integration system

TP393

A

1009-2854(2012)02-0021-04

2012-01-22;

2012-02-28

胡 鹏(1978— ), 男, 湖北襄阳人, 襄樊学院图书馆助理馆员.

猜你喜欢

功能模块调用数据库
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
数据库
基于系统调用的恶意软件检测技术研究
基于ASP.NET标准的采购管理系统研究
数据库
输电线路附着物测算系统测算功能模块的研究
数据库
M市石油装备公服平台网站主要功能模块设计与实现
数据库