一种基于OSGi的MODIS数据分布式处理方法

文档序号:10569748阅读:271来源:国知局
一种基于OSGi的MODIS数据分布式处理方法
【专利摘要】本发明公开了一种基于OSGi的MODIS数据分布式处理方法,将IDL语言进行编程实现的MODIS数据生产算法进行并行化与组件化改造,使之能够在分布式的OSGi环境中进行动态的部署与安装,并将MODIS数据生产封装成OSGi中的标准服务,通过服务调用实现MODIS数据的分布式生产。本发明整合了局域网内的计算资源,提高了MODIS数据处理的效率;改变了原有软件手工操作的生产模式,减少数据生产过程中的人工交互及出错概率,为MODIS数据生产带来了统一规范的管理方式。
【专利说明】
一种基于OSG i的MOD IS数据分布式处理方法
技术领域
[0001]本发明属于遥感图像处理技术领域,主要涉及一种基于OSGi的MODIS数据分布式处理方法。
【背景技术】
[0002]近年来,人口的增长和经济的发展给我国水环境造成了很大的压力,干旱频频发生,且具有发生频率高、持续时间长、影响范围大等特点,成为我国农业生产所面临的最大问题。传统的旱情监测方法是利用全国气象站点的实测数据进行加权、内插以得到全国范围内的旱情分布情况,这种方法无法保证所获结果的精确性和完整性。而随着遥感技术的发展和遥感手段的增加,其大范围,连续,无间断的特点使大面积实时动态监测土壤水分已成为干旱监测的一种趋势。MODIS数据凭借其空间分辨率高,观测通道多,且重访周期短、容易获取等特点称为遥感旱情监测中最主要的数据源。传统的MODIS数据生产服务是利用ENVI (The Environment for Visualizing Images,美国),ERDAS IMAGINE(美国)等遥感图像处理软件中的处理模块对影像进行流程化处理。这种数据生产模式人力耗费大、生产效率低、人工交互繁多,不利于在大面积实时遥感监测中的应用。而ENVI+IDL软件中提供的数据生产流程化定制功能大大降低了数据生产过程中的人力耗费及人工交互程度,但是在大数据生产时,时间开销和人力开销仍然限制了数据生产的时效性。将Web Service、网格、多核技术等分布式计算技术引入MODIS数据的产品生产中,可以大大减少数据生产时间,提高数据的时效性。但MODIS数据生产仍缺乏统一规范的管理方式。
[0003]OSGi(Open Service Gateway Initiative,开放服务网关协议)是由OSGi联盟提出的一种Java模块化规范,它提供了 Java模块化的一般标准和解决方案。基于中间件的OSGi技术提供了一个面向服务,基于组件的开发环境,并提供标准化的方式来管理整个软件生命周期。为需要长时间运行、动态更新并且对运行环境的影响尽可能小的系统提供了很好的支持。基于OSGi开发的系统具有复杂度低、动态部署、高可复用性、高效性、可持续运行、开发简单等特点,在桌面,服务器端等领域得到了大量应用,得到了越来越多的企业、科研机构和开发人员的关注和认同。

【发明内容】

