基于组件服务的众创性气候算法管理系统及方法与流程

文档序号:15694638发布日期:2018-10-19 18:50阅读:232来源:国知局

本发明涉及算法管理技术领域,尤其涉及一种基于组件服务的众创性气候算法管理系统及方法。



背景技术:

在气候监测预测业务中,存在大量的专业的天气学算法、动力算法和统计算法,算法实现一般使用ncl、fortran、grads、python等,算法本身比较零散,目前其他业务平台还没有很好的技术手段将这些算法统一到一个平台下,并且实现气候算法能够很好的复用和继承。



技术实现要素:

本发明的目的是针对上述现有技术的不足,提供一种基于组件服务的众创性气候算法管理系统及方法,本发明用一种编程语言(如java)对多种算法语言(ncl、fortran、grads、python等)进行服务封装,解决算法重复建设,资源浪费的问题。

为实现上述技术目的,本发明采取的技术方案为:基于组件服务的众创性气候算法管理系统,包括算法配置数据库、算法编译模块、算法校验模块、算法注册模块、算法加载模块以及算法执行模块;

所述算法配置数据库含有气候算法的算法实体、算法配置信息以及输入输出规范;所述算法配置信息包括气候算法的元数据信息以及气候算法的输入输出参数;

所述算法编译模块用于对气候算法的算法实体进行编译;

所述算法校验模块用于校验气候算法的输入输出参数是否符合输入输出规范;

所述算法注册模块用于对所述气候算法的算法实体进行注册、封装,在javaspring框架下编写java调用代码实现对气候算法的算法实体的调用,然后利用spring自定义标签技术及spring依赖注入技术将算法配置信息及气候算法的算法实体注册到系统中;

所述算法加载模块用于根据业务流程组装需要的组件,并基于多线程和xml配置实现对所述组件的加载控制;

所述算法执行模块用于气候算法的算法实体的调用执行;所述算法执行模块采用javarmi远程调用技术发布框架,将所述组件以服务的方式对外发布,供人机交互web服务层调用执行。

进一步的,所述气候算法的算法实体的编写语言为ncl语言、java语言、fortran语言、python语言或grads语言。

进一步的,所述气候算法的算法实体的编写语言为脚本语言,当编写语言为脚本语言时,不需要对气候算法的算法实体再进行编译。

进一步的,所述算法加载模块可根据执行方式的不同将执行线程池分为实时交互线程池和自动作业线程池,并根据具体的人机交互和自动作业的需求对所述实时交互线程池和自动作业线程池的线程个数的比例关系进行调整。

进一步的,所述基于组件服务的众创性气候算法管理系统还包括算法替换、修改与共享模块,用于在气候算法注册、封装后对气候算法的算法实体进行算法替换、算法修改以及算法共享。

本发明还提供一种基于组件服务的众创性气候算法管理方法,包括以下步骤:

步骤1,建立算法配置数据库:在系统中建立算法配置数据库,将气候算法的算法实体、算法配置信息以及输入输出规范输入算法配置数据库;所述算法配置信息包括气候算法的元数据信息以及气候算法的输入输出参数;系统可通过气候算法的元数据信息找到气候算法的算法实体;

步骤2,算法编译:在编译器中对气候算法的算法实体进行编译;

步骤3,算法校验:系统对所述气候算法的输入输出参数是否符合输入输出规范进行校验,如果符合输入输出规范,则进行步骤4;如果不符合输入输出规范,则需要修改后重新进行步骤2;

步骤4,算法注册:在javaspring框架下编写java调用代码实现对气候算法的算法实体的调用,然后利用spring自定义标签技术及spring依赖注入技术将算法配置信息及气候算法的算法实体注册到系统中;

步骤5,算法加载:根据业务流程在系统中组装需要的组件;基于多线程和xml配置,系统可对所述组件进行加载控制;

步骤6,算法执行:采用javarmi远程调用技术发布框架,将所述组件以服务的方式对外发布,供人机交互web服务层调用执行;

进一步的,所述气候算法的算法实体的编写语言为ncl语言、java语言、fortran语言、python语言或grads语言。

进一步的,所述气候算法的算法实体的编写语言为脚本语言,并跳过步骤2,直接进行步骤3。

进一步的,所述步骤5,算法加载中,根据执行方式的不同将执行线程池分为实时交互线程池和自动作业线程池,并根据具体的人机交互和自动作业的需求对所述实时交互线程池和自动作业线程池的线程个数的比例关系进行调整。

进一步的,所述基于组件服务的众创性气候算法管理方法还包括以下步骤:

算法替换、修改与共享:所述气候算法注册到系统中后,还可以对气候算法的算法实体进行算法替换、算法修改以及算法共享。

本发明解决用一种编程语言(如java)对多种算法语言(ncl、fortran、grads、python等)的服务封装,解决算法重复建设,资源浪费的问题,利用这一技术实现气候算法的复用,算法继承、算法不断完善的业务需要以及基于此平台实现科研成果向业务的转化。

附图说明

图1是本发明基于组件服务的众创性气候算法库的管理系统及方法原理图

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

实施例1

如图1所示,本发明实施例1是一种基于组件服务的众创性气候算法管理系统,包括算法配置数据库、算法编译模块、算法校验模块、算法注册模块、算法加载模块、算法执行模块以及算法替换、修改与共享模块;

所述算法配置数据库含有使用ncl语言、java语言、fortran语言、python语言、grads语言或脚本语言等计算机语言编写的气候算法的算法实体、包括气候算法的元数据信息以及气候算法的输入输出参数的算法配置信息以及自定义的输入输出规范;

通过算法编译模块对气候算法的算法实体进行编译,当编写语言为脚本语言时,不需要对气候算法的算法实体再进行编译;

通过算法校验模块校验气候算法的输入输出参数是否符合输入输出规范;符合时,则进行算法注册,否则需对气候算法的输入输出参数进行修改后再重新进行编译、校验。

通过算法注册模块用于对所述气候算法的算法实体进行注册和封装,通过编写在javaspring框架下的java调用代码实现对气候算法的算法实体的调用,并通过spring自定义标签技术将算法配置信息配置到所述java调用代码中,然后利用javaspring依赖注入技术将java调用代码调用的气候算法的算法实体进行注册和封装;

通过算法加载模块根据业务流程组装需要的组件,并基于多线程和xml配置实现对所述组件的加载控制;算法加载模块还可根据执行方式的不同将执行线程池分为实时交互线程池和自动作业线程池,并根据具体的人机交互和自动作业的需求对所述实时交互线程池和自动作业线程池的线程个数的比例关系进行调整。

通过算法执行模块用于气候算法的调用执行;所述算法执行模块采用javarmi远程调用技术发布框架,将所述组件以服务的方式对外发布,供人机交互web服务层调用执行。

通过算法替换、修改与共享模块可在气候算法注册、封装后对气候算法的算法实体进行算法替换、算法修改以及算法共享。

实施例2

本实施例2采用javaspring技术对各种气候算法(ncl、fortran、grads、python、脚本语言)进行封装,实现将气候算法组件化,并最终发布服务,并针对现有的算法支持上传、下载、修改替换和还原等功能,其具体包括:

一种基于组件服务的众创性气候算法管理方法,用于管理气候算法,气候算法可以是用ncl、java、fortran、python、grads或脚本语言等类型的计算机语言实现,主要经过以下步骤:

步骤1,建立算法配置数据库:在系统中建立算法配置数据库,将气候算法的算法实体、算法配置信息以及输入输出规范输入算法配置数据库;所述算法配置信息包括气候算法的元数据信息以及气候算法的输入输出参数;系统可通过气候算法的元数据信息找到气候算法的算法实体;

步骤2,算法编译:在编译器中对气候算法的算法实体进行编译;若气候算法的编写语言时脚本语言则不需要编译,可以跳过此步骤;

步骤3,算法校验:系统对所述气候算法的输入输出参数是否符合输入输出规范进行校验,如果符合输入输出规范,则进行步骤4;如果不符合输入输出规范,则需要修改后重新进行步骤2;

步骤4,算法注册:在javaspring框架下编写java调用代码实现对气候算法的算法实体的调用,并通过spring自定义标签技术将算法配置信息配置到所述java调用代码中,然后利用javaspring依赖注入技术将java调用代码调用的气候算法的算法实体注册、封装到系统中;

步骤5,算法加载:根据业务流程在系统中组装需要的组件;基于多线程和xml配置,系统可对所述组件进行加载控制;根据执行方式的不同将执行线程池分为实时交互线程池和自动作业线程池,并根据具体的人机交互和自动作业的需求对所述实时交互线程池和自动作业线程池的线程个数的比例关系进行调整。

步骤6,算法执行:采用javarmi远程调用技术发布框架,将所述组件以服务的方式对外发布,供人机交互web服务层调用执行;执行过程中,对输入输出参数进行赋值,计算完成后输出结果,结束一个完整算法的使用流程。

优选的,在将所述气候算法的算法实体注册到系统中后,还可以进一步对气候算法的算法实体进行算法替换、算法修改以及算法共享。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1