文章信息
- 胡磊, 乐鹏, 龚健雅, 张锡宁
- HU Lei, YUE Peng, GONG Jianya, ZHANG Xining
- 异步地理信息网络处理服务方法研究
- An Approach to Asynchronous Geoprocessing Service
- 武汉大学学报·信息科学版, 2016, 41(5): 679-685
- Geomatics and Information Science of Wuhan University, 2016, 41(5): 679-685
- http://dx.doi.org/10.13203/j.whugis20140413
-
文章历史
- 收稿日期: 2015-06-01
2. 武汉大学计算机学院, 湖北武汉, 430079
2. Computer School, Wuhan University, Wuhan 430079, China
随着传感器技术与空间信息服务技术的发展,地理空间数据与地理处理功能可按照标准接口,以服务的方式在网络上进行共享和获取[1, 2]。但是,空间数据快速获取与有用信息高效处理能力不足使用户面临“数据海量,信息泛滥,知识难求”的局面,现有的地理信息系统还难以在国家自然灾害等重大社会问题中发挥有效作用[3]。为了促进网络环境下地理空间信息服务的互操作性,国际开放地理信息联盟(Open Geospatial Consortium,OGC)制定了一系列标准规范用于发现、获取和处理地理空间数据。但是,这些标准大多建立在同步协议之上,适用于较为简单的非实时计算环境,难以满足复杂、动态的异步信息处理需求。例如传感网环境下,实时动态传感器数据的定制、获取、分析和处理不同于以往的静态空间数据,是一个长期复杂的过程[4],同步网络服务显得难以胜任,因此,发展异步地理信息处理服务逐渐成为地理空间信息领域的研究热点。
本文提出了一种异步网络处理服务实现方法,这种方法以网络处理服务(Web processing service,WPS)[5]和网络通知服务(Web notification service,WNS)[6]为核心,扩展了标准的WPS服务请求,从而支持异步调用。通过分析工业界通用的Web服务异步通信机制,指出在已有“Poll”轮询模式的方法[7, 8]中,虽然避免了客户端长时间等待服务端返回结果,但这种不断0轮询的方法容易增加网络负载,尤其在应急响应情况下效率较低。因此,本文采用“Push”回调模式,基于WNS的消息通知机制,通过建立异步服务适配器在已有的同步WPS服务上进行扩展,从而实现异步网络处理服务。同时,服务请求依然遵循标准WPS规范,因而在整个地理空间领域仍具有互操作性。
1 异步Web服务技术 1.1 Web服务异步通信机制根据Web服务提供端与客户端之间的消息交互模式,可将Web服务划分为同步和异步两大类。同步服务是指客户端向服务提供端发送服务请求后,其进程将挂起直至服务端返回请求结果,该结果包括函数结果返回、时间超时或其他中断等。异步服务则是将服务请求和服务响应过程分离,用不同线程执行这两个操作,客户端应用程序可利用被释放出的线程进行其他操作,不用因等待服务响应而长时间处于阻塞状态,以此提高整体服务的稳定性与健壮性。
异步Web服务通常可以在底层网络传输层和应用层两个级别来实现。传输层的异步指的是传输协议本身就支持请求消息与响应消息的关联性以便应用程序使用,并支持“Push”和“Poll”类型消息交换的传输。例如,Java消息服务(JMS)、Web服务调用框架(WSIF)、HTTPR等。应用层的异步指的是Web服务的异步调用。根据网络服务描述语言(Web services description language,WSDL)[9]定义的Web服务操作端点所支持的基本传输类型,可将Web服务异步调用分为单向调用模式、回调模式、轮询模式、发布/订阅模式4种模式[10](图 1)。
其中,最常见的是轮询模式和回调模式。轮询模式又称作“Poll”模式,该模式下客户端多采用轮询操作,每隔一段时间访问服务器端以获取任务处理的最新状态。通常情况是当客户端提交服务请求后,服务端开始执行相应操作并及时返回客户端主线程一个状态地址,客户端可继续执行其他操作,并可通过状态地址获取服务的最新执行状态。回调模式又称作“Push”模式,该模式下客户端无需频繁与服务端进行交互,而是提交一个回调地址,服务端在请求处理完成后会将结果推送至此回调地址。“Push”模式的异步调用在工业界中受到广泛支持,最常用的是使用简单对象访问协议(simple object access protocol,SOAP)[11]和WS-addressing协议[12]。通过使用WS-addressing可以在服务请求时将回调地址等信息在放入SOAP head中。
1.2 OGC服务异步通信分析OGC服务体系中,HTTP GET/POST一直是服务通信的主要方式。要想使用传统工业界SOAP加WS-addressing的方法实现Web服务的异步通信,就必须建立HTTP GET/POST绑定的请求响应与SOAP绑定的请求响应之间的转化,这无疑将增加服务提供者和服务消费者双方的负担,实现成本较高。
OGC WPS服务规范中包含了支持异步的机制,即使用缓存(storeExecuteResponse)和状态更新(status),通过设置storeExecuteResponse元素来标识是否需要在服务器端缓存执行响应文档,设置status元素来标识是否需要更新缓存文档的最新状态[5],以此实现轮询模式的异步服务。服务端不停地更新缓存文档,客户端则设置轮询的时间间隔,定期访问缓存文档地址查看最新的处理状态,当任务执行完成时,客户端可在缓存文档中获取最终的处理结果。文献[8]也采用了类似的方法,通过支持缓存与状态更新,实现了轮询模式的异步的WPS服务,并以此实现异步地学工作流。
以上这种轮询模式的异步服务较容易在OGC客户端实现,此类方法虽然避免了客户端长时间阻塞进程以等待服务端返回结果,提高了客户端的处理能力,但持续轮询容易增加网络通信负荷,尤其当轮询频率过繁时。另一方面,轮询频率低时又容易导致客户端系统不能及时获取响应,致使后续处理长时间延迟,在应急响应情况下,这种限制可能导致巨大损失。例如地震、海啸等自然灾害,应急措施建立在海量实时数据处理的基础上,数据处理的复杂度以及数据量的繁多使处理难以在短时间内完成。因此客户端需要一种能自动获取响应结果通知的机制,使客户端能在保持其自身计算能力与网络通信高性能的同时仍然能及时获取服务端的处理响应结果。相较于轮询模式,回调模式对网络负载的要求小得多,它可将用户从客户端与服务端之间轮询操作导致的繁重网络通信中解放出来。文献[13, 14]在各自研究中均使用基于WNS的异步中间件与OGC Web服务进行通信,来实现回调模式的异步服务。它们均采用WNS的双向通信模式,只要服务端支持缓存与状态更新,就可采用消息中间件进行异步扩展。然而这种双向通信模式,实质是将“Poll”模式中客户端的轮询转移至中间件,通过中间件来轮询OGC Web服务处理结果的状态。本文提出的异步网络处理服务实现方法,采用WNS的单向通信模式,在处理服务完成之后直接将结果推送至客户端,这个客户端可以是用户,也可以是OGC Web服务。
2 异步网络处理服务实现方法在空间信息服务领域,为了促进网络环境下地理空间信息服务的互操作性,OGC制定了空间信息服务的抽象规范和一系列的实现规范,包括WFS、WPS、WNS、SES、SOS等,这些规范遵循ISO 19119标准[15],描述了网络服务信息交互的接口。
2.1 OGC网络服务规范WPS规范提出的目的在于能够通过网络为用户提供一系列GIS处理与分析操作的服务标准接口,使这些服务易于发布、调用和绑定。发布的地理处理服务可以是简单的空间分析,如两个多边形的叠置操作,也可以是复杂的全球气候变化模型计算的几乎所有功能,凡是涉及到有关空间参考数据的算法、统计或模型皆可。WPS接口规范从服务发布、发现及调用等多方面考虑,定义了三个基本操作:GetCapabilities操作允许用户获取服务端的能力描述信息,用户可通过描述信息查找其感兴趣的处理服务;DescribeProcess操作允许用户获取指定服务的具体描述信息,包括输入要求、可接收的格式及产生的输出信息;Execute操作允许用户输入具体参数值,运行WPS实施的特定处理,通过返回的输出文档分析执行结果。
OGC设计了SAS、SES和WNS三种基于HTTP的消息通知服务可支持异步调用。SAS和SES属于多对多的发布/订阅性事件通知机制,一旦服务器端发现用户订阅的事件完成,就会将结果通知到所有注册的用户。WNS则属于点对点的消息队列机制,它将请求消息转发给使用相关通信协议的请求接收端,例如Email、SMS等[6]。SAS和SES带有事件过滤等功能机制,主要面向传感网领域,而WNS同时支持单向通信和双向通信两种异步调用方式,更加适用于开发消息中间件来解决OGC Web服务中的异步性问题。WNS接口规范定义了7个基本操作,其中,主要操作GetCapabilities操作允许用户请求并接收描述WNS服务端的元数据文档,该操作还支持服务的版本请求,Register操作允许用户使用其通信终端进行注册,DoNotification操作允许用户发送消息至WNS服务端,WNS服务端将通知用户已注册的通信终端。WNS并不关心消息的具体内容,被传递的消息对WNS而言就如同一个“黑盒子”。因而,WNS可用于实现 2.2 异步网络处理服务实现方法
本文基于OGC标准规范提出了异步网络处理服务实现方法,通过在传统的同步WPS服务基础上添加一个异步服务适配器和一个基于WNS的消息通知模块,来支持客户端对WPS服务进行异步调用。所设计的消息通知模块与处理服务模块在逻辑层上独立,通过异步服务适配器来进行协调,因而无需改动原本的WPS服务。各模块都基于标准规范所设计,并采用平台和语言无关的XML进行远程调用,保证了方法的互操作性。基于传统的网络处理服务开发,也最大限度地避免了资源浪费,提高了软件重用性。
如图 2所示,异步网络处理服务主要包含了异步服务适配器、处理服务模块和消息通知模块三大功能组件,具体功能如下所示。
1) 异步服务适配器,实现异步WPS服务的核心组件。适配器接收并解析来自客户端的扩展请求,提取处理服务的标准请求和用户的回调地址,然后将回调地址提交至消息通知模块进行注册;同时,适配器还将启动另一线程来调用处理服务模块执行WPS处理。处理完成后,适配器将WPS响应文档进行解析并提取出结果数据,构造包含结果数据与用户注册ID的标准WNS请求,并发送至消息通知模块。
2) 处理服务模块,主要负责WPS处理功能的实现,执行基于标准规范的WPS Execute请求并返回结果。
3) 消息通知模块,负责注册和管理回调地址以及发送通知消息。本组件对异步服务适配器解析的回调地址进行注册并返回唯一标识ID。当WPS处理完成后,消息通知模块通过用户注册ID将通知消息发送到对应的回调地址。此外,消息通知模块还能对回调地址进行查询、编辑和删除。
相比于同步服务描述,异步服务描述文档中增加了“notificationSupported”属性值,用于标识服务是否支持异步消息通知。在异步服务Execute请求片段中,也可以指明用户的请求回调地址,例如邮箱、短息等通信终端。
3 实验与分析 3.1 原型系统实现为了验证及应用上述方法,本文建立了异步地理信息处理服务原型系统,通过实现异步服务适配器、处理服务模块及消息通知模块,提供异步网络处理服务。异步服务适配器采用Java Servlet技术实现,处理服务模块和消息通知模块分别基于空间信息网络处理服务平台GeoPW[16]和开源软件52North WNS[18, 19]。水体悬浮泥沙浓度遥感反演研究对水生态环境保护具有重要意义[20]。以悬浮泥沙浓度监测为例,需要对观测数据进行正射纠正、辐射定标、大气校正、裁剪、水域提取(NDWI)、掩模运算、泥沙反演7个处理步骤[21]。在本文建立的原型系统中,通过将以上7个处理发布成异步网络处理服务,可供服务组合建模工具进行调用,满足决策支持的需求。
以异步辐射定标服务为例进行说明,实验数据采用国产高分1号卫星(GF-1)中的WFV2传感器获取的东湖区域遥感数据,GF-1卫星WFV2各波段定标系数如表 1所示 。
卫星载荷 | 波段号 | 定标斜率 | 定标截距 |
WFV2 | Band 1 | 0.158 8 | 5.530 3 |
Band 2 | 0.151 5 | -13.642 | |
Band 3 | 0.125 1 | -15.382 | |
Band 4 | 0.120 9 | -7.985 |
利用以下公式可将GF-1卫星各载荷的通道观测值计数值DN转换为卫星载荷入瞳处等效表观辐亮度数据。
式中,Gain为定标斜率,单位为W·m-2·sr-1·μm-1;DN为卫星载荷观测值;Bias为定标截距,单位为W·m-2·sr-1·μm-1。
辐射定标算法采用C++编程实现,并通过Java JNI技术进行调用。硬件配置为:Intel(R) Core(TM) i5-4200M CPU 2.50 GHz,8.00 GB RAM,500 GB Disk。软件配置为:JDK1.6,Tomcat 6.0,MyEclipse 10.0,Visual Studio 2010。网络环境为100.0 Mb/s。
图 4展示了异步辐射定标服务的执行过程。首先是构造WPS Execute请求的XML文档,当中包含指定的回调地址,通过HTTP POST方法将其发送至异步服务端地址;异步服务适配器对服务请求进行解析与处理,并调用消息通知模块中的注册功能来注册从Execute请求文档中提取出的回调地址;若注册成功,适配器立即返回一个处理状态给客户端,同时,异步服务适配器激活处理服务模块执行分析处理功能;在服务处理执行完成并返回处理结果后,异步服务适配器解析并生成DoNotification请求提交至消息通知模块;最终消息通知模块将结果通知给已注册的用户通信终端,最后使用可视化图形用户界面中显示辐射定标的结果。
3.3 系统性能评价遥感影像具有数据量大,影像处理复杂、耗时较长等特点,因此仍采用遥感影像辐射定标服务对原型系统的性能进行评测。为了研究数据量变化时原型系统的性能表现,通过重采样的方法对原始数据进行处理并分成10组,数据量大小如表 2所示,其中最小数据为原始数据的十分之一,其余数据分别为最小数据的2~10倍。为了尽量减少网络因素及其他偶然因素的影响,每组数据都 分别执行了10次,记录其运行时间,并最终采用除去了最大最小值后的均值。硬件配置为:Intel(R) Core(TM) i5-4200 M CPU 2.50 GHz,8.00 GB RAM,500 GB Disk。网络环境为100.0 Mb/s。
图 5显示的是数据量增长时异步网络处理服务原型系统各个模块的耗时情况,通过在服务端中的各个模块设置时间节点计算而得。如图 5所示,耗时最多的为处理服务模块,并且随着数据量增大,处理模块所耗时间迅速增长;消息通知模块包含了注册与通知的时间,耗时较少且相对稳定;异步消息适配器所耗时间在百分之一秒级别,因而在图 5中显示接近于横坐标。图 6显示的是数据量增长时同步与异步处理服务耗时对比,服务执行时间也是通过在服务端设置时间节点计算而得,不包含客户端与服务端之间的网络交互耗时。从图 6中不难看出,用户接收到异步邮箱通知的耗时较同步服务请求响应的时间略长,但异步服务请求相应的时间则在十分之一秒级别,非常迅速,因而实现异步网络处理服务对于此类耗时较长的任务具有十分重要的意义。
4 结 语
本文提出了一种异步网络处理服务实现方法,设计并实现了异步地理信息处理服务原型系统。原型系统以WPS和WNS为核心,对原有的标准WPS服务请求进行扩展,支持回调模式的异步调用。相较于轮询模式,回调模式不容易造成网络阻塞,更适用于传感网环境下的长期复杂型任务。本文以悬浮泥沙浓度反演中的辐射定标服务为例,验证了异步处理服务原型系统的可行性,并通过逐级递增的数据量对原型系统进行了性能测试。本文方法相较于传统中间件式方法,服务请求依然遵循了标准WPS规范,因而在整个地理空间领域仍具有互操作性。后期将在本文研究基础上建立网络环境下异步地学工作流,并建立任务驱动的同步/异步协同处理机制,为不同需求的用户提供更加及时、可靠、主动的信息服务。
[1] | Yue P, Di L, Wei Y. Intelligent Services for Discovery of Complex Geospatial Features from Remote Sensing Imagery[J]. ISPRS Journal of Photogrammetry and Remote Sensing,2013, DOI:10.1016/j.isprsjprs |
[2] | He L, Yue P, Di L, et al. Adding Geospatial Data Provenance into SDI:A Service-Oriented Approach[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2015, 8(2):926-936 |
[3] | Gong Jianya, Geng Jing, Wu Huayi. Geospatial Knowledge Service:A Review[J]. Geomatics and Information Science of Wuhan University, 2014, 39(8):883-890(龚建雅,耿晶,吴华意.地理空间知识服务概论[J].武汉大学学报·信息科学版,2014,39(8):883-890) |
[4] | Yue P, Jiang L, Hu, L. Google Fusion Tables for Managing Soil Moisture Sensor Observations[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2014, 7(11):4414-4421 |
[5] | Schut P. OpenGIS Web Processing Service, Version 1.0.0[R]. Open Geospatial Consortium Technical Report, Wayland, MA, 2007 |
[6] | Simonis I, Echterhoff J. OpenGIS Web Notification Service Implementation Specification[R]. Open Geospatial Consortium Inc, Wayland, MA, USA, 2003 |
[7] | 52North. 52nWPS[EB/OL]. http://52north.org/wps, 2010 |
[8] | Zhao P, Di L, Yu G. Building Asynchronous Geospatial Processing Workflows with Web Services[J]. Computers and Geosciences, 2012, 39(2):34-41 |
[9] | Christensen E, Curbera F, Meredith G. Web Services Description Language (WSDL) 1.1[EB/OL]. http://www.w3.org/TR/2001/NOTE-wsdl-20010315, 2001 |
[10] | Adams H. Asynchronous Operations and Web Services, Part 2 Programming Patterns to Build Asynchronous Web Services[EB/OL]. http://www.ibm.com/developerworks/library/ws-asynch2/index.html, 2010 |
[11] | Mitra N. Simple Object Access Protocol (SOAP) Version 1.2[EB/OL]. http://www.w3.org/TR/2001/WD-soap12-part0-20011217, 2001 |
[12] | Box D, Christensen E, Curbera F. Web Service Addressing (WS-Addressing)[EB/OL]. W3C Working Group, Cambridge, MA, USA,2004 |
[13] | Yang Chao. Geoprocessing Workflow Interoperation Research for the Sensor Web Environment[D]. Wuhan:Wuhan University, 2012(杨超.传感网环境下地学工作流互操作方法研究[D].武汉:武汉大学, 2012) |
[14] | Min Min. Geospatial Sensor Web Service[D]. Wuhan:Wuhan University, 2008(闵敏.对地观测传感网信息服务系统架构及其关键技术研究[D].武汉:武汉大学, 2008) |
[15] | ISO/TC 211. Geographic Information Geomatics[EB/OL]. http://www.isotc211.org/, 2000 |
[16] | Yue P, Gong J, Di L. GeoPW:Laying Blocks for the Geospatial Processing Web[J]. Transactions in GIS, 2010, 14(6):755-772 |
[17] | 52n WNS. 52n Web Notification Service (WNS)[EB/OL]. https://www.52north.org/bin/view/SensorWeb/WebNotificationService, 2006 |
[18] | Qin Zudian, Fan Tianyu, Wu Qingwen, et al. Analysis of "Red Tide" in East Lake and Trend of Development[J]. Environment Science and Technology, 2008, 31(7):93-95(秦祖殿,范天瑜,吴青文,等.东湖"赤潮"的成因分析及发展趋势[J].环境科学与技术,2008,31(7):93-95) |
[19] | Chen Liqiong, Tian Liqiao, Qiu Feng, et al. Water Color Constituents Remote Sensing in Wuhan Donghu Lake Using HJ-1-A/B CCD Imagery[J]. Geomatics and Information Science of Wuhan University, 2011, 36(11):1280-1283(陈莉琼,田礼乔,邱凤,等.HJ-1-A/B卫星CCD影像的武汉市东湖水色三要素遥感研究[J].武汉大学学报·信息科学版,2011,36(11):1280-1283) |
[20] | Chen Xiaoling, Yuan Zhongzhi, Li Yoksheung, et al. Spatial and Temporal Dynamic of Suspended Sediment Concentration in the Pearl River Estuary Based on Remote Sensing[J]. Geomatics and Information Science of Wuhan University, 2005, 30(8):677-681(陈晓玲,袁中智,李毓湘,等.基于遥感反演结果的悬浮泥沙时空动态规律研究:以珠江河口及邻近海域为例[J].武汉大学学报·信息科学版,2005,30(8):677-681) |
[21] | Zhang Wei, Chen Xiaoling, Tian Liqiao, et al. Suspended Sediment Monitoring in Poyang Lake Using HJ-1-A/B CCD Imagery[J]. Geomatics and Information Science of Wuhan University, 2010, 35(12):1466-1469(张伟,陈晓玲,田礼乔,等.鄱阳湖HJ-1-A/B卫星CCD传感器悬浮泥沙遥感监测[J].武汉大学学报·信息科学版,2010,35(12):1466-1469) |