曲海成,张钧萍,陈雨时
(1.哈尔滨工业大学 信息工程系,哈尔滨 150001;2.辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105)
随着中国空间技术的快速发展,我国已经具备了强大的对地观测数据区长获取能力,如何对这些海量遥感影像数据进行有效管理,进一步发挥遥感卫星在国民经济发展、灾害预报与评估、科学研究领域的作用,一直是遥感卫星数据应用领域的热点问题[1-2]。多源遥感资源协同调度服务系统也是在这一背景下提出的。目前遥感卫星数据应用系统多基于C/S结构,应用于特定的遥感数据领域,系统可移植性和灵活性不高,关键数据保密性处理级别不够高,达不到快速响应和处理军民共享遥感数据的实际需求[3-4]。为此,提出了集群环境下,基于JEE6框架、引入 Web服务和柔性分布式工作流技术的多源遥感协同调度软件系统架构,来解决快速共享海量遥感数据服务过程中存在的软件系统架构缺陷问题[5-7]。下面就按照软件工程中的模型驱动体系架构理论,分业务需求、体系结构、软件设计和软件实现几部分来阐述多层次遥感资源协同调度软件架构的设计与实现。
目前,卫星遥感技术与地面勘测、航空遥感一起,形成了全方位、立体化的对地观测体系,具有多频率、全天候、高精度、高效、快速的特点[2]。然而,在实际遥感数据应用处理过程中仍面临以下问题。
1.1.1 海量遥感数据的快速组织与查询[8]
系统处理的数据有这么几个特点:要处理的遥感资源数据量大,达到PB量级;数据中心分布在不同区域,数据格式不统一,且这些数据由不同体系结构的管理系统管理;客户端请求数据量大,很难满足在客户端浏览器下进行三维显示的需求。这些特点都给目前遥感数据处理提出了新的问题,即在现有硬件和网络环境下,如何解决分布式异构海量遥感数据的存储和快速检索问题。
1.1.2 要处理的业务流程越来越复杂
原有系统业务流程处理一般都是固定流程设计,很难随着应用需求的变化进行调整。当前软件系统需要满足客户、调度中心、规划中心和数据资源中心之间的实时数据交互功能。客户以浏览器模式提交的数据请求,然后经过数据加密和过滤技术到达调度中心,进行数据请求分析和负载均衡处理,再进行快速数据检索,对检索结果进行安全后处理再通过浏览器返回给客户;当已有数据不满足用户需求时,调度中心需要将数据请求发送到数据规划中心,然后自动协调客户、规划中心和数据资源中心3者之间的数据和请求交互;当出现紧急任务时,监控中心能够实时改变系统运行状态,协调规划中心和数据中心对用户的数据请求快速做出反应。上述复杂业务流程仅靠状态控制和一般工作流技术解决不了。
上述问题是软件系统必须解决的关键问题,还有其他一些问题如系统运行在基于Unix系统的集群环境下和监控端实时显示调度信息、数据交互的安全性等[9-10],这些问题都给系统软件架构提出了新的要求。
经过大量实地考察和专家论证,结合目前先进的软件开发及管理经验,给出了军民共享多源遥感资源协同调度服务系统主要功能实现框图,如图1所示。
图1 系统功能框图
系统主要通过调度中心实现客户与不同遥感资源中心之间的信息交互,即:客户通过门户网站提交数据订单请求到调度中心,调度中心根据数据请求的状态和资源服务器的负载情况进行调度。如果有客户请求的数据,则对授权用户提供数据下载服务;如果没有数据需要生产,则将请求提交给任务规划部门进行规划,然后将规划方案提交数据生产部门进行生产,最后将生产好的数据提交给调度中心,调度中心通知用户下载。系统涉及客户、调度中心、规划中心、第三方资源数据中心之间的复杂数据交互过程。
新的软件系统架构要求具有开放性和灵活性,能与其他异构系统进行无缝数据交互,且能够实现并行处理大规模数据的能力。为此,软件系统中引入面向服务架构和分布式工作流技术,来解决上述问题。
Web服务技术是一项独立于应用程序开发平台、具有松耦合特性并且满足一系列Web协议标准的计算机技术[11]。Web服务技术为基于Internet/Intranet分布式系统的资源共享和功能集成提供灵活解决方案。它通过精确定义的接口来提供相关服务,屏蔽了实现服务具体的开发平台和程序设计语言,使得客户不用关心服务内部实现细节,只需要提供相应的参数,就能够获得需要的数据;另外Web服务采用开放的标准进行数据描述、传输和交换,对关键数据,方便加入第三方组件进行加密和过滤处理。对本系统而言,采用Web服务技术无疑是最佳选择。因为调度系统与网站、规划中心和数据中心之间都是异构系统平台,且物理上分别部署在不同区域,采用基于SOA架构的软件系统,统一了交互数据的格式,便于异构系统之间数据交互。
传统的工作流技术不能在不同的系统之间进行有效地集成,或者使得集成后的业务流程变得非常复杂。而面向服务架构则可以很好地解决业务流程无法集成的问题,它可以根据系统的需求,通过网络对松散耦合的粗粒度应用组件服务进行分布式部署、组合和使用。因此,根据分布式工作流技术的特点以及面向服务的特性,将分布式工作流技术与面向服务相结合,提出基于SOA架构的分布式工作流模型,以适应开放、分布、异构、动态的遥感数据处理的复杂应用需求[12-13]。
图2 四层架构设计方案
目前,处理海量遥感数据的系统多采用3层结构,即应用层、逻辑层和数据层。这种结构特点是系统结构相对简单,实现起来相对容易,各层间耦合度较大,一般用于局域网范围内,适合处理集中式数据。现系统要求:1)本地数据中心实时获取异地数据中心的数据,满足客户通过浏览器和其他客户端获取空间数据;2)同时要求调度系统支持异地异构数据交互,并进行数据安全验证;3)通过客户端实时监控系统运行状态和任务交互情况。上述要求在三层结构下无法同时满足,基于此,提出四层架构设计方案(如图2所示),即在三层方案基础上,增加支撑层。支撑层主要是框架和组件层,通过采用第三方成熟框架和组件,进一步划分逻辑层和数据层之间的界限,逻辑层不直接与数据交互,通过支撑层获得数据。这样设计可降低逻辑层和数据层之间的耦合度,便于对异构海量数据的存取,同时,采用框架组件设计,便于系统更新和移植。
针对于上节的四层设计模式,在系统中四层架构具体描述如图3所示。
图3 四层设计的具体功能部署
这4个层次具体实现描述如下:
1)应用层以前台网站应用为主,主要实现遥感数据订单请求、查询、和修改;任务规划请求的查询和修改;历史数据查询和快速视图数据检索等任务。
2)中间层主要是业务逻辑接口层。将各具体任务封装成Web服务,同时构建与第三方软件系统数据交互的Web服务接口。
3)支撑系统运行的框架和组件层。主要包括JEE6框架、分布式工作流组件、空间数据访问组件、集群管理组件和数据加密与过滤组件等。
4)基础数据层。这一层主要完成本地数据中心与其他分散数据中心之间的数据同步以及对支撑系统运行的关系数据和其他类型数据的管理。
以上4个层次的具体软件系统部署情况[13]如下图4所示。
图4 大系统软件部署图
整个大系统主要涉及6个子软件系统,其中系统1为前台网站系统,2为采用基于MFC的搭建三维数据显示系统,3为采用C#语言搭建的任务规划系统,5为本地数据中心采用Java GUI技术搭建,4和6分别是调度中心的服务器端和客户端软件系统。
由于规划中心、三维显示和各数据中心的系统为已有系统,且采用不同技术搭建,给系统集成带来困难。调度中心是整个系统核心部分,调度中心的实现技术关系着整个系统的成败。为此,调度中心服务器端采用基于JEE6框架搭建,部署Web Service服务和工作流引擎,运行到Unix服务器中;监控端采用Java GUI设计,通过Socket接口与服务器端实时通信,监控系统的运行状态;前台网站主要采用JSP和Ajax技术搭建,后台支持Web服务器为Weblogic和GeoServer。
整个大软件系统比较复杂,由调度系统将前台网站、规划中心和数据中心等系统统一成一个有机整体。这一软件系统架构设计,有效地实现了海量异构遥感数据的共享和快速数据服务,尤其适用于对数据安全要求较高的军民共享遥感数据管理系统。这一架构先进性主要体现在以下几个方面[14]:
1)基于应用层、功能逻辑层、功能组件支撑层和基础数据层的多层次软件体系结构设计,使得整体软件结构层次清晰、功能划分明确,系统结构稳定,易于系统升级和扩展。
2)基于混合结构的调度系统,既实现了异构软件系统之间的数据交互,又实现了对交互数据的实时监控。
3)面向服务的协同分布式工作流设计,有效利用集群资源,实现对复杂业务流程的动态管理,增加了系统的灵活性,给异构环境下复杂数据流处理提供了可行方案。
但是系统整体比较复杂,配置管理起来技术难度较大;另外基于第3方组件的数据加密与过滤技术,对系统性能影响较大。
经过实验室模拟仿真运行和真实环境试运行结果来看,本软件系统架构能够满足多用户对多源异构遥感数据服务的需求,有效地实现了对多源异构遥感数据的综合处理(包括存储、传输与显示等),提高了系统数据访问的安全性。系统在实时数据监控、并行数据访问能力、多模式多状态任务流转流程处理方面也都有不错表现。
本文提出的软件结构模式,可应用到面向各个应用部门用户,管理和组织所有卫星下传的图像数据,广泛服务于特殊情况的减灾救灾、应急指挥以及常规的农、林、城市规划等关系国计民生的各个领域,具有一定的推广示范应用价值。
[1]闫秀英,傅俏燕.国产遥感卫星数据应用现状及特点分析[J].卫星应用,2010(3):48-49.
[2]周成虎,欧阳,李增元.我国遥感数据的集成与共享研究[J].中国工程科学,2008,10(6):51-55.
[3]冯钟葵,张洪群,王万玉,等.遥感卫星数据获取与处理关键技术概述[J].遥感信息,2008,8(4):91-97.
[4]戴芹,刘建波,刘士斌.海量卫星遥感数据共享的关键技术[J].计算机工程,2008,34(6):283-285.
[5]徐地保,赵小祥.海量遥感影像数据共享服务系统的工作流程[J].现代测绘,2010,33(5):13-15.
[6]贺春林,腾云,彭仁明.一种基于ECA规则的 Web Service工作流模型的研究[J].计算机科学,2009,36(8):112-115.
[7]钟九生,江南,胡斌,等.面向城市应用的多源遥感影像服务平台设计与实现[J].地球信息科学学报,2012,14(1):116-122.
[8]ZAMBOULIS L,MARTIN N,POULOVASSILIS A.Query performance evaluation of an architecture for finegrained integration of heterogeneous grid data sources[J].Future Generation Computer Systems,2010,26:1073-1091.
[9]许胜礼,王世卿,毕战科.基于GIS技术的物流信息系统设计架构[J].计算机工程与设计,2010,31(6):1259-1263.
[10]章小卫,顾梦远,李斌.一种基于工作流自适应软件系统的监控模型[J].微电子学与计算机,2012,29(11):25-28.
[11]李晋,杜庆东,穆宝良.基于SOA的数据挖掘服务整合研究与设计[J].沈阳师范大学学报:自然科学版,2010,28(2):218-220
[12]LI Fan,ZHANG Xu,WANG Hongrong.A Study of Distributed Remote Sensing Data Sharing Platforms Based on Web Services[C]∥2010International Symposium on Computational Intelligence and Design.2010:72-75.
[13]FRITZ S,MACCALLUM I,SCHILL S,et al.Geo-Wiki:An online platform for improving global land cover[J].Environmental Modelling & Software,2012,31:110-123.
[14]FENG Yuhong,FENG Shengzhong,ZHAO Zhongying,et al.A comparison study between distributed and centralized Job workflow execution models[J].Bulletin of Advanced Technology Research,2009,3(8):18-23.