一种基于WCF技术的遥感影像高效处理平台

计算机时代 / 2018年02月19日 22:49

新闻

茹彦翔 王栋 陈恒 臧文乾

摘 要: 研究了WCF原理及其优势,设计并实现了一种基于WCF技术的遥感影像高效处理平台。利用WCF技术,将系统的表示层、影像处理层和数据访问层相分离,并通过WCF调度服务器进行消息总控。平台层间松耦合、层内高内聚,逻辑功能清晰。实验及实际应用表明,该平台有效提高了遥感影像处理效率,具有更高的鲁棒性,且易于控制和便于二次开发。

关键词: 遥感影像处理; WCF; 松耦合; 高内聚

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)11-01-04

A WCF technology based efficient remote sensing image processing platform

Ru Yanxiang1,2, Wang Dong2, Chen Heng1,2, Zang Wenqian2

(1. School of Computer and Information Engineering Henan University, Kaifeng, Henan 475004, China;

2. Institute of Remote Sensing and Digital Earth Chinese Academy of Sciences)

Abstract: The principle and advantages of WCF(Windows Communication Foundation)are studied, and a WCF technology based remote sensing image processing platform with high efficient is designed and implemented. By using WCF technology, the system's presentation layer, image processing layer and data access layer are separated, and the message is always controlled by WCF scheduling server. The platform system has the properties of loose coupling between the layers, high cohesion within the layer and clear logic function of the layer. Experiments and practical applications show that the platform can effectively improve the efficiency of remote sensing image processing, is more robust and easy to control, and facilitates the secondary development.

Key words: remote sensing image processing; WCF; loose coupling; high cohesion

0 引言

遥感影像处理是对遥感图像进行辐射校正和几何纠正、图像整饰、投影变换、镶嵌、特征提取、分类以及各种专题处理等一系列操作,以求达到预期目标的技术[1]。随着计算机技术的迅速发展,社会经济形态已经从产品经济时代、服务经济时代逐步演变为以体验为重要指标的感官时代[2-3]。用户所认可的遥感影像处理软件,需要对影像具有多种处理能力,更快的处理速度,较简洁的操作,以及更佳的用户体验。为了满足用户的这种需求,就需要我们设计并开发一种涵盖图像预处理,图像后处理以及展示的高效的一体化平台。

本文基于WCF技术设计并实现了一个遥感影像处理平台,该平台在完成基本的图像处理功能的同时,具有处理速度快,操作便捷,易于扩展等特点,且对数据进行统一的组织分发管理并保障了数据的安全性。

1 WCF相关技术概述

1.1 面向服务架构

SOA(service-oriented architecture)面向服务架构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来[4]。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性[5]。

1.2 Windows通讯接口

WCF(Windows Communication Foundation)是由微软开发的基于SOA的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的.net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术[6]。概括地说,WCF具有统一性,互操作性,安全与可信赖,兼容性四大优势[7]。是Windows平台上开发分布式应用最佳的实践方式。

2 问题分析与整体架构设计

2.1 问题分析

为了满足用户日益提升的功能需求,在原有基础上对平台进行改进,在此期间遇到若干问题使得项目进展遇到瓶颈,问题如下。

⑴ 原始遥感影像数据有单体数据量大的特点,下载影像较耗时。用户通常想看到的是处理后影像,不是原始数据,所以并非必须下载原始数据。

⑵ 普通计算机配置不适合做遥感大数据处理。通常在用户机上执行图像处理算法速度慢,并占了用户机大量CPU资源。

⑶ 遥感影像数据有效利用率低。往往用户感兴趣区域只是整张影像中的一部分,处理整张影像效率低,耗时长。

⑷ 数据安全性得不到保障。遥感影像数据具有较高的研究价值,若被不法分子得到原始数据,有可能损害国家利益。

⑸ 缺少公共处理平台对数据、产品进行统一的分发和管理。随着时间的推进,平台所需要管理的遥感影像数据会越来越多,用于管理数据所付出的代价会越来越高。

2.2 整体架构设计

为了解决上述问题,可以使用WCF技术将系统表示层、影像处理层和数据访问层相分离,从而跨过项目开发瓶颈。平台的整体架构图如图1所示。

