CN101968740A - 一种基于java class编译的业务数据动态调整服务器及系统 - Google Patents
一种基于java class编译的业务数据动态调整服务器及系统 Download PDFInfo
- Publication number
- CN101968740A CN101968740A CN2010102948903A CN201010294890A CN101968740A CN 101968740 A CN101968740 A CN 101968740A CN 2010102948903 A CN2010102948903 A CN 2010102948903A CN 201010294890 A CN201010294890 A CN 201010294890A CN 101968740 A CN101968740 A CN 101968740A
- Authority
- CN
- China
- Prior art keywords
- rule
- class
- business
- information
- regular
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于JAVA CLASS编译的业务数据动态调整服务器及系统,其中,所述的服务器包括:编辑请求接收装置、规则编辑服务装置、规则信息存储装置、执行请求接收装置、规则信息获取装置、CLASS类生成装置以及规则执行装置。所述的基于JAVACLASS编译的业务数据动态调整系统包括业务应用系统与业务数据动态调整服务器,两者进行信息交互。本发明实施例通过将规则控制转换成JAVA类代码,并编译重载JAVACLASS类,实现规则控制的动态调整,不需要将业务过程的规则控制直接固化在程序中。另外,由于采用JAVA CLASS编译重载方法,依靠JDK自身的函数功能即可实现规则的执行和动态调整,所以能够有效地避免规则语言解析等规则处理设计开发中的复杂技术难点。
Description
技术领域
本发明涉及应用系统中的规则控制处理领域,尤其涉及一种基于JAVACLASS编译的业务数据动态调整服务器及系统。
背景技术
在银行等领域的应用系统中,涉及到大量业务层面的规则控制判断,用以规范业务流程,防范业务风险。在目前的应用系统中,对于这些业务层面的规则控制处理存在两种解决方案,一种是通过编写程序直接将规则控制落实在程序中,即直接通过硬编码方式在程序代码中实现业务的规则控制,这种方式使得规则控制被固化在程序中,随着业务的不断发展,对相应规则控制的调整变化需求也日趋明显,这种方式使得规则控制的调整变得十分困难,每次调整都需要修改程序、测试、发布版本等,不能满足业务发展对规则进行快速调整的要求;另一种是将规则和业务过程相分离,这种方式可以采用市面已有的规则引擎产品或自行开发规则处理方法,虽然能够支持规则的快速动态调整,但这些产品提供的规则管理方式复杂,例如都需要与业务应用系统的业务对象模型进行绑定包装,对于规则的管理都是基于业务应用系统的业务对象模型的,而且往往因为规则引擎产品自身要求和业务应用系统具备条件不匹配,引发业务系统结构进行调整,例如目前许多规则引擎产品,对于规则的管理都是基于业务系统的对象模型,即要求业务系统是基于面向对象的开发模式,这使得一些主要基于面向过程开发模式的业务系统应用规则引擎产品非常困难,需要进行大量的建模工作,并调整系统开发模式,给业务应用系统的业务人员和开发人员带来诸多不便,而要结合自身系统特点,开发适用自身应用系统的规则引擎又面临着,诸如规则的解析、规则的执行等各种复杂的技术难点。
发明内容
本发明实施例提供一种基于JAVA CLASS编译的业务数据动态调整服务器,包括:编辑请求接收装置,用于从外部业务应用系统接收业务规则编辑请求;规则编辑服务装置,用于根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面;规则信 息存储装置,用于接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息;执行请求接收装置,用于接收所述业务应用系统发送的业务进程对应的规则执行请求;规则信息获取装置,用于根据所述的规则执行请求,获取所述业务进程对应的业务规则信息;CLASS类生成装置,用于将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的CLASS类;规则执行装置,用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。
本发明实施例还提供一种基于JAVA CLASS编译的业务数据动态调整系统,包括业务应用系统和业务数据动态调整服务器,所述业务应用系统与所述业务数据动态调整服务器进行信息交互,其中,所述业务数据动态调整服务器包括:编辑请求接收装置,用于从外部业务应用系统接收业务规则编辑请求;规则编辑服务装置,用于根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面;规则信息存储装置,用于接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息;执行请求接收装置,用于接收所述业务应用系统发送的业务进程对应的规则执行请求;规则信息获取装置,用于根据所述的规则执行请求,获取所述业务进程对应的业务规则信息;CLASS类生成装置,用于将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的CLASS类;规则执行装置,用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。
本发明实施例的基于JAVA CLASS编译的业务数据动态调整服务器及系统,通过将规则控制转换成JAVA类代码,并编译重载JAVA CLASS类,实现规则控制的动态调整,不需要将业务过程的规则控制直接固化在程序中。本发明提供的业务数据动态调整服务器,由于采用JAVA CLASS编译重载方法,依靠JDK自身的函数功能即可实现规则的执行和动态调整,所以能够有效地避免规则语言解析等规则处理设计开发中的复杂技术难点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1本发明实施例的基于JAVA CLASS编译的业务数据动态调整服务器的结构示意图;
图2为图1所示实施例的规则信息存储装置的结构示意图;
图3为图1所示实施例的CLASS类生成装置的结构示意图;
图4本发明基于JAVA CLASS编译的业务数据动态调整服务器的另一个实施例的结构示意图;
图5为本发明实施例的基于JAVA CLASS编译的业务数据动态调整系统的结构示意图;
图6为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例一的方法流程图;
图7为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例二的方法流程图;
图8为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例三的方法流程图;
图9为本发明实施例的CLASS类进行加载的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1本发明实施例的基于JAVA CLASS编译的业务数据动态调整服务器的结构示意图,如图所示,本实施例的业务数据动态调整服务器包括:
编辑请求接收装置101,用于从外部业务应用系统接收业务规则编辑请求。其中,所述的业务规则编辑请求包括业务规则创建请求或业务规则调整请求。业务应用系统包含许多业务进程,当运行业务处理时,需要为业务进程创建规则或者调整业务进程本身的规则。
规则编辑服务装置102,用于根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面。规则本质上是if-else的处理,业务应用系统编辑的规则可以包含多层级嵌套式的if-else关系,因此,规则编辑服务装置102向业务应用系统提供规则编辑服务界面,业务应用系统则在界面中编辑自身业务过程中所需要的规则控制,规则中可以引 用业务应用系统自身所涉及的各类要素或属性,这种引用的方式即可以是基于面向对象基础上的业务模型,也可以是基于面向过程基础上的简单变量。
规则信息存储装置103,用于接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息。在一个实施例中,参见图2,为规则信息存储装置103的结构示意图,规则信息存储装置103中存储了规则的信息,至少包括规则文本信息单元1031、规则要素信息单元1032、规则附属信息单元1033、规则挂接信息单元1034。规则文本信息单元1031,存储了规则控制自身的信息,包括规则控制的判断条件、判断执行的流转分支、各个分支的执行操作等,例如贷款审批要求有如下控制:如果申请人年龄+贷款期限大于60,则控制规则校验不通过,否则规则校验通过。规则要素信息单元1032,存储了规则文本中涉及到的业务应用系统中的要素信息,包括判断条件和执行操作中所涉及的要素,例如借款人年龄,贷款合同金额等等。规则附属信息单元1033,存储了规则附属的信息,包括规则的维护人员,维护时间,版本号等等。规则挂接信息单元1034,存储了规则被使用的场景情况,标示了业务应用系统中某个业务场景会触发的规则集合信息。例如上述的申请人年龄+贷款期限必须小于60的规则控制,该规则控制可能在贷款资料录入时进行控制,也可能在贷款审批时进行控制,也可能在贷款发放时进行控制,规则挂接信息单元1034存储了规则控制在业务过程中哪些环节会被触发进行控制。
执行请求接收装置104,用于接收所述业务应用系统发送的业务进程对应的规则执行请求。业务引用系统运行自身系统所具有的业务处理过程,当处理过程运行到需要进行规则判断的环节时,业务引用系统请求服务器执行当前业务环节所挂接的规则。
规则信息获取装置105,用于根据所述的规则执行请求,获取所述业务进程对应的业务规则信息。根据规则请求,查询规则挂接信息单元1034中的该业务环节挂接的规则,并从规则附属信息单元1032中获取规则最新版本号,从规则文本信息单元1031中获取该规则的文本信息。
CLASS类生成装置106,用于将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的CLASS类。在一个实施例中,参见图3,为CLASS类生成装置106的结构示意图。CLASS类生成装置106包括:规则信息获取单元1062,用于获取所述业务进程对应的规则控制的规则文本信息和规则要素信息;代码转换单元1063,用于将所述的规则文本信息转换成对应的JAVA类代码;编译单元1064,用于将所述的JAVA类代码编译成对应的JAVA CLASS文件;CLASS类加载单元1065, 用于利用JAVA类加载器将所述的JAVA CLASS文件加载为新的CLASS类。
规则执行装置107,用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。规则执行装置107使用JAVA反射技术,生成所述CLASS类的实例对象,调用所述实例对象中的函数,以实现规则控制的执行判断,生成规则执行结果并反馈给所述业务应用系统。
图4为本发明基于JAVA CLASS编译的业务数据动态调整服务器的另一个实施例的结构示意图,如图所示,本实施例的服务器除具有图1~图3所示实施例的装置外,还包括:
规则版本判断装置108,用于从所述规则附属信息单元中获取规则版本号,并与已加载的规则版本号进行比对,如果两者不一致,则通过所述CLASS类生成装置加载新的CLASS类。本实施例中,增加了加载新的CLASS类的条件,即如果存在需要更新的规则版本时,才执行加载CLASS类的步骤。
图5为本发明实施例的基于JAVA CLASS编译的业务数据动态调整系统的结构示意图。如图所示,业务数据动态调整系统包括业务应用系统10′和基于JAVA CLASS编译的业务数据动态调整服务器10,所述业务应用系统10′与所述基于JAVA CLASS编译的业务数据动态调整服务器10进行信息交互,所述业务应用系统10′包括银行、保险等领域处理业务过程,实现业务管理的应用系统,系统中包括了各自领域中所要求的业务处理模块。基于JAVA CLASS编译的业务数据动态调整服务器10具有图4所示实施例的业务数据动态调整服务器的所有特征。
实施例一:
图6为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例一的方法流程图,如图所示,可动态调整的规则处理方法包括:
S601,从外部业务应用系统接收业务规则编辑请求;
S602,根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面;
S603,接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息;
S604,接收所述业务应用系统发送的业务进程对应的规则执行请求;
S605,根据所述的规则执行请求,获取所述业务进程对应的业务规则信息;
S606,从所述规则附属信息单元中获取规则版本号,并与已加载的规则版本号进行比对,如果两者不一致,则转到步骤S607来加载新的CLASS类。
S607,将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的新的CLASS类;
S608,用于根据新的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。
实施例二:
图7为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例二的方法流程图。
步骤S701:业务应用系统向业务数据动态调整服务器发送规则创建编辑请求。
步骤S702:编辑请求接收装置101接受到请求,调用规则编辑服务装置102,向业务应用系统提供规则编辑服务界面。
步骤S703:应用系统通过规则编辑服务装置102提供的规则编辑服务,编辑自身业务过程中所需要的规则控制。规则控制本质上就是if-else的处理,业务应用系统编辑的规则可以包含多层级嵌套式的if-else关系,并且规则中可以引用业务应用系统自身所涉及的各类要素或属性,这种引用的方式既可以是基于面向对象基础上的业务模型,也可以是基于面向过程基础上的简单变量。在编辑过程中,if-else的嵌套关系,以及if判断条件和else执行操作中的语句,都需要符合系统预定的规则语言规范。
这种规则语言规范可以是JAVA语言规范,也可以是业务应用系统自己定义的规则语言规范,但所使用的规则语言规范必须满足可转换性,即可以按照某种转换方法实现将规则控制语言转换成JAVA语言代码。对于业务应用系统自定义规则语言规范,可以参考如下例子:
(1)对于录入的规则语言以XML形式进行封装,其中规则本身封装在标签<rule>中,并且需要命名。
(2)在规则中,一个具体的判断执行封装在标签<rule_condition>中,也需要命名。
(3)在每个具体的判断执行中,条件判断封装在标签<if>中,条件符合的执行封装在标签<then>中,而条件不符合的执行封装在标签<else>中。
(4)<then><else>中的内容可以是一个动作,也可以是调用其它的判断执行,一个动作封装在标签<action>中,调用其它的判断执行封装在标签<invoke>中。
其中,对于<if>中的内容,必须满足JAVA语言的布尔表达式规范,而<action>中的内容,必须满足JAVA语言的执行语句规范。
如下是一个满足上述规范的具体实例:
当然为方便前台用户编辑规则的便利性,可以在此基础上对规则输入界面进行优化和引导,在后台程序层面对用户编辑的结果进行XML封装,避免由用户直接输入JAVA语言和XML格式。
对于上述的规则语言规范,可以根据如下原则转换成JAVA语言:
(1)对于标签<rule>直接转化成一个JAVA语言函数,函数名为name标记的名称。
(2)对于每一个标签<rule_condition>内容,其中标签<if>...</if>中的内容转换成JAVA语言的“if(...)”;标签<then>...</then>中的内容,转换成JAVA语言的“{...}”;标签<else>...</else>中的内容,转换成JAVA语言的“else{...}”。
(3)对于标签<action>...</action>中的内容,转换成JAVA语言的“...”;对于标签<invoke>...</invoke>中的内容,对于调用的判断执行内容,重复过程(2)进行转换过程。如下是上述具体实例转换后的JAVA代码:
在实际设计开发过程中,考虑到业务应用系统与业务数据动态调整服务器之间的数据交互,转换成JAVA语言代码后的JAVA函数,在传入参数中还需要考虑传入“工作空间(Working Memory)”,在函数起始和结束位置上,也需要处理从“工作空间”中取数和存数的操作。
步骤S704,编辑完成后,业务应用系统将新创建的规则发送给动态调整服务器。
步骤S705:动态调整服务器中的规则信息存储装置103接受到规则的相关信息并进行存储,将规则文本信息存储到规则文本信息单元1031,将规则所引用到的业务系统要素信息存储到规则要素信息单元1032,将规则的附属信息存储到规则附属信息单元1033。
步骤S706:在规则创建完成后,业务应用系统向动态调整服务器发送规则挂接请求。
步骤S707,动态调整服务器接受到规则挂接请求后,向业务应用系统提供规则挂接服务。
步骤S708,业务应用系统将新创建的规则挂接到业务处理过程中需要进行该规则判断的环节上。
步骤S709:业务应用系统将创建或编辑的规则与业务环节的挂接关系,发送给动态调整服务器。
步骤S710:动态调整服务器接受到规则的挂接信息,将规则与业务环节的挂接关系信息存储到规则挂接信息单元1034中。
步骤S711:业务应用系统运行自身系统所具有的业务处理过程,执行业务处理。
步骤S712,当业务处理过程运行到需要进行规则判断的环节时,业务应用系统发出规则执行请求,请求动态调整服务器执行当前业务环节所挂接的规则控制。
步骤S713:动态调整服务器接受到规则执行请求,查询规则挂接信息单元1034中该业务环节所挂接的规则,并且利用规则版本判断装置108从规则附属信息单元1033中获取规则的最新版本号,并与已加载的规则版本号进行比对,此处已加载的版本号是指已经被加载到系统内存中的版本号,如果两者版本号一致,则不用做新的CLASS类的加载,如果两者版本号不一致,则用规则附属信息单元1033中的版本号来替换已加载的版本号, 并加载新的CLASS类。
步骤S714:若版本号为最新,则根据此版本所对应的CLASS类,生成规则执行结果并反馈给业务应用系统。
实施例二:
图8为本发明的基于JAVA CLASS编译的业务数据动态调整服务器进行动态调整的实施例二的方法流程图。本实施例中,步骤S701~步骤S713同实施例一中的相同,只是在步骤S713后,若存在未被加载的规则,或者规则已被加载,但是被加载规则的版本号不是从规则附属信息单元1033中获取的最新的版本号,则CLASS类生成装置106进行新的CLASS类加载。
其中,本实施例的加载规则的具体流程参见图8,包括:
步骤S715:从规则文本信息单元1031中获取规则文本,从规则要素信息单元1032获取规则引用要素的信息。例如之前提到的申请人年龄+贷款期限小于60,假设其规则编号为LOAN001,规则名称为Age_Check。
步骤S715′:将规则文本信息按照所使用规则语言规范的转换方法,将规则文本信息转换成相应的JAVA类代码,规则执行内容作为JAVA类中的一个函数。例如对于上述的LOAN001规则,可以将规则编号和规则名称作为对应的JAVA类名和JAVA函数名,那将其转化成JAVA类代码,并写入LOAN001.java,其中该规则的执行内容包含在JAVA类的Age_Check函数中。
步骤S715″:调用JAVA编译函数将JAVA语言代码编译成相应的JAVA CLASS文件。针对上述的实例,即将LOAN001.java编译成LOAN001.class文件。
步骤S615′″:调用JAVA类加载器将JAVA CLASS文件加载入JAVA类加载器中,生成加载的新的CLASS类。针对上述的实例,将LOAN001.class加载入内存,生成新的CLASS类。
步骤S716:加载新的CLASS类后,规则执行装置107根据新的CLASS类执行规则控制。规则执行装置107,对于需要执行的每个规则控制,首先使用JAVA反射技术,生成规则对应的CLASS类的实例对象,然后调用实例中的函数,以实现规则控制的判断执行,最后规则执行装置107将执行的结果反馈业务应用系统。
本实施例中,业务应用系统还可以向动态调整服务器发送调整规则或调整挂接关系请求,动态调整服务器接受到请求后,调用规则编辑装置102,向业务应用系统提供调整服务。调整处理与创建处理相同,调整完成后,将调整结果通知业务数据动态调整服务器。 动态调整服务器调用规则编辑装置102,将规则信息存储到规则信息存储装置103中相应的存储单元中;当业务应用系统运行自身系统所具有的业务处理过程,当处理过程运行到相同环节时,业务应用系统请求动态调整服务器执行当前业务环节所挂接的新的规则控制;动态调整服务器接受到规则执行请求,首先判断挂接在该业务环节上最新的规则控制,处理模式同步骤S713~S716。由于在处理过程中,动态调整服务器会判断当前加载的规则是否为最新版本的,如果不是,则会重新编译加载最新的规则CLASS类,所以一旦规则经过调整,服务器能够自动执行最新版本的规则控制。
图9为本发明实施例的CLASS类进行加载的方法流程图,如图所示,加载规则的方法包括:
步骤S715:从规则文本信息单元1031中获取规则文本,从规则要素信息单元1032获取规则引用要素的信息。例如之前提到的申请人年龄+贷款期限小于60,假设其规则编号为LOAN001,规则名称为Age_Check。
步骤S715′:将规则文本信息按照所使用规则语言规范的转换方法,将规则文本信息转换成相应的JAVA类代码,规则执行内容作为JAVA类中的一个函数。例如对于上述的LOAN001规则,可以将规则编号和规则名称作为对应的JAVA类名和JAVA函数名,那将其转化成JAVA类代码,并写入LOAN001.java,其中该规则的执行内容包含在JAVA类的Age_Check函数中。
步骤S715″:调用JAVA编译函数将JAVA语言代码编译成相应的JAVA CLASS文件。针对上述的实例,即将LOAN001.java编译成LOAN001.class文件。
步骤S715′″:调用JAVA类加载器将JAVA CLASS文件加载入JAVA类加载器中,生成加载的新的CLASS类。针对上述的实例,将LOAN001.class加载入内存,生成新的CLASS类。
本发明通过将规则控制转换成JAVA类代码,并编译重载JAVA CLASS类,实现规则控制的动态调整,不需要将业务过程的规则控制直接固化在程序中。本发明提供的业务数据动态调整服务器,由于采用JAVA CLASS编译重载方法,依靠JDK自身的函数功能即可实现规则的执行和动态调整,所以能够有效地避免规则语言解析等规则处理设计开发中的复杂技术难点。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
Claims (14)
1.一种基于JAVA CLASS编译的业务数据动态调整服务器,其特征在于,所述的服务器包括:
编辑请求接收装置,用于从外部业务应用系统接收业务规则编辑请求;
规则编辑服务装置,用于根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面;
规则信息存储装置,用于接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息;
执行请求接收装置,用于接收所述业务应用系统发送的业务进程对应的规则执行请求;
规则信息获取装置,用于根据所述的规则执行请求,获取所述业务进程对应的业务规则信息;
CLASS类生成装置,用于将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的CLASS类;
规则执行装置,用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。
2.如权利要求1所述的业务数据动态调整服务器,其特征在于,所述编辑请求接收装置用于从外部业务应用系统接收业务规则编辑请求,其中,所述的业务规则编辑请求包括业务规则创建请求或业务规则调整请求。
3.如权利要求1所述的业务数据动态调整服务器,其特征在于,所述的规则信息存储装置包括:
规则文本信息单元,用于存储包括规则控制的判断条件、判断执行的流转分支以及各个分支的执行操作在内的规则文本信息;
规则要素信息单元,用于存储包括规则判断条件和执行操作中涉及的要素的规则要素信息;以及
规则附属信息单元,用于存储包括规则的维护人员、维护时间以及规则版本号在内的规则附属信息;
规则挂接信息单元,用于存储包括规则被使用的场景信息在内的规则挂接信息。
4.如权利要求3所述的业务数据动态调整服务器,其特征在于,所述的规则信息获取装置用于获取所述业务进程对应的业务规则信息,包括;
根据所述的规则执行请求,查询所述规则挂接信息单元中的规则挂接信息,并根据所述的规则挂接信息获取与所述业务进程对应的包括规则文本信息、规则要素信息以及规则附属信息在内的业务规则信息。
5.如权利要求4所述的业务数据动态调整服务器,其特征在于,所述的业务数据动态调整服务器进一步包括:
规则版本判断装置,用于从所述规则附属信息单元中获取规则版本号,并与已加载的规则版本号进行比对,如果两者不一致,则通过所述CLASS类生成装置加载新的CLASS类。
6.如权利要求5所述的业务数据动态调整服务器,其特征在于,所述的CLASS类生成装置包括:
文本信息获取单元,用于获取所述业务进程对应的规则控制的规则文本信息和规则要素信息;
代码转换单元,用于将所述的规则文本信息转换成对应的JAVA类代码;
编译单元,用于将所述的JAVA类代码编译成对应的JAVA CLASS文件;
CLASS类加载单元,用于利用JAVA类加载器将所述的JAVA CLASS文件加载为CLASS类。
7.如权利要求1所述的业务数据动态调整服务器,其特征在于,所述的规则执行装置用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统,包括:
使用JAVA反射技术,生成所述CLASS类的实例对象,调用所述实例对象中的函数,以实现规则控制的执行判断,生成规则执行结果并反馈给所述业务应用系统。
8.一种基于JAVA CLASS编译的业务数据动态调整系统,其特征在于,所述系统包括业务应用系统和业务数据动态调整服务器,所述业务应用系统与所述业务数据动态调整服务器进行信息交互,其中,所述业务数据动态调整服务器包括:
编辑请求接收装置,用于从所述业务应用系统接收业务规则编辑请求;
规则编辑服务装置,用于根据所述的规则编辑请求向所述业务应用系统提供对应的规则编辑服务界面;
规则信息存储装置,用于接收并存储所述业务应用系统根据所述规则编辑服务界面生成的包括规则版本号、规则文本信息和规则挂接信息在内的业务规则信息;
执行请求接收装置,用于接收所述业务应用系统发送的业务进程对应的规则执行请求:
规则信息获取装置,用于根据所述的规则执行请求,获取所述业务进程对应的业务规则信息;
CLASS类生成装置,用于将所述业务进程对应的业务规则信息中的规则文本信息编译为对应的JAVA CLASS文件,并加载为对应的CLASS类;
规则执行装置,用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统。
9.如权利要求8所述的业务数据动态调整系统,其特征在于,所述编辑请求接收装置用于从外部业务应用系统接收业务规则编辑请求,其中,所述的业务规则编辑请求包括业务规则创建请求或业务规则调整请求。
10.如权利要求8所述的业务数据动态调整系统,其特征在于,所述的规则信息存储装置包括:
规则文本信息单元,用于存储包括规则控制的判断条件、判断执行的流转分支以及各个分支的执行操作在内的规则文本信息;
规则要素信息单元,用于存储包括规则判断条件和执行操作中涉及的要素的规则要素信息;以及
规则附属信息单元,用于存储包括规则的维护人员、维护时间以及规则版本号在内的规则附属信息;
规则挂接信息单元,用于存储包括规则被使用的场景信息在内的规则挂接信息。
11.如权利要求10所述的业务数据动态调整系统,其特征在于,所述的规则信息获取装置用于获取所述业务进程对应的业务规则信息,包括;
根据所述的规则执行请求,查询所述规则挂接信息单元中的规则挂接信息,并根据所述的规则挂接信息获取与所述业务进程对应的包括规则文本信息、规则要素信息以及规则附属信息在内的业务规则信息。
12.如权利要求11所述的业务数据动态调整系统,其特征在于,所述的业务数据动态调整服务器进一步包括:
规则版本判断装置,用于从所述规则附属信息单元中获取规则版本号,并与已加载的规则版本号进行比对,如果两者不一致,则通过所述CLASS类生成装置加载新的CLASS类。
13.如权利要求12所述的业务数据动态调整系统,其特征在于,所述的CLASS类生成装置包括:
文本信息获取单元,用于获取所述业务进程对应的规则控制的规则文本信息和规则要素信息;
代码转换单元,用于将所述的规则文本信息转换成对应的JAVA类代码;
编译单元,用于将所述的JAVA类代码编译成对应的JAVA CLASS文件;
CLASS类加载单元,用于利用JAVA类加载器将所述的JAVA CLASS文件加载为CLASS类。
14.如权利要求8所述的业务数据动态调整系统,其特征在于,所述的规则执行装置用于根据所述的CLASS类,生成规则执行结果并反馈给所述的业务应用系统,包括:
使用JAVA反射技术,生成所述CLASS类的实例对象,调用所述实例对象中的函数,以实现规则控制的执行判断,生成规则执行结果并反馈给所述业务应用系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010294890 CN101968740B (zh) | 2010-09-28 | 2010-09-28 | 一种基于java class编译的业务数据动态调整服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010294890 CN101968740B (zh) | 2010-09-28 | 2010-09-28 | 一种基于java class编译的业务数据动态调整服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101968740A true CN101968740A (zh) | 2011-02-09 |
CN101968740B CN101968740B (zh) | 2013-05-08 |
Family
ID=43547900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010294890 Active CN101968740B (zh) | 2010-09-28 | 2010-09-28 | 一种基于java class编译的业务数据动态调整服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101968740B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360291A (zh) * | 2011-10-07 | 2012-02-22 | 云南爱迪科技有限公司 | 面向服务的基于业务规则引擎的业务规则设计方法 |
CN107133052A (zh) * | 2017-05-27 | 2017-09-05 | 杭州迪脉信息科技有限公司 | 流程创建的方法及装置 |
CN107430517A (zh) * | 2015-05-27 | 2017-12-01 | 谷歌公司 | 用于增强对话系统的插件的在线市场 |
CN107480053A (zh) * | 2017-07-21 | 2017-12-15 | 杭州销冠网络科技有限公司 | 一种软件测试数据生成方法及装置 |
CN108762762A (zh) * | 2018-05-08 | 2018-11-06 | 深圳市分期乐网络科技有限公司 | 会话信息管理方法、装置、设备和计算机存储介质 |
CN109445878A (zh) * | 2018-10-12 | 2019-03-08 | 北京宝兰德软件股份有限公司 | 在运行时对Java类进行注入的方法及装置 |
CN109829810A (zh) * | 2018-12-13 | 2019-05-31 | 平安科技(深圳)有限公司 | 业务推荐方法、装置、计算机设备及存储介质 |
CN110737524A (zh) * | 2019-10-18 | 2020-01-31 | 北京思维造物信息科技股份有限公司 | 一种任务规则管理方法、装置、设备及介质 |
CN111443905A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 业务数据的处理方法、装置、系统及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174544B2 (en) * | 2001-06-27 | 2007-02-06 | Interwise Co., Ltd. | JAVA compile-on-demand service system for accelerating processing speed of JAVA program in data processing system and method thereof |
CN101840334A (zh) * | 2010-04-16 | 2010-09-22 | 中国电子科技集团公司第二十八研究所 | 一种软件构件服务化封装方法 |
-
2010
- 2010-09-28 CN CN 201010294890 patent/CN101968740B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174544B2 (en) * | 2001-06-27 | 2007-02-06 | Interwise Co., Ltd. | JAVA compile-on-demand service system for accelerating processing speed of JAVA program in data processing system and method thereof |
CN101840334A (zh) * | 2010-04-16 | 2010-09-22 | 中国电子科技集团公司第二十八研究所 | 一种软件构件服务化封装方法 |
Non-Patent Citations (1)
Title |
---|
周洪照等: "Java类装载机制的研究及应用", 《黑龙江科技信息》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360291B (zh) * | 2011-10-07 | 2013-11-13 | 云南爱迪科技有限公司 | 面向服务的基于业务规则引擎的业务规则设计方法 |
CN102360291A (zh) * | 2011-10-07 | 2012-02-22 | 云南爱迪科技有限公司 | 面向服务的基于业务规则引擎的业务规则设计方法 |
US10990377B2 (en) | 2015-05-27 | 2021-04-27 | Google Llc | Online marketplace of plugins for enhancing dialog systems |
CN107430517A (zh) * | 2015-05-27 | 2017-12-01 | 谷歌公司 | 用于增强对话系统的插件的在线市场 |
US11861346B2 (en) | 2015-05-27 | 2024-01-02 | Google Llc | Online marketplace of plugins for enhancing dialog systems |
CN107133052A (zh) * | 2017-05-27 | 2017-09-05 | 杭州迪脉信息科技有限公司 | 流程创建的方法及装置 |
CN107480053A (zh) * | 2017-07-21 | 2017-12-15 | 杭州销冠网络科技有限公司 | 一种软件测试数据生成方法及装置 |
CN108762762A (zh) * | 2018-05-08 | 2018-11-06 | 深圳市分期乐网络科技有限公司 | 会话信息管理方法、装置、设备和计算机存储介质 |
CN108762762B (zh) * | 2018-05-08 | 2022-03-25 | 深圳市分期乐网络科技有限公司 | 会话信息管理方法、装置、设备和计算机存储介质 |
CN109445878A (zh) * | 2018-10-12 | 2019-03-08 | 北京宝兰德软件股份有限公司 | 在运行时对Java类进行注入的方法及装置 |
CN109829810A (zh) * | 2018-12-13 | 2019-05-31 | 平安科技(深圳)有限公司 | 业务推荐方法、装置、计算机设备及存储介质 |
CN109829810B (zh) * | 2018-12-13 | 2024-02-20 | 平安科技(深圳)有限公司 | 业务推荐方法、装置、计算机设备及存储介质 |
CN111443905A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 业务数据的处理方法、装置、系统及电子设备 |
CN111443905B (zh) * | 2019-01-16 | 2023-04-11 | 阿里巴巴集团控股有限公司 | 业务数据的处理方法、装置、系统及电子设备 |
CN110737524A (zh) * | 2019-10-18 | 2020-01-31 | 北京思维造物信息科技股份有限公司 | 一种任务规则管理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101968740B (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101968740B (zh) | 一种基于java class编译的业务数据动态调整服务器及系统 | |
CN101441560B (zh) | 执行基于上下文模型的面向服务架构的策略的方法和装置 | |
US7694291B2 (en) | Build optimizer tool for efficient management of software builds for mobile devices | |
CN100518167C (zh) | 管理服务状态数据的方法和系统 | |
US20050050141A1 (en) | Method and apparatus for generating service oriented state data and meta-data using meta information modeling | |
CN108804322A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
US7657609B2 (en) | Data transfer in a multi-environment document management system access | |
CN102187313A (zh) | 高速缓存运行时生成的代码 | |
US20220058032A1 (en) | Generation apparatus, program, and generation method | |
CN103902286A (zh) | 基于soa的层级式多源数据融合方法 | |
US20130055235A1 (en) | Custom code innovation management | |
CN101131744A (zh) | 一种实现数据对象模型自动适配的方法和系统 | |
US20160085544A1 (en) | Data management system | |
CN114691233A (zh) | 一种基于工作流引擎的遥感数据处理插件分布式调度方法 | |
Billig et al. | Platform independent model transformation based on triple | |
Liu et al. | Engineering information service infrastructure for ubiquitous computing | |
van der Sluijs et al. | Towards a generic user model component | |
Iacob et al. | Quantitative analysis of service-oriented architectures | |
CN104363286A (zh) | 一种基于工作流模板驱动的cdn内容分发方法及系统 | |
Gernhardt et al. | A semantic representation for process-oriented knowledge management based on functionblock domain models supporting distributed and collaborative production planning | |
CN103412743B (zh) | 一种基于xml的自动调用业务规则的方法 | |
Maarouf et al. | XML integrated environment for service-oriented data management | |
Duddy et al. | Design of a model-generated repository as a service for USDL | |
CN112637288A (zh) | 流式数据分发方法和系统 | |
Li et al. | Business object modeling, validation, and mediation for integrating heterogeneous application systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |