一种基于单机计算资源的遥感网络服务构建模型

2015-11-06 08:04于萍
新乡学院学报 2015年6期
关键词:多用户网络服务计算资源

于萍

(新乡学院管理学院,河南新乡453003)

一种基于单机计算资源的遥感网络服务构建模型

于萍

(新乡学院管理学院,河南新乡453003)

提出了一种基于单机计算资源的遥感网络服务构建模型——遥感服务模拟器。将遥感网络服务抽象为用户交互、模型计算和结果反馈三个部分,通过设计基于HTTP协议的用户交互映射机制、长时通信机制和多用户并发机制,将单机遥感模型直接映射为网络服务。实验证明,该方法可充分利用已有的单机遥感计算资源,只要遥感模型具有控制台交互的特征,就可实现向网络服务的直接迁移。

遥感服务模拟器;单机计算模型;网络服务;直接映射

经过长期发展,遥感领域的研究者已建立了大量的遥感模型,获得了大量的经典算法[1],如大气模型、土壤模型、水体模型和生长模型等。每一类模型又可细分为若干分支,如大气模型可分为6S模型[2-3]、Modtran模型[4]等。遥感模型相对于信息技术,尤其是网络服务技术,由于发展较早,一些经典算法(如6S模型)大多以Fortran或C等计算机语言来实现,以单机、单用户的方式运行,以控制台(如DOS窗口)的方式提供人机交互。随着信息技术的发展,以网络服务形式实现的遥感模型计算,即为多数用户共享的计算资源,成为遥感模型发展的趋势之一[5-6]。但目前只有部分遥感模型能经过改造被用于网络服务,其主要原因是:1)将遥感模型算法从单机程序移植到网络服务,需使用网络服务语言如JSP、ASP等对其计算过程重新实现,而早期遥感模型的实现语言各不相同,语言之间的迁移比较困难,工作量巨大;2)将遥感模型算法由单机程序移植到网络服务,需要对遥感模型机理有相当的了解,同时还需要具备遥感专业知识和计算机专业知识,这直接决定了遥感模型的网络化移植具有较高的专业门槛。

本文提出了一种新的遥感模型网络服务的封装方法——遥感服务模拟器。在充分利用已有计算资源的情况下,它不仅可实现快速地将单机计算向网络服务的移植,而且能同时保证充分的可扩展性。

1 遥感服务模拟器的抽象模型

网络服务的特征主要有以标准HTTP协议交互、允许多用户并发访问、实时交互与反馈等。遥感计算模型的网络服务流程大致可以抽象为用户交互(参数输入)、模型计算和结果反馈(结果输出)等几个部分,其核心是模型计算。遥感服务模拟器的实现策略是将已有的单机计算资源作为网络服务的计算部分,利用单机的计算功能完成模型的计算,得到计算结果。在此基础上,使用网络服务语言对单机计算资源进行封装,即使用标准的HTTP协议,实现网络平台下的用户交互、并发访问和计算调度,完成单机计算资源向网络服务的直接映射。因为这种策略下的网络服务是以单机计算资源来实现网络计算的,所以称之为“遥感服务模拟器”。遥感服务模拟器的抽象模型如图1所示。

图1 遥感服务模拟器的抽象模型

2 遥感服务模拟器的关键技术

2.1 基于HTTP协议的用户交互映射机制

使用网络浏览器操作的客户端无法直接使用服务器端的单机计算程序,换句话说,客户端无法同计算程序之间建立操作和反馈的交互。因此,解决客户端与计算程序之间的交互、实现控制计算过程是基于单机计算资源构建网络服务的前提。

本文设计了计算模拟器的交互映射模型,模拟器维持两种交互的输入流和输出流:一种面向网络客户端,一种面向单机计算资源。在计算时,模拟器获取单机计算资源对外暴露的输入流Ic和输出流Oc,同时获得用户端以HTTP协议建立的输入流Iu和输出流Ou,并将二者在模拟器内部实现转换与对接。当用户以HTTP协议提交操作时,该操作被模拟器从Ou中获得并发送到计算资源的Ic中;当计算资源对操作进行响应并完成计算后,通过Oc向模拟器提交,继而由模拟器通过Iu向用户反馈。由此实现网络用户的操作与单机计算资源控制之间的映射。映射流程如图2所示。

图2 遥感服务模拟器的交互映射机制

2.2 基于HTTP协议的长时通信机制

