一种用于电网多维业务复合计算的高弹性计算平台的制作方法

文档序号:12595585阅读:224来源:国知局

本发明涉及一种提供计算与监控服务的计算平台,特别涉及一种用于电网多维业务的复合计算平台。



背景技术:

脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,人们可以将计算过程放到程序外面的单独脚本中,在程序运行过程中通过脚本引擎解释执行脚本,修改脚本不需要程序重新编译部署,提高了程序的可配置修改性和实时生效性。

但是目前建设的不同电网业务系统都有各自的数据库、webservice服务、rest服务,业务计算经常需要综合运用多种业务系统,进行跨部门跨领域、多项目业务数据整合后再执行计算,目前的各种脚本引擎明显无法支撑这种融合性的复杂业务计算。



技术实现要素:

为了解决电网多维业务复合计算的问题,本发明在算法脚本化的基础上提出了计算平台,并通过如下技术方案实现:

一种用于电网多维业务复合计算的高弹性计算平台,其特征在于,所述平台包括,算法动态编制和应用模块,其用于算法的管理和存储,客户端通过web界面与算法动态编制和应用模块交互,所述web界面通过集成java编辑器并扩展语法来提供算法的编辑,编辑算法过程中,对于计算因数通过对话框的方式绑定数据源,指定数据源类型(服务、数据库)、服务地址、服务接口参数、数据库连接地址、表字段信息,可以动态修改后立即生效,算法经编辑后存入算法动态编制和应用模块,以供下次执行此算法时使用;

数据源容器,包括至少一个数据源模块,不同数据源具有唯一标识,由于算法中包含多个计算因数,因数的值可能来源于多个数据源,计算过程中需要切换不同的数据源去取业务数据,平台采用动态数据源接口bean,作为自定义数据源的容器,平台启动时加载动态数据源和一些缺省的自定义数据源,根据计算因数绑定的数据源唯一标识,判断对应的数据源在容器中是否存在,存在时该线程内直接切换到该数据源,不存在时先调用创建新数据源模块然后再切换,线程外不受影响;

模板引擎,平台调用所述模板引擎创建新数据源模块,所述模板引擎通过数据源模板和计算因数的数据源配置信息,自动生成数据源配置bean,并添加到容器中,即可生成一个自定义数据源模块;

外部服务通用化访问接口,提供Rest、WebService两种服务的通用化访问接口,用于访问外部服务获取业务数据,作为计算因数的值,参与计算过程;

计算服务发布调度和监控模块,对外发布计算服务,可以实时接收外部调用请求,服务发布方式采用两种:Rest、WebService,满足不同的需求;调度方式分实时和任务计划两种,实时方式是执行一个算法接着返回结果,任务计划是通过集成作业调度框架,配置调度时间表,实现计划执行计算的功能。对目前平台包含的数据库访问接口、服务访问接口、计算服务接口等三类接口,提供监听,对每次调用记录请求者、参数、返回值信息进行监听,辅助运维工作。

其特征在于,进一步的,所述平台通过通过线程实例对象ThreadLocal来实现多数据源多线程安全访问,可以保障在多数据源并存的应用环境下,不同线程可以使用不同的数据源,线程内的数据源切换不会影响其它线程。

其特征在于,所述外部服务通用化访问接口,提供Rest、WebService两种服务的通用化访问接口,具体为,所述平台通过spring MVC来实现Rest接口,以通用化的参数格式、返回值格式来保障通用性;平台通过集成CXF框架来实现WebService接口,通过soap协议的xml格式参数来保障通用化。

本发明进一步提供一种用于电网多维业务复合计算的高弹性计算方法,其特征在于,

1)算法动态编制和应用,采用B/S架构实现算法的管理功能,客户端通过web界面进行算法编辑,所述web界面通过集成java编辑器并扩展语法来提供算法的编辑,编辑算法过程中,对于计算因数通过对话框的方式绑定数据源,指定数据源类型(服务、数据库)、服务地址、服务接口参数、数据库连接地址、表字段信息,可以动态修改后立即生效,算法经编辑后存入算法动态编制和应用模块,以供下次执行此算法时使用;