前台展示模块,即用户看到的遥感影像处理平台,是用户的操作界面,负责向WCF调度服务器发送图像处理请求,给用户提供遥感影像在数字地球上的浏览、展示等功能。

WCF调度服务器负责各个模块之间的通信,对平台进行统一调度管控。负责接收用户请求,通知数据中心准备数据,向生产集群请求图像处理,接收或转发各个模块的反馈信息。实现了原始影像无需下载,解决了数据安全问题。

生产集群模块负责执行用户请求的图像处理程序,如几何校正,图像融合,目标识别,图像切分等算法程序。解决了影像处理缓慢问题和影像利用率低的问题。

数据中心模块负责向图像处理算法提供数据支撑,并向用户提供处理后影像的下载服务,在保障数据安全的基础上实现数据共享,以及对海量的遥感影像数据进行组织管理。解决了随着遥感影像数据的增加导致的数据分发管理代价过高的问题。

3 系统实现

3.1 客户端实现

客户端即前台展示模块,具有处理用户I/O操作,与服务端交互以及浏览和展示影像数据等功能。其具体实现如下。

步骤1:客户端调用检索遥感影像原始数据的WCF契约接口,获得原始数据列表,选择影像,接口示例如下:

[OperationContract]

List getSarFileInfoFromXml(List fileInfo);

//fileInfo是查找条件字符串,包括最大最小经纬度,时间,图像格式等

步骤2:客户端根据用户选择是否只对感兴趣区域进行处理决定是否需要调用图像切分程序的WCF契约接口。

步骤3:客户端调用图像处理程序的WCF契约接口,接口示例如下(以几何校正为例):

[OperationContract(IsOneWay=true)]

void RunMatCorrection(string matArgument, string resultPath);

//matArgument是参数字符串,resultPath是输出路径

步骤4:接收服务器反馈的处理进度,并显示进度信息,客户端以进度条的形式呈现给用户。

步骤5:处理完成后,客户端根据用户选择是否需要展示处理结果决定是否需要向服务端发送下载请求。

3.2 服务端实现

服务端即WCF调度服务器,与客户端,数据中心及生产集群三个模块交互,是整个系统的中心,负责各个模块程序有序稳定的执行。其具体实现如下。

步骤1:WCF的服务不能孤立地存在,需要寄宿于一个运行着的进程中,既通常所说的宿主,服务寄宿就是为服务指定一个宿主的过程[8]。WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段。终结点由地址(Address)、绑定(Binding)和契约(Contract)三要素组成[9]。本平台用一个窗体程序作为所创建的一系列WCF服务的宿主,启动服务器监听客户端请求。其主要代码如下:

ServiceHost host=new ServiceHost(typeof(CalculatorService));

//WCF服务节点

NetTcpBinding binding=new NetTcpBinding();

//绑定TCP/IP协议

binding.Security.Mode=SecurityMode.None;

host.AddServiceEndpoint("Contracts.ICalculator",

binding, "net.tcp://" + path + ":8889");

// Contracts.ICalculator为契约接口,path为服务地址

步骤2:服务器监听到客户端请求,调用检索遥感影像原始数据WCF服务,向数据中心发送请求,将数据列表反馈给客户端。

步骤3:服务器若监听到图像切分请求,调用图像切分WCF服务,向生产集群发送请求,运行算法服务器上的切分程序。此处切分不进行降采样,只切出一层的用户感兴趣区域。

步骤4:服务器通过匹配到对应契约,调用对应的WCF算法服务,处理的影像是用户根据数据列表选择的影像或切出的感兴趣区域,数据中心将影像通过局域网传输到算法服务器处理,用户无需下载原始影像。WCF服务伪代码如下(以几何校正为例):

public void RunMatCorrection(string matArgument,

string resultPath)

{ 解析参数字符串matArgument;

传参到生产集群,运行几何校正算法;

}

步骤5:接收计算服务器反馈回的进度信息,转发给客户端,进度信息为百分制形式。

步骤6:算法运算完成后,若监听到客户端发来展示处理后影像的请求,服务器再次调用WCF切分服务。此处切分将图像按金字塔模型切成多层,用于展示。

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。