网络服务是基于HTTP协议运行的。HTTP协议是短时通信协议,其通信在一次握手(即通信信道中形成输入流和输出流)之后,将自动终断客户端与服务器之间的通信连接。将这种机制应用于遥感服务模拟器,会出现较大的问题:1)遥感模型的计算过程通常需要输入大量的参数和进行人机交互,频繁地建立和断开连接会增加服务器的通信和计算压力,且建立连接的过程需要花费时间;2)遥感模型的计算通常以遥感数据为处理对象,而遥感数据以像元方式存储,数据量通常较大,若计算时间较长,短时连接机制将无法保持连接至计算完成,或者实时获取计算资源的计算结果。

本文提出了基于标准HTTP协议的长时通信机制。其基本思想是以标准的HTTP协议建立信道,将信道拆分成单独的输入流和输出流:输入流只负责用户交互的提交,不接收模拟器的反馈;输出流只负责向用户的反馈,不接收用户参数的输入。这可使通信信道无法形成回合,HTTP协议无法自动关闭通信,只需在服务器端阻滞输出,在网络用户端阻滞监听,即可实现基于标准HTTP协议的长时通信机制。

2.3 多用户并发访问模拟

网络服务的一个特征是多用户并发,即允许多个网络客户端同时使用同一个计算服务;但单机遥感计算资源通常不考虑(也无需考虑)多用户并发访问的问题。这样,若直接将单机遥感计算资源向网络服务映射,可能会由于多个用户同时读写某一个资源而造成冲突。

笔者设计了父子模型来实现遥感计算资源的多用户并发访问。其机制是构建计算资源库,即将遥感计算模型连同其所需的相关资源,以名称为标志,分门别类地存储于文件资源库中,称为父资源。当用户C请求访问某资源R时,模拟器先向用户C反馈全局唯一的标志ID,然后,在服务器端以ID为虚拟目录,将计算资源R及其所需的所有相关文件都备份到目录ID中,同时将用户C的工作路径指向该服务目录,完成父资源向子资源的派生。在此基础上,用户C的交互及计算将全部由子资源来完成,与父资源无关。当用户C退出访问时,临时目录ID中的子资源连同产生的中间文件和结果文件一并删除,实现对多用户并发访问机制的模拟。

2.4 计算服务的管理机制

遥感计算程序在服务器端启动后,就被以进程的方式存在服务器端,并通过输入流和输出流向客户端提供交互和计算服务,不过由于该进程由计算模拟器启动,故需要接受模拟器的管理和调度。本文设计如下管理机制:将计算程序的进程P连同从该进程获取的输入流I和输出流O,一并封装成一个类C,以类C的实例的方式存储于计算服务队列中,因为该服务对应于唯一的客户端,所以使用该客户端的ID标识此服务。对该服务的计算调度过程为:当服务器端获得客户端的操作请求时,先从请求中取得该客户端的ID,再通过索引从服务队列中查找到对应于客户端的进程实例,从实例中取得输入流I和输出流O,然后将客户端的操作写入输出流O中,实时向客户端反馈计算结果,引导计算资源完成计算过程;当客户端退出时会先向服务器发送退出请求,服务器再从服务队列中查找到该客户端的服务进程,关闭输入流、输出流和服务进程,同时删除与该客户端对应的子资源及相关文件,释放其在服务器端所占用的空间,完成对计算过程的管理。

3 原型系统及应用实例

3.1 原型系统

基于上述模型和关键技术,本文使用跨平台的Java语言来实现遥感服务模拟器。其中,服务器端使用Servlet来实现,网络客户端使用Applet来实现。

(1)服务器端的实现

服务器端轮询监听客户端POST和GET连接的请求。当有客户端计算发送请求时,服务器先从客户端的请求中解析出需要执行的模型名称,并判断计算资源库中是否有该计算服务,如有,则为客户端生成全局唯一的ID并返回,同时将该计算资源连同其相关文件都备份至以该ID为名称的临时目录中,然后使用Runtime.getRuntime().exec()启动该程序,生成计算进程P,并将工作目录指向该临时目录;同时使用P.get-InputStream()和P.getOutputStream()从进程P中获得输入流I和输出流O,连同客户端ID一并加入模拟器的服务管理队列中。整个过程的伪代码如图3所示。

图3 服务器端的伪代码

(2)客户端的实现

网络客户端通过POST和GET协议与服务器端的计算模拟器发生交互。它分别获取POST协议的输入流IS=HttpURLConnection.getOutputStream()和GET协议的输出流OS=HttpURLConnection.getInputStream(),并使用OS向服务器端发送操作请求,使用IS从服务器端获得计算结果。信息流建立完成之后,当网络客户端需要对计算过程进行控制时,它就会以HTTP协议的长时通信机制为基础,通过OS向模拟器提交请求,由模拟器操作计算资源完成计算,并将计算结果返回;客户端则从IS中读取计算结果,并写入计算结果列表。整个过程的伪代码如图4所示。