2)算法编辑与数据源绑定分离,平台包括至少一个数据源模块,不同数据源具有唯一标识,由于算法中包含多个计算因数,因数的值可能来源于多个数据源,计算过程中需要切换不同的数据源去取业务数据,平台采用动态数据源接口bean,作为自定义数据源的容器,平台启动时加载动态数据源和一些缺省的自定义数据源,根据计算因数绑定的数据源唯一标识,判断对应的数据源在容器中是否存在,存在时该线程内直接切换到该数据源,不存在时先调用创建新数据源模块然后再切换,线程外不受影响;

3)多数据源动态切换,平台调用模板引擎创建新数据源模块,所述模板引擎通过数据源模板和计算因数的数据源配置信息,自动生成数据源配置bean,并添加到容器中,即可生成一个自定义数据源模块;

4)提供Rest、WebService两种服务的通用化访问接口,用于访问外部服务获取业务数据,作为计算因数的值,参与计算过程;

5)对外发布计算服务,可以实时接收外部调用请求,服务发布方式采用两种:Rest、WebService,满足不同的需求;调度方式分实时和任务计划两种,实时方式是执行一个算法接着返回结果,任务计划是通过集成作业调度框架,配置调度时间表,实现计划执行计算的功能。对目前平台包含的数据库访问接口、服务访问接口、计算服务接口等三类接口,提供监听,对每次调用记录请求者、参数、返回值信息进行监听,辅助运维工作。

其特征在于,进一步的,所述平台通过通过线程实例对象ThreadLocal来实现多数据源多线程安全访问,可以保障在多数据源并存的应用环境下,不同线程可以使用不同的数据源,线程内的数据源切换不会影响其它线程。

其特征在于,提供Rest、WebService两种服务的通用化访问接口,具体为,所述平台通过spring MVC来实现Rest接口,以通用化的参数格式、返回值格式来保障通用性;平台通过集成CXF框架来实现WebService接口,通过soap协议的xml格式参数来保障通用化。

本发明的有益效果是:

根据电力系统的部署环境和数据交互特点,围绕着算法动态编制和应用、算法编辑与数据源绑定分离、多数据源动态切换和线程安全访问、外部服务通用化访问接口、计算服务发布调度和监控等问题进行广泛的探索,建立起一套高弹性的计算平台,高效的服务于电网多维业务的复合计算。

附图说明

图1为本发明提供的一种用于电网多维业务复合计算的高弹性计算方法的实施框图;

具体实施方式

附图为本发明的一种具体实施例。如图1所示,本发明是一种服务于电网多维业务复合计算的高弹性计算方法,包括以下步骤:

1)算法动态编制和应用

算法脚本语法遵循MVEL2.0,与Java语法相似度大于90%,相比Java语法扩展了计算需要的符号。平台采用springMVC的框架实现算法的管理功能,前端界面通过JSP集成CKEditor提供算法的编辑器,并在编辑器中扩展特殊关键字和字符的语法高亮,对于平台集成的算法编辑器,扩展Mvel2.0与Java差异化的关键字或字符的语法高亮,包含16个,并扩展语法提示字符串,实现语法高亮和语法提示,算法编辑完入库并启用,计算平台下次执行此算法时会自动检索新版本,并调用计算引擎去计算,实现不停机应用。

2)算法编辑与数据源绑定分离

数据源绑定不在算法内容中编辑,而是通过对话框的方式绑定数据源,数据源绑定功能通过Jquery框架实现,指定数据源类型(服务、数据库)、服务地址、服务接口参数、数据库连接地址、表字段等信息,可以动态修改后立即生效。

3)多数据源动态切换

平台实现了动态数据源接口bean,继承自spring的AbstractRoutingDataSource抽象类,作为自定义数据源的容器,平台启动时加载了动态数据源和一些缺省的自定义数据源,根据计算因数绑定的数据源唯一标识,判断对应的数据源在容器中是否存在,存在时该线程内直接切换到该数据源,通过重写抽象类的determineCurrentLookupKey()、setTargetDataSources()两个方法来实现多数据源的切换,不存在时先调用创建新数据源模块然后再切换,线程外不受影响。

