PIE 3.0架构:紧密结合遥感业务的插件式架构


来源: 航天宏图 产品研发部    时间:2016/09/05

1.插件式架构简介

网上的一种比较好对插件的定义是:插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)也称为扩展,是一种遵循一定规范的应用程序接口编写出来的程序,主要是用来扩展软件功能。软件的功能模块是由一个个插件组成的,这样的软件架构可以称之为插件式架构。在我们经常使用的大型软件中,有很多是使用插件架构的,比如VS 2005、AutoCad、PhotoShop、ArcGIS,也有很多著名的插件,如例如Photoshop中滤镜插件,Wordpress博客程序有成千上万的插件等。

为什么插件式架构如此流行?是因为插件式架构具有以下优点:

一是灵活的定制性能充分满足用户业务的需要

软件的定制化服务来源于两个需要:首先是在个性化时代用户需要一个个性化的软件,例如是软件界面的个性化;其次是单一的商业软件已经很难完全满足用户业务流程的需要,能够灵活配置功能来满足用户业务流程需要的软件才是用户所需要的。

二是方便开发和测试 

一个设计良好的系统的一个特征是:模块之间的低耦合性和模块内部的高内聚性。一般而言,软件架构的灵活性、可扩展性和开发、测试的方便性呈一种正相关的关系。插件系统的一个突出特征采取主程序动态加载插件动态库的方式,这在一定程度上减轻主程序和插件模块的耦合性。同时。在开发的时候只需划分好模块,各个插件开发人员只需遵循接口协议,就能开发出互不影响的插件模块(以前有次项目经历是由于项目开发人员的经验不足或沟通不够造成在各个模块功能开发完成之后整个系统编译时出现循环依赖或函数重命名之类的现象,插件系统基本上可以杜绝这类现象)。在进行程序调试的时候同样很容易显示插件架构的优势,比如在检测内存泄露时可以设置手动设置加载或不加载哪个模块来判断内存泄露出现在哪个模块,同时在出问题时也可以很快能判断出哪个模块出现了问题。

三是方便更新,从而延长了软件的生命力 

由于插件采用动态加载的方式,而且遵循的是统一的接口协议。在进行软件升级时,只需要将插件动态库进行替换即可。具体的方式可以设定升级网站,用户可以从升级网站下载新的升级文件来替换本地的文件。

2.遥感业务的特点

在研发新一代的遥感图像处理软件PIE 3.0早期,航天宏图产品研发中心的技术团队就充分认识了插件架构的优越性,但是首先遇到的一道难题是如何将这一先进架构和遥感业务的特点结合起来。这种结合,打个不太恰当的比喻就是类似于当年老一辈革命家如何将马列主义的普遍真理和中国社会的具体情况结合起来找到一条适合中国国情的革命道路。于是研发团队开始认真思考遥感业务的特点,最终找到两条显著特点:

一是遥感数据多源异构

随着对地观测平台、遥感传感器种类和数量的日益丰富,遥感数据的来源越来越多。遥感数据的共性表现为图像数据,但是其存储文件格式却是多种多样,呈现出不同的数据存储结构,既有最常用的GeoTiff文件格式,也有可存储多达几百个波段的ENVI Img格式和PCIDSK格式,甚至有可以容纳其它领域数据的hdf格式。

二是遥感数据处理算法众多

遥感数据处理算法众多,现在以图像融合为例。一般情况下,图像融合由低到高分为三个层次:数据级融合、特征级融合、决策级融合。像素级融合中有空间域算法和变换域算法,空间域算法中又有多种融合规则方法,如逻辑滤波法,灰度加权平均法,对比调制法等;变换域中又有金字塔分解融合法,小波变换法。在特征级融合中,保证不同图像包含信息的特征,如红外光对于对象热量的表征,可见光对于对象亮度的表征等等。决策级融合主要在于主观的要求,同样也有一些规则,如贝叶斯法,D-S证据法和表决法等。由此可见仅仅是图像融合这一领域已经包含了几十种算法。

3.PIE 3.0的架构如何和遥感业务相结合

在找到遥感业务的特点之后,PIE 3.0的研发团队达成了一点共识:插件式架构的一大优势在于其强大的扩展性,而在遥感行业的扩展就体现在数据格式支持的扩展和数据处理算法的扩展方面。于是研发团队提出PIE3的功能性扩展体现在三种插件的开发:数据驱动插件、界面插件和算法插件。数据驱动插件对应遥感业务的遥感数据多源异构的特点,用于支持对新的遥感数据格式的读写支持。界面插件和算法插件对应遥感业务的遥感数据处理算法众多,界面插件主要是用于接受用户的输入,将用户输入的参数传递给算法插件进行处理。为了便于二次开发用户,PIE3的研发团队开发了一个结合VisualStudio开发工具的二次开发向导,如下图:


图3.1  PIE 3.0插件项目


图3.1  PIE 3.0支持的插件工程类型     

实践证明,PIE 3.0这种经过充分论证的结合遥感业务特点的插件架构不但在PIE 3.0功能的快速开发被证明是有效的,而且有力支撑了公司几十个遥感相关业务软件的定制开发。                                

版权所有 © 2008-2016    北京航天宏图信息技术股份有限公司

京ICP备08011069号-3    京ICP备08011069号-4     联系电话:400-890-0662