图4 服务器与客户端交互的伪代码

3.2 应用实例

前面实现了任意通过控制台交互的单机遥感计算模型向网络服务的直接映射。图5展示了单机版计算程序6S模型向网络服务的映射结果。在映射的过程中未对6S模型的计算程序进行任何修改,直接实现了向网络服务的改造。图5(a)为单机版计算程序的运行效果,图5(b)是基于计算模拟器的服务运行效果,可以看出,二者在交互反馈和操作流程上完全相同。

图5 遥感计算模型6S的服务映射

系统还实现了多用户并发访问(图6)。从图6可以看出,对同一个服务,每一个网络客户端都具有唯一的ID,客户端的操作互相不影响,每一个用户都可以独立的操作计算过程。对网络客户端而言,其访问和操作与使用真正的网络服务完全相同。

图6 多用户并发访问效果

4 结束语

本文设计的遥感服务模拟器模型具有以下优点。

(1)可充分利用已有的计算资源。这种优势使得单机遥感计算模型在向网络服务迁移时,无需重新实现计算过程,无需考虑内部计算机制,也无需考虑遥感模型机理,充分降低了服务迁移的工作量。

(2)具有较强的扩展性。任何遥感计算模型,只要存在控制台方式的输入流和输出流(事实上,大部分早期以Fortran和C语言撰写的遥感模型均有此类特征),均可使用遥感服务模拟器直接映射为网络服务。

(3)本文提出的遥感服务模拟器,对其他领域的类似需求也具有一定的借鉴意义。虽然网络语言 (如ASP和JSP等)是网络服务的最直接的实现方式,但对已有的本地计算资源而言,遥感服务模拟器也是一种可选方案。

[1] 王芳,陶建军,姜良美.农作物覆盖地表微波遥感模型研究进展[J].遥感技术与应用,2011(2):254-262.

[2]KOTCHECNOVA SY,VERMOTE E F,MATARRESE R, et al.Validation of a Vector Version of the 6SRadiative Transfer Code for Atmospheric Correction of Satellite Data:Part I:Path Radiance[J].Applied Optics,2006,45(26):6762-6774.

[3] WILSON R T.Py6S:A Python Interface to the 6S Radiative Transfer Model[J].Computers and Geosciences, 2013(51):166-171.

[4]BERK A,ANDERSON G P,ACHARYA P K,et al. MODTRAN5:A Reformulated Atmospheric Band Model with Auxiliary Species and Practical Multiple Scattering Options[C]//LARAR A M,SUZUKIM,TONG Q,SPIE Proceeding,Multispectral and Hyperspectral Remote Sensing Instruments and Applications II,Bellingham:SPIE Press,2005,5806:662-667.

[5] 曾少斌,谢传节,李佳琪,等.基于网格服务的遥感图像并行融合[J].地球信息科学学报,2010(2):269-274.

[6] 朱红春,刘海英,张继贤,等.遥感数据处理的网格系统仿真实现及应用研究[J].系统仿真学报,2010(9):2095-2099.

【责任编辑 梅欣丽】

A M odel for Fast Transp lanting Local Remote Sensing Program s to W eb Services

YU Ping
(School ofManagement,Xinxiang University,Xinxiang 453003,China)

A new model,named computation service emulator,was proposed for fast transplanting local remote sensing programs to web services.In themodel,computations of the web application are accomplished by local programs,and after that,the interactions under HTTP protocols includingmechanisms of the interaction mapping,the long-time connection,as well as the concurrent access, are simulated,based on which the local programs can be employed directly for web services.Experiment results show that themodel can take full advantages of existing local remote sensing programs,and as long as the local programs have consoles,they can all be transplanted to web services directly withoutanymodification.

remote sensing service emulator;local program;web service;fast transplanting

TP393.093

A

2095-7726(2015)06-0045-04

2014-11-01

国家自然科学基金项目(41201396);河南省科技厅科技计划项目(122400440052)

于萍(1972-),女,河南新乡人,副教授,硕士,研究方向:网络服务、地理信息系统和虚拟旅游。

猜你喜欢
多用户网络服务计算资源
安泰科多用户报告订阅单
网络服务合同的法律问题研究
基于网络服务者在侵权法中的应用分析
安泰科多用户报告订阅单
安泰科多用户报告订阅单
基于模糊规划理论的云计算资源调度研究
安泰科多用户报告订阅单
改进快速稀疏算法的云计算资源负载均衡
Web Services整合机制研究
网络服务行为的可罚性