韩秀珍,冯德财,张路金,刘子畅
(1.中国气象局国家卫星气象中心,北京100081;2.中国科学院电子学研究所,北京100190)
基于MEF的卫星遥感监测产品集成框架实现
韩秀珍1,冯德财2,张路金2,刘子畅2
(1.中国气象局国家卫星气象中心,北京100081;2.中国科学院电子学研究所,北京100190)
传统的遥感监测分析系统集成了大量专业的图像处理算法,但没有针对特定领域监测分析业务进行梳理和建模,算法、模型和功能复用性、扩展性较差,系统在应用推广中困难较大。为此,提出基于管理扩展框架技术的卫星遥感监测产品集成框架,对于特定领域范围内的监测分析算法、模型、业务应用等动态、灵活地按需集成到应用框架上。通过建立该应用框架,实现业务连贯性处理的同时缩短影像处理周期,并提高代码的复用率和系统的灵活性及可扩展性。由于该应用框架按需动态扩展的特性,可将其向其他各相关领域进行推广。
管理扩展框架;可扩展;集成框架;气象遥感;领域模型;基于组件
框架是一组相互协作的组件的结合,它通过抽象体之间的协同工作,以完成整个系统的实现任务,并且为这些抽象体及其行为方式提供了强大的重用性和扩展性[1]。常见的集成框架大体上可以分为应用服务层和持久层2大类。应用服务层框架主要有Struts,WebWork,EasyJWeb,Spring,JFoxSOAF等;而持久层框架则以Hibernate,iBATIS为代表[2]。在解决应用的扩展性问题上,传统集成框架采用了EJB, CORBA,Eclipse的OSGI实现以及Java端的Spring等,在微软的平台上,.NET Framework自身包括组件模型和System.Addin,此外还有不少开源解决方案,包括SharpDevelop的SODA体系结构和控制反转容器(如Castle Windsor,Structure Map,Spring.Net以及Unity)。但这些传统的方案有些过于庞杂(如OSGI),有些则需要开发人员完成很多额外的工作(比如Spring)。传统的应用框架在集成、封装、表示、重用、标准化等方面均面临许多问题:(1)对容器的集成大多只在高层进行操作,缺乏对其内部模块的控制,重用性不足;(2)框架缺乏面向应用的规范性标准,配置文件、管理方式与框架本身应用机制不统一; (3)对其他集成应用有过强的依赖性,框架的内部核心耦合度高,部署不够独立等[2-3]。
传统的遥感监测分析系统对通用的遥感数据处理算法、分析方法等做出了大量的研究与集成,但对于特定领域的监测分析需求来说,传统的遥感监测分析系统具有的数据处理功能、监测分析模型等过于庞大,又不能满足于特定领域业务监测分析处理连贯性的需求[4]。
本文基于管理扩展框架(Managed Extensibility Framework,MEF)技术提出针对卫星遥感监测产品的集成框架。MEF可在无需进行配置的条件下实现对算法层、工具层、应用层的全面扩展,并提供轻松的代码封装功能,从而实现不仅在应用程序内的重用扩展,还可以在应用程序之间进行重用扩展[5-7]。
2.1 概念
管理扩展框架(MEF)技术,是微软.NET平台下为提高应用和组件复用程度而推出的。MEF是一系列特性的集合,包括依赖注入(DI)以及鸭子类型(Duck Typing)等。MEF为开发人员提供了对应用程序进行扩展并且对已有代码产生最小影响的工具,开发人员在开发过程中根据功能要求定义一些扩展点,之后扩展人员即可使用该定义的扩展点与应用程序进行交互;同时MEF让应用程序与扩展程序之间不产生直接的依赖,这样也允许在多个具有同样的扩展需求之间共享应用程序,也就是说MEF不仅满足应用程序内的扩展,还满足应用程序之间的扩展需求。因此,使用MEF能够使静态编译的.NET应用程序转换成为动态组合,实现创建可扩展性应用、可扩展框架和应用扩展[8-10]。
2.2 工作原理
MEF工作原理如图1所示。
图1 MEF工作原理
MEF提供一种通过组合隐式发现组件的方法。MEF组件(称为部件,即Part)以声明方式同时指定其依赖项(称为导入,即Import)及其提供的功能(称为导出)。创建一个部件时,MEF组合引擎会使其导入与其他部件提供的内容相符合。
MEF的核心包括一个目录和一个组合容器。目录用于发现扩展,而组合容器用于协调创建和梳理依赖性。MEF组合模型的核心是组合容器,该容器包含所有可用的部件并执行组合操作,即将导入和导出配对。
核心概念如下:
(1)可组合的部件:是MEF的关键构建块。可组合的部件支持应用程序通过导出和公开与使用组件扩展。一个部件向其他部件提供服务,或使用其他部件提供的服务。该部件可来自应用程序内部或外部。
(2)导入:导入是部件使用的服务。某个部件使用一个导入时,称为该部件导入该服务。
(3)导出:导出是部件提供的服务。某个部件使用一个导出时,称为该部件导出该服务。
(4)组合:将几个带有不同功能的对象组合为一个或多个复杂对象的过程。组合不是从父类中继承的,而是将几个不同的对象组合为一个对象。例如,机翼、螺旋桨、机身和垂直稳定器对象可以组成飞机对象的一部分。
(5)契约:契约是导出和导入组件之间的通信途径。导出程序指定其提供的字符串约定,导入程序指定其需要的约定。
因此,采用MEF概念,能够真正地实现“用户主控、随需而变、全局规划、整体集成”的信息化战略。
3.1 系统架构
基于MEF的卫星遥感监测产品集成框架如图2所示。虚线框中的流程由下至上为遥感图像处理的主要流程。各库之间的关系如下:数据接入(统一数据存取框架)→数据显示(绘图引擎)→栅格数据处理(投影与辐射定标库(轨道数据)→裁切/分幅/拼接库)→监测分析(监测分析模型集成框架)→专题图制作(专题制图框架);基于MEF的卫星遥感监测产品集成框架的设计满足遥感影像处理流程中各个部分的扩展。
由图2可知,基于MEF的卫星遥感监测产品集成框架从数据、算法到模型、专题产品最终到行业专题都可以进行扩展,根据业务的需求,在软件设计的各个层级预留可扩展点,将可扩展点抽象为标准接口库,作为可扩展契约(包括导出契约和导入契约),再通过标准接口库实现组件、算法、工具的扩展。MEF可扩展编程框架如图3所示。
图2 基于MEF的卫星遥感监测产品集成框架的系统架构
图3 MEF扩展框架示意图
3.2 数据格式扩展
气象数据来自于不同星种(FY-2CD/E/F,FY-3A/B/C,NOAA,EOS-Terra/Aqua等)、不同传感器(NOM,VIRR/MERSI,AVHRR,MODIS等)、不同投影(等经纬度、麦卡托、兰伯特等)、不同格式(1B, 1A5,HDF4,HDF5,LDF,LD2,TIF,IMG等)的文件,为满足几乎所有数据种类的接入,设计单一的文件打开机制,实现多源异制文件统一打开机制。在实现了文件的打开后需要读取、显示、处理这些数据,然而数据的类型有byte,int16,int32,uint16,uint32, float,double等。系统采用文件打开类工厂和文件读取类工厂实现多源数据的统一打开及读取。
3.2.1 类工厂的打开
采用类工厂模式实现多源异制文件的统一打开机制,抽象统一的文件打开接口与多源数据显示模块交互,实现多种文件类型的数据驱动。通过该类工厂,可以为某个特定文件类型的文件找到相应的数据驱动,从而实现文件的单一入口打开机制,易于实现文件类型的扩展。
系统在设计时将制定统一的数据读取接口(IUniversalDataReader),矢量数据读取接口、栅格数据读取接口以及其他数据读取接口继承了统一数据读取接口。多源数据显示组件只需要与统一数据读取接口进行交互就可以对数据进行显示等处理。在文件读取类工厂中注册了多种类型的数据驱动,在进行数据读取时只需调用数据驱动基类的打开方法,该基类会在所有注册的数据驱动中检索出对应的驱动并进行读取。此设计方案能够有效地使数据读取与多源数据显示处理松耦合,方便进行扩展与按需裁减。
多源数据统一读取单元类图如图4所示。
图4 多源数据统一读取单元类图
3.3 算法扩展
通过前期调研发现,大部分产品处理与分析的算法都是通用的,都可以运用于不同的业务场景和不同的监测产品中。本文系统在设计中为了减小冗余度和方便代码的新增、替换和移除,专门提出原子模型,主要思想是将这些算法按照普适的最小单位组织,规范其输入输出接口和调用接口,上层可将其组装为更大粒度的算法单元。由通用的算法组成算法库,通过对算法库的扩展可实现对基础工具和产品处理与分析算法的新增、替换和移除。原子模型与算法库结构组成如图5所示。
本文以扩展图像增强算法为例,其扩展类图如图6所示。
图5 原子模型与算法库结构组成
图6 扩展图像增强算法类图
具体扩展步骤如下:
东营凹陷西部沙四上亚段滩坝砂体厚度特征及其与产液量关系……………………………………………………刘丰臻(1.1)
(1)使用VS2008新建一个DLL工程(例如:对数增强);
(2)引入标准接口库ImageProcess.dll;
(3)实现IRgbProcessor接口;
(4)实现函数:
(5)编译该DLL,拷贝到指定目录。
3.4 模型扩展的监测分析
监测分析模型的扩展是要根据监测分析产品业务需求以及遥感图像处理流程进行按需扩展。在进行监测分析业务处理时,往往要对多个遥感数据进行预处理、图像处理、信息提取、产品判识等操作。例如对于基于轨道数据的沙尘判识要执行的步骤有: (1)打开轨道数据;(2)选择用于沙尘判识的通道进行并执行投影;(3)对投影输出的文件按照感兴趣区域(ROI)进行裁切;(4)进行沙尘判识;(5)二值图输出; (6)专题图输出。其监测分析流程如图7所示。
图7 沙尘监测分析流程
在图7的沙尘监测分析流程中有许多步骤对于其他监测专题是可复用的,因此,在本文系统的设计中首先将可复用的步骤提取出来进行建模,组装为监测分析业务处理功能,能够大大提高监测产品自动处理和批处理的能力。
本文系统中将某个业务处理流程定义为任务(Task),将业务处理中的步骤定义为动作(Action),每个任务由顺序执行的若干动作构成,每个动作由参数环境和处理器(Processor)构成,通过操作之间的参数绑定实现整个任务的处理流程(例如:打开轨道数据的输出为IRasterDataReader,将和投影动作的输入进行绑定)。将监测分析处理模型表达为XML格式,模型处理引擎解析XML脚本进行模型执行和调度。系统在解决数据类型与参数绑定时引用了语义类型,在绑定过程中虽然数据类型相同,但因为语义类型不同也不会进行绑定。参数类型的定义如图8所示。
图8 动作参数类型的监测分析
下面是以沙尘监测分析为例的具体监测分析模型扩展介绍。
(1)定义主要功能有:
中国及周边区域多光谱遥感沙尘判识、沙尘影响强调、沙尘统计图像、沙尘监测显示输出等功能,其中每个功能具有如下子功能:
1)中国及周边区域沙尘多光谱遥感监测:利用风云三号卫星红外扫描辐射计(VIRR)及中分辨率光谱成像仪(MERSI)的HRPT资料与DPT资料实现中国及周边区域沙尘多光谱遥感监测。
2)沙尘区域多光谱遥感判识:选择利用VIRR或MERSI的0.43 μm~12.5 μm光谱数据检测大气沙尘的空间分布状况。
3)沙尘影响强度估算:包括沙尘覆盖面积估算、地面能见度分析、沙尘光学厚度的垂直分布等。
4)沙尘统计图像生产功能:按给定的时间周期(如月)和给定的区域统计合成沙尘的最大累计覆盖面积和法师品尝叠加图像。
5)沙尘监测显示输出功能:确定沙尘发生地点,确定监测对象大致影响范围以及位置。
(2)类设计说明部分,图9为类设计说明图,表1为类设计说明图中所涉及到的监测分析方法。
图9 沙尘监测分析产品类图
表1 监测分析方法
在监测分析方法设计完成后需要对所有涉及到的方法进行时序定义,从而满足监测分析模型流程化作业的需求,具体时序图如图10所示。
沙尘监测分析界面类调用数据读取对象进行轨道数据的读取并对其进行显示。界面类对象可发送消息至图像处理等功能类对象,对当前影像进行相关处理。沙尘监测分析类实例对当前待判识影像进行沙尘判识、能见度计算等,生成对应的沙尘专题图产品。调用统计分析公共类进行各种统计产品的生产,界面类实例将返回的统计结果显示至界面窗体并根据用户的操作进行结果的保存与丢弃。
图10 沙尘监测分析算法典型时序图
3.5 专题产品扩展
气象行业中不同部门的业务处理及研究课题对监测专题具有不同的需求。在系统研制前期调研中发现,气象行业中对火情、水情、暴雨、沙尘等各个产品监测分析的设计与实现过程中有大量可重复使用的部分。因此,为了提高系统的二次开发能力,系统在专题产品扩展中采用特定领域语言(Domain Specific Language, DSL),是一种特别用来描述某一专业领域内涵的描述语言。使用DSL可以更关注于问题领域,更加贴近用户的需求,全面包含问题领域的业务知识,定义了气象卫星遥感领域的特定语言。在该语言中构建了监测分析流程语句、监测分析函数库、专题产品对象(将特定产品抽象为对象,可对产品处理流程进行定义),以及专题对象(专题对象可定制化,即个性化生成二值图、多通道合成图等产品)。将气象专题产品中的每个模型表达为XML脚本或编译好的程序集,在实现过程中,分析产品实现为 IProductRuntime接口,专题产品实现IMonitorProduct,IProductRuntime提供IRasterReader和IArgumentEnvironment,专题产品通过IRasterReader和IArgumentEnvironment实现基于待处理影像的信息提取和监测分析。扩展专题产品只需要新建.NET类库,新建一个专题产品类,实现专题产品接口,编译类库即可,具体步骤如下:
(1)在设计时将专题产品作为一个可扩展点(导入契约)。
(2)在标准接口库中定义专题产品的扩展契约(导出契约)。
(3)使用标准接口库支持的编程语言实现监测产品。
(4)将编译好的专题产品拷贝到指定目录,实现专题产品的扩展。
扩展专题产品框架如图11所示。
图11 扩展专题产品框架
为了测试所设计和开发的基于MEF的卫星遥感监测产品集成框架,本文系统针对风云三号等气象卫星数据进行天气与气候、环境与灾害、生态与农业等领域关注对象的监测、分析等扩展,其中包括多源数据综合显示、遥感数据处理、遥感信息提取与分类、产品监测分析与生成、专题产品制作与统计分析等功能模块。目前系统已经在中国气象局国家卫星气象中心业务运行和应用,并向全国省级气象局推广。具体应用效果及结果如图12~图18和表2所示。
图12 系统界面
图13 算法扩展
图14 专题产品扩展
图15 沙尘监测结果
图16 沙尘能见度结果
图17 专题制图模板库结果
图18 沙尘按省级行政区划面积统计结果
表2 沙尘按土地利用类型的面积统计
目前,中国气象局国家卫星气象中心根据其业务需求已经将监测分析专题产品扩展到沙尘、植被、海冰、大雾、干旱等13个专题产品,在数据层面满足NOAA系列、EOS系列、风云系列等大多数卫星数据类型,在基础算法层面已经扩展了辐射校正、几何校正、投影等多类算法,在遥感监测分析模型层面已经扩展了云监测、NDVI模型、回归分析模型等多类业务相关分析模型,目前系统运行良好。
基于MEF的卫星遥感监测产品集成框架能够满足用户主导和主控、灵活调整和随需而变、业务深度集成、复杂工作流程、业务协同等多种需求,可实现在很短时间内构建起大型的、面向特定领域的、复杂综合的集成框架,从而进一步实现卫星遥感监测产品业务的连贯性作业。目前该套应用框架已在新疆、内蒙古、广西、云南等省进行定制化的改造和推广,其中在内蒙古已进入地市级业务应用。该集成框架在气象领域取得了良好的应用效果,在今后的研究中将继续向原子算法库、领域模型、业务应用等,使该集成框架实现向交通、城建、农业等其他领域扩展。
[1] 徐 俊,肖 刚,张元鸣.面向软件大规模定制的构件化领域框架研究[J].计算机应用研究,2006,23(11): 62-65.
[2] 李建勋,张永进,解建仓,等.基于OSGi的AAF应用框架研究[J].武汉理工大学学报,2008,30(6): 135-139.
[3] 张 萌.基于OSGi的领域内框架扩展方法研究及应用[D].哈尔滨:哈尔滨工程大学,2011.
[4] Dollard K.Getting Current on MEF[EB/OL].(2009-04-27).http://www.easy-share.com/1904763375/Visual StudioMagazineApril2009.pdf.
[5] Shriram A.An Attribute-free Approach to Configuring MEF[EB/OL].(2012-06-12).http://msdn.microsoft.com/en-us/magazine/jj133818.aspx.
[6] 刘 冰,罗来俊,吉宝玉.基于J2EE和MVC的扩展框架研究[J].福建电脑,2013,29(1):16-18.
[7] Block G.在.NET4中使用托管可扩展性框架构建可组合的应用程序[EB/OL].(2013-10-10).http:// msdn.microsoft.com/zh-cn/magazine/ee291628.aspx.
[8] Russell J,Cohn R.Managed Extensibility Framework[M].[S.l.]:Microsoft Corporation,2012.
[9] Shriram A.MEF in the.Net Framework(from4.0)[EB/OL](2012-10-18).http://mef.codeplex.com/ documentation.
[10] Anon.什么是MEF?[EB/OL].(2013-10-10).http:// msdn.microsoft.com/en-us/library/dd460648.aspx.
编辑 顾逸斐
Implementation of Satellite Remote Sensing Monitoring Product Integrated Framework Based on MEF
HAN Xiuzhen1,FENG Decai2,ZHANG Lujin2,LIU Zichang2
(1.National Satellite Meteorological Center,China Meteorological Administration,Beijing 100081,China;
2.Institute of Electronics,Chinese Academy of Sciences,Beijing 100190,China)
As it is common to integrate more technical image processing algorithms within remote sensing monitoring analysis system,but these systems with the problem of lack of modeling particular domain service.Moreover,these systems short on reusability and extendibility of algorithms and models.Based on the above reasons,the remote sensing monitoring analysis system is faced to multi difficulties when it is promoted.In order to address these problems,this paper proposes an integrated framework of satellite remote sensing monitoring analysis based-on Managed Extensibility Framework(MEF)that dynamically and flexibly integrates algorithms,models,and applications on the framework according to the requirements.This framework can realize coherence of processing images and extremely shortened period of processes,and improves flexibility and scalability.Moreover,this framework can be extended to other related domains because of scalability.
Managed Extensibility Framework(MEF);scalable;integrated framework;meteorological remote sensing; domain model;component-based
1000-3428(2014)11-0006-08
A
TP75
10.3969/j.issn.1000-3428.2014.11.002
中国气象局气象关键技术集成与应用基金资助重点项目(CMAGJ2013Z20);中国气象局气象关键技术集成与应用基金资助面上项目(CMAGJ2013ZX-CX4)。
韩秀珍(1974-),女,博士,主研方向:卫星遥感技术;冯德财,高级工程师、硕士;张路金、刘子畅,助理研究员、硕士。
2013-10-28
2013-11-22E-mail:hanxz@cma.gov.cn
中文引用格式:韩秀珍,冯德财,张路金,等.基于MEF的卫星遥感监测产品集成框架实现[J].计算机工程,2014, 40(11):6-13.
英文引用格式:Han Xiuzhen,Feng Decai,Zhang Lujin,et al.Implementation of Satellite Remote Sensing Monitoring Product Integrated Framework Based on MEF[J].Computer Engineering,2014,40(11):6-13.