4)创建新数据源

平台集成了Velocity模板引擎,创建新数据源时,通过预置的数据源模板和计算因数的数据源配置信息,调用模板引擎自动生成数据源配置bean,并添加到容器中,作为一个自定义数据源。

5)多数据源线程安全访问

多数据源多线程安全访问,是通过线程实例对象ThreadLocal来实现的,ThreadLocal为每个线程提供了独立的变量副本,而不会影响其它线程所对应的副本,用它来存储数据源唯一标识,表示该线程当前启用的是哪个数据源,可以保障在多数据源并存的应用环境下,不同线程可以使用不同的数据源,线程内的数据源切换不会影响其它线程。

6)外部服务通用化访问接口

平台提供了Rest、WebService两种外部服务的通用化访问接口,用于访问外部服务获取业务数据,作为计算因数的值,参与计算过程。

平台通过spring框架中的RestTemplate来实现Rest接口,以json格式的数据作为参数、以集合对象作为返回值对象,保障通用化的需求。

平台通过集成CXF框架来实现WebService接口,通过soap协议来保障通用化,平台提供通用方法,来实现自动拼装XML格式的参数以及解析返回xml信息。

7)计算服务发布调度和监控

计算平台对外发布计算服务,采用两种服务方式:Rest、WebService,满足不同的需求。

调度方式分实时和任务计划两种,实时方式是执行一个算法接着返回结果,任务计划是通过集成Quartz作业调度框架,实现计划执行计算的功能。调度作业是基于算法的,可以配置调度时间表和算法ID。

对于目前平台包含的三类接口:数据库访问接口、服务访问接口、计算服务接口,平台提供监听器,对每次调用记录请求者、参数、返回值等信息,辅助运维工作。

本发明同时提供了一种高弹性计算平台,其中包括算法动态编制和应用模块,数据源容器,模板引擎,外部服务通用化访问接口,计算服务发布调度和监控模块。其中算法动态编制和应用模块,其用于算法的管理和存储,客户端通过web界面与算法动态编制和应用模块交互,所述web界面通过集成java编辑器并扩展语法来提供算法的编辑,编辑算法过程中,对于计算因数通过对话框的方式绑定数据源,指定数据源类型(服务、数据库)、服务地址、服务接口参数、数据库连接地址、表字段信息,可以动态修改后立即生效,算法经编辑后存入算法动态编制和应用模块,以供下次执行此算法时使用;

数据源容器,包括至少一个数据源模块,不同数据源具有唯一标识,由于算法中包含多个计算因数,因数的值可能来源于多个数据源,计算过程中需要切换不同的数据源去取业务数据,平台采用动态数据源接口bean,作为自定义数据源的容器,平台启动时加载动态数据源和一些缺省的自定义数据源,根据计算因数绑定的数据源唯一标识,判断对应的数据源在容器中是否存在,存在时该线程内直接切换到该数据源,不存在时先调用创建新数据源模块然后再切换,线程外不受影响;所述平台通过通过线程实例对象ThreadLocal来实现多数据源多线程安全访问,可以保障在多数据源并存的应用环境下,不同线程可以使用不同的数据源,线程内的数据源切换不会影响其它线程。

模板引擎,平台调用所述模板引擎创建新数据源模块,所述模板引擎通过数据源模板和计算因数的数据源配置信息,自动生成数据源配置bean,并添加到容器中,即可生成一个自定义数据源模块;

外部服务通用化访问接口,提供Rest、WebService两种服务的通用化访问接口,用于访问外部服务获取业务数据,作为计算因数的值,参与计算过程;

计算服务发布调度和监控模块,对外发布计算服务,可以实时接收外部调用请求,服务发布方式采用两种:Rest、WebService,满足不同的需求;调度方式分实时和任务计划两种,实时方式是执行一个算法接着返回结果,任务计划是通过集成作业调度框架,配置调度时间表,实现计划执行计算的功能。对目前平台包含的数据库访问接口、服务访问接口、计算服务接口等三类接口,提供监听,对每次调用记录请求者、参数、返回值信息进行监听,辅助运维工作。

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