基于代码迁移的Web服务和WPS服务新模型
徐卓揆1, 2,朱建军1
(1.中南大学 地球科学与信息物理学院,湖南 长沙,410083;
2.长沙理工大学 交通运输工程学院,湖南 长沙,410004)
摘要:为了能够避免或减少数据传输量的Web服务新模式,提出一种利用程序代码迁移代替数据迁移的Web服务新模型——基于代码迁移的Web服务(CTWS)。同时通过扩展OGC WPS规范、建立代码迁移技术实现体系,将CTWS应用于WPS服务,提出基于代码迁移的WPS(CTWPS)模型和技术方法。最后通过实践,对相关理论和技术进行了验证,比较CTWPS与OGC WPS服务在数据传输量和调用效率之间的优劣。研究结果表明:CTWPS相对于现有OGC WPS具有数据传输量小、调用效率和可靠性高的优点,CTWS具有广泛的应用价值。
关键词:代码迁移;Web processing service;WPS;Web服务
中图分类号:P208 文献标志码:A 文章编号:1672-7207(2013)06-2361-07
New models of Web service and Web processing service based on code transmission
XU Zhuokui1, 2, ZHU Jianjun1
(1. School of Geosciences and Info-physics, Central South University, Changsha 410083, China;
2. School of Traffic and Transportation Engineering, Changsha University of Science and Technology, Changsha 410004, China)
Abstract: Aimed at avoiding or reducing the amount of data transmission, a new model of web service was proposed based on code transmission (CTWS) using program code transmission replace data transmission. Then the application of CTWS in WPS was discussed and a model of WPS was proposed based on code transmission (CTWPS) via expanding OGC WPS standards, and establishing new technology system. At last, an experimental system was developed to test the data transmission amount and the executing efficiency of OGC WPS and CTWPS models. The test results show that CTWPS has obvious advantages of little data transmission amount, high executing efficiency and high reliability, and CTWS has large potential application value in web service technology.
Key words: code transfer; Web processing service; WPS; Web service
Web服务(Web Service)是软件技术发展的方向,GISystem也正向GIService发展,OGC近年制定和发布了一系列地理信息系统(GIS)网络服务的相关标准,其中网络分析服务(Web Processing Service, WPS)标准,使GIS共享与互操作能力达到了功能共享的新高度[1-2]。OGC WPS服务属于数据处理Web服务,GIS客户端可调用OGC WPS服务,将空间数据传输给服务器进行处理,最后取回处理结果,为保持开放性和互操作能力,所传输的数据一般以XML/GML形式组织[3-8]。一般情况下,从服务调用过程来看,以OGC WPS服务为代表的现有数据处理Web服务可被称为“来料加工”的服务模式:客户端联系服务器,将数据传输至服务器加工处理,再通过网络将结果返回。但该模式存在以下问题:(1) 数据处理服务调用和执行过程中,容易存在网络带宽有限而数据传输量过大的问题;(2) 数据处理服务依赖于大量数据的反复传输,使得数据处理服务链和服务组合构建困难;(3) 数据以开放的XML封装后在网络中不同主机反复传输,因此难以保证数据安全。这些问题在GIS数据处理网络服务中非常突出,因为GIS的空间数据具有海量特性,同时空间数据对安全性有突出要求。众多学者对OGC WPS规范进行了研究:首先,张小溪等[9]提出了基于异步方式来实现WPS规范,但这种方法无法从根本上解决数据传输量过大的问题,仅在一定程度上避免了客户端超时等待;其次,有学者研究了GML数据压缩传输技术,但压缩后的GML数据量在网络带宽和用户时间面前仍然是巨大的,而且压缩破坏了WPS服务的开放性[10];李胜等[11-12]对动态GIS Web服务进行了研究,提出利用Agent的移动来代替数据迁移,以减少空间数据的移动,但任何一种Agent技术均需要特有封闭平台(Workbench,如IBM Aglets的Tahiti平台)来维护Agent的生命周期,因此要实现功能迁移,必须保证所有系统具有同构的Agent平台,这与GIS Web服务所具有的开放共享和互操作的特性相矛盾。另外,有学者研究了WPS开发技术、服务组合和服务安全等问题[13-15]。因此现有研究并没有解决OGC WPS中存在的问题。针对OGC WPS等数据处理Web服务中存在的问题,在满足开放性和跨平台要求的前提下,本文作者在文献[16]的基础上,提出一种利用程序代码迁移代替数据迁移的数据处理Web服务——基于代码迁移的Web服务(CTWS,Code Transmission based Web Service),并以OGC WPS服务为具体研究对象,研究基于代码迁移的WPS服务(CTWPS, Code Transmission based WPS)。
1 CTWS的概念模型
在数据处理Web服务当中,如果利用程序代码的迁移来代替数据的迁移,在计算复杂度不是非常高(客户端能承受的范围内)的情况下,程序代码的迁移成本往往要远小于数据迁移的成本,尤其是在面对空间数据处理的Web服务中更是如此。借鉴移动Agent思想,本文提出基于代码迁移的Web服务(CTWS),即服务器根据客户端的请求将具有适当处理功能的程序代码传输至客户端并在客户端实例化为标准对象,同时将功能函数以标准接口的形式提供给客户端程序以供调用执行。相对于现有“来料加工”的数据处理Web服务模式,CTWS模式可理解为“上门服务”的新模式,其概念模型如图1所示。
图1 基于代码迁移的数据处理Web服务新模式
Fig. 1 New model of data processing web service based on code transmission
区别于现有Web服务的工作模型,CTWS中客户端从服务器接收的返回数据为程序代码而不是数据处理结果。如图1所示,客户端(浏览器、应用程序或其他)向服务器提出基于HTTP协议的服务请求,服务器端根据请求参数,将相应功能程序代码传输到客户端,该程序功能模块在客户端实例化形成公开的标准对象,并将标准接口暴露给客户端,客户端调用本地标准接口完成数据处理并得到处理结果。CTWS具有一般Web服务的透明公开、按需使用等特性,同时又避免了服务调用过程中的数据传输。
需要指出的是,CTWS中被传输至客户端的程序代码应当仅依靠系统级环境(如IE)便可实例化并运行,具有开放和跨平台特性,这与Agent系统不同;代码迁移过程和在客户端的运行过程应当安全可控;客户端与服务器端应当将代码迁移过程、实例化程序对象的结构和接口标准化。以上条件涉及多方面内容,针对不同的应用领域其方法也应当有所区别。下文以地理信息网络服务中的WPS服务为具体研究对象,研究代码迁移的原理、技术实现和应用方法。
2 CTWPS理论模型
现有OGC WPS模型包括3个接口:“GetCapabilities”、“DescribeProcess”和“Execute”。客户端通过前2个接口可获得服务器上的服务列表和特定WPS服务的描述文档;通过“Execute”接口,客户端将空间数据以GML格式组织并封装在XML文档中,提交给服务器端进行处理并得到返回的结果。OGC WPS中空间数据传输量过大的问题显而易见,将CTWS应用于WPS服务,研究基于代码迁移的WPS服务(CTWPS)可以有效解决这一问题,提高WPS服务的可靠性和调用效率。
2.1 概念模型
首先,CTWPS模型的构建首先全部保留现有OGC WPS模型内容,以与OGC规范兼容;其次,CTWPS模型在OGC WPS模型基础上,增加一个“Execute”接口的可选调用方式,具体模型如图2所示。
CTWPS模型提供一种可选的执行方式,该方式利用程序功能的迁移来代替空间数据的传输,避免了空间数据的迁移:客户端只需通过HTTP连接提交KVP键值对,便可得到服务器返回的程序代码(一般情况程序代码量远小于空间数据量),然后在客户端本地实例化代码形成标准对象“WPSExecuter”并获得其指针,最后将待处理空间数据以GML格式作为参数,调用实例化程序代码对象的标准接口“execute()”进行处理,从而得到GIS操作的处理结果(GML格式)。在CTWPS模型中,避免了客户端与服务器端之间的大量空间数据传输,节约了带宽和传输时间。此模型中,应当保证在一般情况下,迁移到客户端的代码具有安全、平台无关等特性。
2.2 CTWPS模型的定义
为了在OGC WPS基础上定义新CTWPS模型,需对现有OGC WPS模型的接口和参数进行扩展,由于篇幅所限,本文仅对一些关键内容进行说明。
2.2.1 CTWPS的“Execute”接口定义
OGC WPS规范的对“Execute”接口进行了详细定义,具体可参见文献[5],CTWPS的“Execute”接口是继承OGC WPS的“Execute”接口进行定义的。CTWPS对OGC WPS中的“Execute”接口定义进行了扩展,相对OGC WPS,增加了“Execute”接口的一个可选执行方式。如表1所示,在OGC WPS的“Execute”接口定义中扩展“ResponseForm”结构,以指定请求返回内容,新的“ResponseForm”结构中增加“ctwps: ProgramCodeOutput”结构作为可选项用来定义程序返回内容;同时新增加2个可选参数:参数“transfer”指定执行CTWPS或OGC WPS模式,“code”参数指定服务端返回的代码语言。当客户端的请求编码中包括CTWPS相关参数时,OGC WPS原有参数“DataInputs”一般为空或不使用。
图2 基于代码迁移的WPS(CTWPS)模型
Fig. 2 Model of WPS based on code transmission
表1 CTWPS的“Execute”接口参数定义
Table 1 Parameters of “Execute” interface in CTWPS
从类结构和类关系的角度,CTWPS的“Execute”接口和相关主要对象的类视图可表示如图3所示。
2.2.2 CTWPS的响应结构定义
对于CTWPS中调用“Execute”接口所返回的响应内容,根据客户端请求中“ResponseForm”参数值的不同而不同,如果其值为“ResponseDocument”或“RawDataOutput”,则返回内容与OGC WPS规范定义一致,如果其值为“ProgramCodeOutput”,则响应内容结构如表2所示,其类视图如图4所示,返回内容形式上以XML编码表示。CTWPS响应数据中的代码内容(“Code”部分)为ASCII文本,表示的是一个“WPSExecuter”程序类(或其程序文件的地址),为标准化调用该程序类,在“OGC WPS Execute package”中将“WPSExecuter”程序类定义如图5所示。
为说明CTWPS的响应,下面举出一个CTWPS响应的例子:
result
function WPSExecuter(){this.excute= function(ExecuteDocument){……;
return ExecuteResponse;}}
该例中返回的是JavaScript脚本程序(也可返回其他程序代码或代码的地址,如Java代码),返回程序中定义了“WPSExecuter”类,该类中“execute()”方法的输入参数“ExecuteDocument”和返回结果(“ExecuteResponse”或“RawDataOutput”)与现有OGC类型完全一致,具体参见文献[5]。
图3 继承于WPS Execute接口的CTWPS Execute接口类视图
Fig. 3 UML view of CTWPS Execute interface extended from OGC WPS Execute interface
表2 CTWPS的响应内容结构
Table 2 Structure of CTWPS response
图4 CTWPS响应数据结构类视图
Fig. 4 UML view of CTWPS response
图5 CTWPS返回代码的类结构
Fig. 5 UML view of code in CTWPS response
当客户端接收并提取了程序代码之后,在容器(Web浏览器或桌面GIS程序)中实例化该程序代码,并返回给容器该对象的指针,将空间数据以GML字符串(类型为ExecuteDocument)格式作为参数,调用“Execute()”方法最终得到处理结果。
3 CTWPS实现技术体系
为实现CTWPS模型,需要研究并构建CTWPS的实现技术体系。CTWPS的技术实现体系基于4层构建,如图6所示。
(1) 底层为代码数据库,以商用数据库、文本文件系统或二制文件系统的形式存在,存储的内容为程序脚本文件或二进制程序代码,代码语言技术应当满足面向对象、跨平台、跨浏览器、动态实例化和动态执行、安全可控等要求,例如JavaScript或Java程序语言。
图6 CTWPS实现技术体系
Fig. 6 Technical framework of CTWPS
(2) 服务器层采用一般Web服务器作为平台,在此基础上部署WPS服务,WPS服务基于OGC WPS规范和本文提出的CTWPS模型实现,应同时支持OGC WPS/CTWPS服务的3个标准接口。
(3) 传输层基于HTTP协议构建,通讯协议可以采用HTTP协议和SOAP协议,在此基础上增加安全控制协议来对传输内容进行安全控制,可采用IBM和微软制定的WS-Security规范、SSL/HTTPS规范或W3C制定的其他规范,技术上可基于Axis Rampart安全模块或其他软件技术实现。
(4) 用户层包括代码容器、系统安全和客户端软件3部分,代码容器根据迁移代码不同(JavaScript、Java)而不同(JavaScript Engine、MSScriptControl等支持JavaScript脚本的引擎或Java VM、IKVM等支持Java代码的虚拟机),客户端系统安全采用现有JavaScript安全机制(ECMAScript)或Java平台安全机制(Java Security Model),客户端软件则可以为使用各种软件技术开发的WebGIS或GIS桌面应用程序。
CTWPS的实现技术体系采用了目前主流IT技术,实现了双层安全控制机制。
4 CTWPS实践与分析
为验证本文所提出的基于代码迁移的WPS模型和技术,本文作者实现了一个CTWPS实验原型系统,系统可根据选择,按OGC WPS标准模式或CTWPS新模式工作。同时该实验系统具有进行简单CTWPS服务组合的能力,对于一些复杂空间分析操作,如果需要操作多个数据层、处理过程中引用多个GIS操作,可以将复杂操作分解后单步执行,也可定义成服务组合的形式一次执行。系统总体上分为3层:客户端层、Web和WPS服务器层、空间分析算法与代码库层,系统部署在局域网内实际相隔13 km的2台主机上,一台为Web服务器和WPS服务器,可支持OGC WPS/CTWPS服务,其中CTWPS服务可支持JavaScript脚本和Java语言;另一台为客户端,为了验证不同客户端对CTWPS的支持情况,实现了3种客户端:基于HTML5的纯浏览器WebGIS、基于Applet的WebGIS和基于uDig的桌面GIS客户端。实验中3种客户端均工作良好,CTWPS实验系统的实现验证了本文所提出的CTWS和CTWPS相关理论的正确性。
同时,论文中使用客户端按不同方式对WPS服务进行了调用,进行了CTWPS与OGC WPS之间的对比实验。
4.1 数据传输效率
以一个坐标变换计算服务为例进行实验,客户端待处理数据为多边形数据,服务端提供坐标变换计算WPS服务,处理结果为经过变换的多边形坐标数据。不同WPS模式下的该服务数据传输量如表3所示。
表3中序号1~3分别对应数据量逐渐增大的3份不同多边形数据,从表3可见:OGC WPS模式下随着原始数据量的增加,数据传输量变得更加巨大,而CTWPS模式下(包括JavaScript脚本代码和Java二进制代码)数据传输量明显较小且不随处理数据增加而增加。因此CTWPS对于GIS Web服务中因GML数据传输数据量巨大而应用困难的问题的解决有重要意义。
表3 不同WPS模式数据传输量对比(坐标变换服务)
Table 3 Data transferred amount difference between two WPS models (coordinate-transform)
4.2 服务调用效率
为方便起见,此处仍以上文的坐标变换计算服务为例,客户端软件选用基于Applet的WebGIS,对OGC WPS模式和CTWPS模式各调用20次取其中最快时间,进行对比分析。表4比较了OGC WPS模式与CTWPS模式下的调用效率情况。此对比实验未包括以脚本语言为迁移代码的方式,原因在于局域网中数据传输速度较高,对于几十兆数据进行OGC WPS与脚本语言方式的CTWPS调用效率对比并不具有典 型性。
表4 不同WPS模式调用效率对比(坐标变换服务)
Table 4 Call efficiency difference between two WPS models (coordinate-transform)
由表4可见:CTWPS模式相比OGC WPS模式,在节省了空间数据传输成本的同时,自然而然地大幅提高了调用效率。
事实上,在实验过程中,由于调用效率与网络传输速度有关,OGC WPS调用的效率不稳定,大部分调用次数的效率达不到表4所示的最少时间;而CTWPS由于传输量小,因此调用效率较稳定。 另外一方面,本实验中服务器和客户端虽实地相距13 km,但仍是在局域网内进行的,而目前Internet实际的网络传输速度以kB计算,在其上进行WPS分析时,OGC WPS与CTWPS的效率优劣对比情况将更加悬殊。
5 结论
(1) 相对于现有OGC WPS服务,CTWPS服务模型和技术具有数据传输量小、调用效率和可靠性高的明显优点。
(2) CTWS和CTWPS服务具有跨系统平台、跨浏览器、安全可控、可动态实例化和动态执行的特点,可应用于包括GIS Web服务在内的更广泛的Web服务,能有效减少这些Web服务中的数据迁移成本,具有明显的应用价值。
(3) CTWS和CTWPS模型的应用有一定的前提,即程序算法不能太复杂,其计算复杂度应当能被客户端所承受。
参考文献:
[1] 王家耀. 地图制图学与地理信息工程学科发展趋势[J]. 测绘学报, 2010, 39(2): 115-119, 128.
WANG Jiayao. Development trends of cartography and geographic information engineering[J]. Acta Geodaetica et Cartographica Sinica, 2010, 39(2):115-119, 128.
[2] 龚健雅, 贾文珏, 陈玉敏, 等. 从平台GIS到跨平台互操作GIS的发展[J]. 武汉大学学报: 信息科学版, 2004, 29(11): 985-989.
GONG Jianya, JIA Wenjue, CHEN Yumin, et al. Development from platform GIS to cross-platform interoperable GIS[J]. Geomatics and Information Science of Wuhan University, 2004, 29(11): 985-989.
[3] 林峰田. WMS、WFS、WPS实例解说[EB/OL]. [2012-03-01]. http://www.bp.ntu.edu.tw/WebUsers/ftlin/course/gis/WMSWFSWPS.pdf.
LIN Fengtian. Interpretation on WMS,WFS,WPS[EB/OL]. [2012-03-01]. http://www.bp.ntu.edu.tw/WebUsers/ftlin/course/ gis/WMSWFSWPS.pdf.
[4] IBM. SOA and Web Services[EB/OL]. [2012-04-01]. http://www.ibm.com/developerworks/webservices/.
[5] Open Geospatial Consortium Inc(OGC). OpenGIS Web Processing Service v1.0.0 [EB/OL]. [2007-06-08]. http:// www.opengeospatial.org/standards/wps.
[6] Open Geospatial Consortium Inc(OGC). OpenGIS Service Architecture[EB/OL]. [2001-09-14]. http://www.opengeospatial. org/standards/as.
[7] 52 North. 52 North Geoprocessing Community [EB/OL]. [2012-04-10]. http://52north.org/communities/geoprocessing/.
[8] FENG Min, LIU Shuguang, Euliss N H, et al. Distributed geospatial model sharing based on open interoperability standards[J]. Journal of Remote Sensing, 2009, 13(6): 1060-1073.
[9] 张小溪, 刘定生, 李国庆. 空间信息网格中异步Web 计算服务设计与实现[J]. 遥感信息, 2009(6): 77-80.
ZHANG Xiaoxi, LIU Dingsheng, LI Guoqing. Design and implementation of asynchronous Web processing service in SIG[J]. Remote Sensing Information, 2009(6): 77-80.
[10] 朱华, 李岩. GML空间数据压缩技术研究[J]. 计算机工程, 2010, 36(14): 26-28.
ZHU Hua, LI Yan. Research on compression technology of GML-based spatial data[J]. Computer Engineering, 2010, 36(14): 26-28.
[11] 李胜, 张虹. 基于移动Agent的GIS动态服务技术[J]. 计算机应用与软件, 2008, 25(2): 206-209.
LI Sheng, ZHANG Hong. GIS dynamic service technology based on Web and Agent[J]. Computer Applications and Software, 2008, 25(2): 206-209.
[12] 肖珺, 雒翠萍, 张其斌. 基于Web服务和移动Agent的GIS动态服务技术[J]. 甘肃科技, 2010, 26(13): 19-22.
XIAO Jun, LUO Cuiping, ZHANG Qibin. GIS dynamic service technology based on Web service and mobile Agent[J]. Gansu Science and Technology, 2010, 26(13): 19-22.
[13] 徐卓揆, 申小平. 基于52 North WPS的Web Processing Service开发方法研究[J]. 测绘科学, 2011, 36(1): 140-142.
XU Zhuokui, SHENG Xiaoping. A development method of Web processing service based on 52 north platform[J]. Science of Surveying and Mapping, 2011, 36(1): 140-142.
[14] 贾文珏, 李斌, 龚健雅. 基于工作流技术的动态GIS服务链研究[J]. 武汉大学学报: 信息科学版, 2005, 30(11): 982-985.
JIA Wenyu, Li Bin, GONG Jianya. Research on dynamic GIS Chain based on workflow technology[J]. Geomatics and Information Science of Wuhan University, 2005, 30(11): 982-985.
[15] 杨朝晖, 余洁, 郑文锋. 基于WS-Security的GIS WPS服务安全机制的研究[J]. 测绘科学, 2011, 36(5): 14-16.
YANG Chaohui, YU Jie, ZHENG Webfeng. GIS Web processing service security mechanism based on WS-Security[J]. Science of Surveying and Mapping, 2011, 36(5): 14-16.
[16] 徐卓揆, 朱建军. 利用代码迁移进行WPS服务[J]. 武汉大学学报: 信息科学版, 2012, 37(3): 370-373.
XU Zhuokui, ZHU Jianjun. CT-based WPS[J]. Geomatics and Information Science of Wuhan University, 2012, 37(3): 370-373.
(编辑 杨幼平)
收稿日期:2012-06-11;修回日期:2012-11-05
基金项目:长沙理工大学道路灾变防治及交通安全教育部工程研究中心开放基金资助项目(kfj100308);湖南省重点学科建设资助项目(2011年)
通信作者:徐卓揆(1979-),男,湖南宁乡人,博士,从事地理信息系统与测量工程方面的研究;电话:13974911663;E-mail:dakuixu@163.com