[0004]为了解决上述技术问题,本发明结合OSGi框架规范化、模块化,支持服务的动态部署与安装以及服务生命周期管理等的特点提出了一种基于OSGi的MODIS数据分布式处理方法。
[0005]本发明所采用的技术方案是:一种基于OSGi的MODIS数据分布式处理方法,是一种OSGi分布式环境下的MODIS数据自动化批处理方法,其特征在于,包括以下步骤:
[0006]步骤I:构建OSGi分布式集群环境;
[0007]步骤2:M0DIS数据生产算法的并行化实现;
[0008]步骤3:M0DIS数据生产算法组件化;
[0009]步骤4:M0DIS数据生产组件的自动化分发;
[0010]步骤5:M0DIS数据生产服务的调用;
[0011]作为优选,步骤I中,利用R-OSGi中间件技术对传统的集中的OSGi环境进行分布式扩展,构建基于OSGi的分布式集群环境;在分布式节点上,部署了R-OSGi框架所必须的Bundle,定义了监听器、Bundle管理器、服务管理器三个Bundle与R-OSGi进行交互;监听器主要用于监听服务器与分布式节点之间的通信,接收服务器上传的Bundle,并将其存入指定路径;Bundle管理器主要负责管理Bundle的生命周期,响应服务器对远程Bundle的相关操作,并将Bundle状态返回服务器;服务管理器为远程服务调用生成代理,以保证远程调用的顺利进行,并将远程服务调用的响应时间、执行时间、以及内存占用情况发回服务器,以便于服务器对远程服务的监控与管理。
[0012]作为优选,步骤2中,采用多指令、多数据流的模式的MODIS数据处理算法进行并行化改造;多指令即在分布式集群环境中的每个节点上均分发MODIS数据处理服务,当需要进行数据处理时,根据当时分布式节点的空闲情况进行分配;而多数据流则指将待处理MODIS数据进行数据分解,并将其作为服务调用的输入数据。
[0013]作为优选,所述将待处理MODIS数据进行数据分解是依据所生产的MODIS影像数量分别进行:
[0014]当MODIS影像为单幅时,首先将输入影像规则的分割为η块,保证每相邻块之间有重叠区域;然后将每块影像分发到不同的节点同时进行相同的处理;最后将处理后的影像块再拼接为整幅影像输出;
[0015]当处理某地区或某流域的MODIS数据时,首先将处理区域的每幅影像分发到不同的节点同时进行相同的处理;然后将处理后的影像进行拼接、裁剪,获取生产地区或流域的MODIS产品;
[0016]作为优选,影像拼接和裁剪操作采用公式:
[0017]Dmodis = P 1modis+P2modis+-.-+Pimodis+----cImodis
[0018]其中Dmcidis为生产地区的MODIS产品,PiMCiDis为第i幅影像的MODIS产品,cImodis为生产地区边界以外的MODIS产品,式中的“+”表示不同幅影像之间的拼接操作,表示按照边界进行的裁剪操作。
[0019]作为优选,步骤3中,将IDL编程实现的MODIS数据生产自动化批处理算法转化为符合OSGi规范的Bundle组件,并将数据生产流程封装成Bundle组件中的服务;其具体实现包括以下子步骤:
[0020]步骤3.1:Bundle类文件的生成;
[0021]步骤3.2:Bundle元数据文件生成;
[0022]步骤3.3:Bundle的打包。
[0023]作为优选,步骤3.1中,Bundle类主要包含了服务实现类和服务注册类;
[0024]所述服务实现类是指包含服务具体实现方法的Java类,服务实现方法主要是利用Java的cmd命令行调用遥感图像处理软件的处理进程对MODIS数据生产算法文件进行编译和运行,进而完成MODIS数据的生产;
[0025]所述服务注册类则指Bundle组件的Bundle-Activator类,在该类的s tart方法中利用BundleContext的registerService方法完成MODIS数据生产服务的注册,registerService方法共包括服务实现接口类,服务实现类以及Bundle属性三个输入参数。
[0026]作为优选,步骤3.2中,根据Bundle-Activator类文件以及Bundle执行的java环境,生成包含元数据信息的MANIFEST.MF文件;所述元数据信息包括Bund I e-Vers1n、Bundle_Activator、Bundle-Required Execut1n Environment、Import—Package。
[0027]作为优选,步骤3.3中,是使用Apache的Ant打包工具将上述生成文件统一编译打包成符合规范的代理Bundle。
[0028]作为优选,步骤4中,在MODIS数据生产算法组件化之后,自动分发到OSGi分布式集群环境的节点上,并通过中央管理器对MODIS数据生产组件在集群上自动地执行安装、启动操作,完成MODIS数据生产服务的注册。
[0029]作为优选,步骤5中,利用Java反射机制获取MODIS数据生产组件中已注册服务的输入参数和类型,输入参数主要包括输入影像以及输出影像存储位置。
[0030]本发明具有如下特点和有益效果:
[0031]1、本发明中的基于OSGi的MODIS数据分布式处理方法通过整合局域网内的多个节点,充分利用局域网内的计算资源,通过将MODIS数据生产算法进行组件化,以及对影像数据的裁剪大幅提升其运算速度,减少内存占用,在遥感应急监测方面具有显著意义,对于提升数据处理部门的工作效率有重要作用,为农业、气象部门的决策和生产提供有效的技术支持;
[0032]2、本发明利用OSGi模块化、规范化、支持服务的动态部署与安装以及热插拔等特点为MODIS数据生产带来了统一有序的管理方式,改变了原有的利用ENVI软件进行手工操作的生产模式,减少了数据生产过程中的人力物力开支。
【附图说明】
[0033]图1为本发明实施例的流程图;
[0034]图2为本发明实施例的OSGi框架的分布式扩展架构图;
[0035]图3为本发明实施例的基于OSGi的MODIS数据生产服务平台体系结构图;
[0036]图4为利用本发明进行植被供水指数产品生产流程图;
[0037]图5为本发明实施例的MODIS数据生产算法的组件化流程图;
[0038]图6为本发明实施例的MODIS数据生产组件的分发备份图;
[0039]图7为本发明实施例的遥感影像分割及覆盖示意图;
[0040]图8为本发明实施例的MODIS数据生产算法并行化机制示意图。
【具体实施方式】
[0041]为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0042]请见图1,本发明结合OSGi框架规范化、模块化,支持服务的动态部署与安装以及服务生命周期管理等的特点提出了基于OSGi的MODIS数据分布式处理方法,包括OSGi分布式环境下的MODIS数据自动化批处理、基于数据分解的MODIS数据生产并行化和MODIS数据生产算法的组件化三个组成部分。
[0043]l、0SGi分布式环境下的MODIS数据自动化批处理包括以下步骤:
[0044]S1:构建OSGi分布式集群环境;
[0045]本发明利用R-OSGi中间件技术对传统的集中的OSGi环境进行分布式扩展,构建基于OSGi的分布式集群环境。在分布式节点上,除了部署R-OSGi框架所必须的Bundle以外,本发明定义了监听器、Bundle管理器、服务管理器三个Bundle与R-OSGi进行交互。
[0046]监听器主要用于监听服务器与分布式节点之间的通信,接收服务器上传的Bundle,并将其存入指定路径;Bundle管理器主要负责管理Bundle的生命周期,响应服务器对远程Bundle的相关操作,并将Bundle状态返回服务器;服务管理器为远程服务调用生成代理,以保证远程调用的顺利进行,并将远程服务调用的响应时间,执行时间,以及内存占用情况等信息发回服务器,以便于服务器对远程服务的监控与管理。
[0047]S2:M0DIS数据生产算法的并行化实现;
[0048]由于MODIS数据生产算法大多具有显著的流水线并行性与邻域性,即上一阶段的输出是下一阶段的输入,本发明采用多指令、多数据流的模式的MODIS数据处理算法进行并行化改造。多指令即在分布式集群环境中的每个节点上均分发MODIS数据处理服务,当需要进行数据处理时,根据当时分布式节点的空闲情况进行分配;而多数据流则指将待处理MODIS数据进行数据分解,并将其作为服务调用的输入数据。
[0049]S3:M0DIS数据生产算法组件化;
[0050]S31:将编程实现的MODIS数据自动化批处理算法以.pro文件的形式上传,对其进行服务解析以获取服务的名称、类型以及输入参数的类型和数量;
[0051 ] S32:组件化代理根据解析出的结果生成Bundle文件,元数据文件,以及打包工具ant必须的XML文件;
[0052]S33:利用打包工具ant将生成的文件按照XML文件中的描述打包成系统所需要的Bund Ie 组件。
[0053]S4:M0DIS数据生产组件的自动化分发;
[0054]MODIS数据生产组件的自动化分发是在MODIS数据生产算法组件化之后,自动分发到OSGi分布式集群环境的节点上,并通过中央管理器对MODIS数据生产组件在集群上自动地执行安装、启动等操作,完成MODIS数据生产服务的注册。
[0055]S5:M0DIS数据生产服务的调用;
[0056]对MODIS数据生产服务的调用是利用Java反射机制获取MODIS数据生产组件中已注册服务的输入参数和类型,输入参数主要包括输入影像以及输出影像存储位置等。通过输入相应的参数对服务进行调用,完成数据生产。
[0057]2、基于数据分解的MODIS数据生产并行化,依据所生产的MODIS影像数量分别进行;
[0058]当MODIS影像为单幅时,首先将输入影像规则的分割为η块,保证每相邻块之间有重叠区域;然后将每块影像分发到不同的节点同时进行相同的处理;最后将处理后的影像块再拼接为整幅影像输出。
[0059]当处理某地区或某流域的MODIS数据时,首先将处理区域的每幅影像分发到不同的节点同时进行相同的处理;然后处理后的影像进行拼接、裁剪,获取生产地区或流域的MODIS产品。
[0060]对某地区或某流域MODIS数据进行生产并行化时,其影像拼接和裁剪操作采用公式:
[0061 ] Dmodis = P1modis+P2modis+-.'+Pimodis+----cImodis
[0062]其中Dmcidis为生产地区的MODIS产品,PiMQDis为第i幅影像的MODIS产品,cImodis为生产地区边界以外的MODIS产品,式中的“+”表示不同幅影像之间的拼接操作,表示按照边界进行的裁剪操作。
[0063]3、M0DIS数据生产的算法组件化;
[0064]MODIS数据生产的算法组件化将IDL编程实现的MODIS数据生产自动化批处理算法转化为符合OSGi规范的Bundle组件,并将数据生产流程封装成Bundle组件中的服务。其实现机制如下:
[0065]S31:Bundle类文件的生成;
[0066]Bundle类主要包含了服务实现类和服务注册类,这两个类文件的生成是整个组件化机制的核心部分。
[0067]服务实现类是指包含服务具体实现方法的Java类。服务实现方法主要是利用Java的cmd命令行调用遥感图像处理软件的处理进程对MODIS数据生产算法文件进行编译和运行,进而完成MODIS数据的生产。
[0068]服务注册类则指Bundle组件的Bundle-Activator类,在该类的start方法中利用BundleContext的registerService方法完成MODIS数据生产服务的注册,该方法共包括服务实现接口类,服务实现类以及Bundle属性三个输入参数。
[0069]S32: Bundle元数据文件生成;
[0070]根据Bund Ie-Activator类文件以及其它系统环境,生成包含Bundle-Vers1n、Bundle-Activator、Bundle-Required Execut1n Environment、Import-Package等元数据信息的MANIFEST.MF文件。
[0071]S33: Bundle 的打包;
[0072]Bundle的打包则主要是使用Apache的Ant打包工具将上述生成文件统一编译打包成符合规范的代理Bundle。
[0073]本发明的构思在于提高MODIS数据处理的效率,并为MODIS数据处理带来统一规范的管理方式。按照图2所示的分布式扩展架构,本发明建立了基于OSGi的MODIS数据生产服务平台,体系结构如图3所示,该平台集成了局域网内的四台生产节点,其中一台为中央管理器,同时也同其他计算机一样作为作业的提交者和执行者。
[0074]本实施例分别选取三幅分辨率为Ikm的MODIS辐射率影像产品和热辐射影像产品作为输入数据,成像时间分别为2014280.440,2014280.445,2014294.315,以其成像时间编号代表该幅影像。并以单幅影像的植被供水指数产品生产为例对发明的【具体实施方式】进行说明,生产流程如图4所示。主要步骤如下:
[0075](I)按照图5所示的组件化流程,将基于IDL的植被供水指数算法上传至平台中,通过解析其参数信息生成组件化流程中必须的三类文件,最后使用ant打包工具将文件打包成符合OSGi规范的植被供水指数产品生产Bundle组件;
[0076](2)将⑴中生成的Bundle组件分发到四个节点上备用,如图6所示,并通过中央管理器对分布式节点上的组件进行安装、启动等操作,完成植被供水指数产品生产的服务的注册;
[0077](3)将每一幅影像按照图7(a)的方式分幅裁剪成四份(如1_280.445,2_280.445,3_280.445,4_280.445),称其为分幅影像,其中相邻的两份分幅影像之间均有重叠区域,以便后期拼接;
[0078](4)将(3)中裁剪所得的分幅影像平均分配到四个节点上;
[0079](5)利用如图8所示的并行化机制,分别调用分布在四台节点上的植被供水指数产品生产服务对上一步骤中裁剪所得的分幅影像进行处理;
[0080](6)对处理结果进行拼接。
[0081]应当理解的是,本说明书未详细阐述的部分均属于现有技术。
[0082]应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
【主权项】
1.一种基于OSGi的MODIS数据分布式处理方法,是一种OSGi分布式环境下的MODIS数据自动化批处理方法,其特征在于,包括以下步骤: 步骤1:构建OSGi分布式集群环境; 步骤2:M0DIS数据生产算法的并行化实现; 步骤3: MODI S数据生产算法组件化; 步骤4:M0DIS数据生产组件的自动化分发; 步骤5:M0DIS数据生产服务的调用。2.根据权利要求1所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤I中,利用R-OSGi中间件技术对传统的集中的OSGi环境进行分布式扩展,构建基于OSGi的分布式集群环境;在分布式节点上,部署R-OSGi框架所必须的Bundle,定义监听器、Bundle管理器、服务管理器三个Bundle与R-OSGi进行交互;监听器主要用于监听服务器与分布式节点之间的通信,接收服务器上传的Bundle,并将其存入指定路径;Bundle管理器主要负责管理Bundle的生命周期,响应服务器对远程Bundle的相关操作,并将Bundle状态返回服务器;服务管理器为远程服务调用生成代理,以保证远程调用的顺利进行,并将远程服务调用的响应时间、执行时间、以及内存占用情况发回服务器,以便于服务器对远程服务的监控与管理。3.根据权利要求1所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤2中,采用多指令、多数据流的模式的MODIS数据处理算法进行并行化改造;多指令即在分布式集群环境中的每个节点上均分发MODIS数据处理服务,当需要进行数据处理时,根据当时分布式节点的空闲情况进行分配;而多数据流则指将待处理MODIS数据进行数据分解,并将其作为服务调用的输入数据。4.根据权利要求3所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:所述将待处理MODIS数据进行数据分解是依据所生产的MODIS影像数量分别进行: 当MODIS影像为单幅时,首先将输入影像规则的分割为η块,保证每相邻块之间有重叠区域;然后将每块影像分发到不同的节点同时进行相同的处理;最后将处理后的影像块再拼接为整幅影像输出; 当处理某地区或某流域的MODIS数据时,首先将处理区域的每幅影像分发到不同的节点同时进行相同的处理;然后将处理后的影像进行拼接、裁剪,获取生产地区或流域的MODIS产品。5.根据权利要求4所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:影像拼接和裁剪操作采用公式:Dmodis = P1modis+P2modis+...+PiMODis+----cImodis 其中Dmcidis为生产地区的MODIS产品,PiMCiDis为第i幅影像的MODIS产品,dMciDis为生产地区边界以外的MODIS产品,式中的“+”表示不同幅影像之间的拼接操作,表示按照边界进行的裁剪操作。6.根据权利要求1所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤3中,将IDL编程实现的MODIS数据生产自动化批处理算法转化为符合OSGi规范的Bundle组件,并将数据生产流程封装成Bundle组件中的服务;其具体实现包括以下子步骤: 步骤3.1: BundIe类文件的生成; 步骤3.2: Bundle元数据文件生成; 步骤3.3: Bundle的打包。7.根据权利要求6所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤3.1中,Bundle类主要包含了服务实现类和服务注册类; 所述服务实现类是指包含服务具体实现方法的Java类,服务实现方法主要是利用Java的cmd命令行调用遥感图像处理软件的处理进程对MODIS数据生产算法文件进行编译和运行,进而完成MODIS数据的生产; 所述服务注册类则指Bundle组件的Bundle-Activator类,在该类的start方法中利用BundleContext 的regi sterServi ce 方法完成 MODI S 数据生产服务的注册,regi sterServi ce方法共包括服务实现接口类,服务实现类以及Bundle属性三个输入参数。8.根据权利要求6所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤3.2中,根据Bundle-Activator类文件以及Bundle执行的Java环境,生成包含元数据信息的MANIFEST.MF文件;所述元数据信息包括Bund le-Ver si on、Bund le-Activa tor、Bund Ie-Required Execut1n Environment、Import—Package。9.根据权利要求6所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤3.3中,是使用Apache的Ant打包工具将上述生成文件统一编译打包成符合规范的代理Bundle。10.根据权利要求1所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤4中,在MODIS数据生产算法组件化之后,自动分发到OSGi分布式集群环境的节点上,并通过中央管理器对MODI S数据生产组件在集群上自动地执行安装、启动操作,完成MODI S数据生产服务的注册。11.根据权利要求1所述的基于OSGi的MODIS数据分布式处理方法,其特征在于:步骤5中,利用Java反射机制获取MODIS数据生产组件中已注册服务的输入参数和类型,输入参数主要包括输入影像以及输出影像存储位置。
【文档编号】G06F9/50GK105930173SQ201610329521
【公开日】2016年9月7日
【申请日】2016年5月18日
【发明人】孟令奎, 朱会玲, 张文, 余长慧
【申请人】武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1