动态业务建立、管理和处理方法及动态业务系统的制作方法
【专利摘要】本发明公开了一种动态业务建立、管理和处理方法及动态业务系统,其中所述动态业务建立方法包括步骤:S11、建立一主函数和多个业务脚本;S12、所述主函数中加入每个业务脚本的调用函数;S13、所述主函数将每个调用函数关联一业务种类。本发明还提供了管理所述动态业务建立方法建立的动态业务的管理方法、本发明又提供了一种使用所述动态业务建立方法建立的动态业务的处理方法。本发明另提供了一种使用上述动态业务建立、管理和处理方法的动态业务系统。本发明通过脚本灵活配置文件和成熟的应用系统整合进行的分布式计算和文件处理,从而可以高效和安全的实现应用系统中业务内容的修改。
【专利说明】动态业务建立、管理和处理方法及动态业务系统
【技术领域】
[0001]本发明涉及一种动态业务建立、管理和处理方法及动态业务系统,特别是涉及一种基于脚本的动态业务建立、管理和处理方法及动态业务系统。
【背景技术】
[0002]目前大型企业IT(信息技术)应用系统都面临这与其合作方的系统有互相通信的需求,尤其像业务规模量庞大的电信、金融或证券等国家经济基础相关的行业。
[0003]例如第三方在线支付属于金融行业的清算机构,需要和它进行的清算机构多达数十家,开展的业务更是上百种,包括国内外银行、物流系统、保险和跨国企业等等。由于各行业的信息技术平台大相径庭,文件这种传统的信息交换方式仍然是第三方在线支付和清算机构之间所主要采用的手段。
[0004]但是随着业务高速发展,如何快速安全的修改为这些文件定义的数据模型,且还希望尽可能小的影响核心系统的高可用性是摆在面前的一项难题。
[0005]从开发人员角度来看,对于现有方案,如果文件格式因业务变化而修改,同时也必须对解析文件的代码进行修改并重新编译、部署和重启,再加上产品测试释放周期的原因发布到生产环境还会需要更长时间,因此代价高且效率低。
[0006]从应用系统角度来看,基于企业SOA (面向服务的体系结构)计算环境下的核心系统承担着巨大的关键性计算任务,修改核心系统代码不仅风险大,测试代价高,还可能还会因代码合并带来新的潜在风险,众所周知基于SOA环境下的核心业务系统安全稳定对整个SOA生态系统尤为重要,所以频繁核心系统修改和发布次数或明显降低整个应用系统的可用性。
【发明内容】
[0007]本发明要解决的技术问题是为了克服现有技术的应用系统中无法可靠、高效地改变系统中业务处理内容的缺陷,提供一种动态业务建立、管理和处理方法及动态业务系统,通过脚本灵活配置文件和成熟的应用系统整合进行的分布式计算和文件处理,从而可以高效和安全的实现应用系统中业务内容的修改。
[0008]本发明是通过下述技术方案来解决上述技术问题的:
[0009]本发明提供了一种动态业务建立方法,其特点是,所述动态业务建立方法包括以下步骤:
[0010]S11、建立一主函数和多个业务脚本;
[0011]S12、所述主函数中加入每个业务脚本的调用函数;
[0012]S13、所述主函数将每个调用函数关联一业务种类。
[0013]本发明通过为不同的业务种类关联不同的调用函数,从而将各个业务的处理运行分散到不同的脚本中,所以用户只需要通过对脚本进行修改就可以实现对业务处理的修改。[0014]其中本发明中所述主函数对外进行业务处理的函数接口,所述业务脚本包含了具体业务处理流程或内容的程序,通过所述业务脚本正确地处理业务。所述调用函数为在主函数中调用所述业务脚本的函数接口,也就是说,通过运行所述调用函数,能够指向需要处理的业务脚本。
[0015]本发明中基于所述调用函数对应脚本能够处理的业务种类将调用函数与所述业务种类关联链接,所以当主函数判断出需要处理的业务的类型时,能够通过调用函数调用对应于所述业务类型的业务脚本。
[0016]本发明中所述调用函数关联业务种类是指业务种类和所述调用函数之间存在链接等指向性的关联关系,所述调用函数和所述业务种类的关联关系可以是任意的形式,本发明并不限制其关联的形式。
[0017]较佳地,所述业务脚本为grooy脚本、javascript脚本、python脚本、ruby脚本或peri脚本等等。
[0018]本发明可以使用任意的脚本语言构成的脚本。上述grooy、javascript、python、ruby和peri均为现有的脚本语言,因此不再赘述。
[0019]较佳地,所述主函数和调用函数均为java函数、C函数或C++函数等。
[0020]其中所述java、C和C++均为现有的编程语言,所以这里不再赘述。
[0021]本发明还提供了一种动态业务管理方法,其特点是,所述动态业务管理方法使用如上所述的动态业务建立方法生成的动态业务,并包括以下步骤:
[0022]S21、查找与所述调用函数关联的业务脚本;
[0023]S22、通过文本编辑器修改所述业务脚本。
[0024]本发明中仅需要对脚本修改,就可以实现业务处理的修改,从而不再需要重新对整个主函数进行重新编译,从而克服了主函数的僵硬性。
[0025]本发明所述调用函数关联的业务脚本,是指作为业务脚本对外结构的调用函数和业务脚本之间的联系,其中所述调用函数和业务脚本的具体关联形式可以是任意的。
[0026]较佳地,所述步骤S22之后还包括步骤:
[0027]更新与所述业务脚本关联的调用函数。
[0028]其中修改所述业务脚本后,可能相应地修改所述主函数中调用函数的参数等数据,所以同样需要更新所述主函数中的调用函数的内容。
[0029]较佳地,所述步骤文本编辑器为WEB (互联网)编辑器。
[0030]本发明还提供了一种动态业务处理方法,其特点是,所述动态业务处理方法处理如上所述的动态业务建立方法和所述动态业务管理方法生成的动态业务,并包含以下步骤:
[0031]S31、所述主函数读入待处理的一业务的业务种类;
[0032]S32、通过与所述业务种类关联的调用函数调用业务脚本;
[0033]S33、通过一脚本解释器解释并执行所述调用函数调用的所述业务脚本。
[0034]本发明的动态业务在处理业务时均是通过外部脚本处理的,即每次处理业务时都是重新加载脚本,所以任何时刻所述主函数的业务处理都是采用最新地业务脚本处理的,实现了业务更新的即实现和便捷性。
[0035]本发明中所述脚本解释器为现有的任意的脚本语言生成的脚本的内容解释执行器,所以此处不再详细赘述。
[0036]较佳地,步骤S33之后还包括以下步骤:
[0037]S34、所述主函数反馈输出所述业务脚本的执行结果。
[0038]本发明中在业务脚本执行完所述业务后,还是通过主函数返回业务处理结果给外部调用所述主函数的程序、设备或线程等等。
[0039]本发明又提供了一种动态业务系统,其特点是,所述动态业务系统包括一服务器,所述服务器包括多个业务脚本、一脚本解释器和一主函数,所述动态业务系统使用如上所述的动态业务处理方法。
[0040]为了便于描述,本发明中将所述服务器按照功能划分为各种模块进行分别描述,所以在实施本发明时,可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0041]较佳地,所述服务器中还包括一数据库,所述业务脚本均存储于所述数据库。
[0042]优选地,所述服务器中还包括一文件系统,所述文件系统从所述数据库中加载所述业务脚本。
[0043]本发明通过文件系统来标准化对所述业务脚本的读取或修改等操作,也就是说,文件系统是对外的唯一的能够实现对数据库中脚本操作的接口。
[0044]优选地,所述文件系统为一 NFS系统(Network File System,网络文件系统)。
[0045]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0046]本发明的积极进步效果在于:
[0047]本发明的动态业务建立、管理和处理方法及动态业务系统,通过脚本灵活配置文件和成熟的应用系统整合进行的分布式计算和文件处理,也就是说,应用系统以加载脚本的方式进行分布计算。由于待解析的文件种类非常多,且频繁变化,为了减少系统发布次数,将解析文本文件的逻辑用脚本实现,然后将脚本以文本方式存储,从而无需重启应用系统,也无需发布核心系统下完成升级。
[0048]而且在这种方式下,用户只需要修改脚本即可以实现业务的修改,所以简化了业务的修改的流程。
【专利附图】
【附图说明】
[0049]图1为本发明的较佳实施例的动态业务系统的结构框图。
[0050]图2为本发明的较佳实施例的动态业务建立的流程图。
[0051]图3为本发明的较佳实施例的动态业务管理的流程图。
[0052]图4为本发明的较佳实施例的动态业务处理的流程图。
【具体实施方式】
[0053]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0054]本实施例的采用java语言构成的主函数动态加载groovy业务脚本进行分布计算。由于待解析的文件种类非常多,且频繁变化,为了减少系统发布次数,将解析文本文件的逻辑用groovy实现,然后将groovy业务脚本以文本方式存储,所以无需重启,也无需再重新编译主函数来完成升级。
[0055]具体地说,如图1所示,本实施例的动态业务系统包括一服务器1,其中所述服务器I包含一数据库11、一 NFS文件系统12、一脚本解释器13、一 java主函数14和一 WEB编辑器15。所述数据库11中包括多个groovy业务脚本(图中未显示)。所述服务器I中通过如图2所示的动态业务建立方法建立动态业务,具体建立流程如下所述:
[0056]步骤Sll,建立所述java主函数14和多个groovy业务脚本。其中所述groovy业务脚本均存储于所述数据库11中,所述NFS文件系统12用于从所述数据库11中加载所述groovy业务脚本。
[0057]步骤S12,所述java主函数14中加入每个groovy业务脚本的调用函数。也就是说,所述java主函数14具有访问所述groovy业务脚本的接口。
[0058]步骤S13,所述java主函数14将每个调用函数关联一业务种类。也就是说看,本实施例中将为各个实现不同业务的groovy业务脚本在java主函数14中明确地标注出其实际处理的业务的类型。
[0059]此外若所述业务脚本采用如javascript脚本、python脚本、ruby脚本或peri脚本等,所述主函数采用如C函数或C++函数等时,也可以同样使用上述流程建立动态业务。
[0060]在本实施例的服务器I中数据库11、NFS文件系统12、java主函数14和groovy业务脚本共同组成一动态业务后,当服务器I接收到处理业务的指令说数据时,通过如图4所示的动态业务处理的流程来实现业务的处理,其具体流程吐下所述:
[0061]步骤S31,所述java主函数14读入待处理的一业务的业务种类。
[0062]步骤S32,通过与所述业务种类关联的调用函数调用groovy业务脚本。也就是说,当java主函数14明确了待处理的业务的类型后,通过预先在java主函数14中明确标注了业务种类的调用函数来调用能够处理所述业务种类的groovy业务脚本。
[0063]步骤S33,所述调用函数通过所述脚本解释器13解释并执行所述groovy业务脚本。即所述调用函数通过NFS文件系统从所述数据库11中加载需要运行的groovy业务脚本,此后脚本解释器13解释并运行所述NFS文件系统加载的groovy业务脚本,因而实现了业务的处理。
[0064]步骤34,所述java主函数14反馈输出所述groovy业务脚本的执行结果。最后再所述groovy业务脚本执行完业务后,所述java主函数14将所述groovy业务脚本执行后的结果返回给其他的请求装置或线程等等。
[0065]当本实施例中某个groovy业务脚本处理的业务内容发生改变时,可以通过如图3所示的动态业务管理方法来实现业务的修改,其具体包括如下所述的流程:
[0066]步骤S21,查找与所述调用函数关联的所述groovy业务脚本。即用户通过调用函数确定需要修改的groovy业务脚本。
[0067]步骤S22,通过WEB编辑器15修改所述groovy业务脚本。也就是说,在NFS文件系统14从数据库11中加载所述groovy业务脚本,然后用户通过WEB编辑器15以编辑文本的方式修改所述groovy业务脚本的内容。
[0068]步骤S23,更新与所述groovy业务脚本关联的调用函数。由于可能相应地修改所述java主函数14中调用函数的参数等数据,所以需要更新所述java主函数14中的调用函数的内容。[0069]通过上述方式可以在不影响java主函数14的运行的情况下,修改业务的内容,例如一计算运费的业务脚本,由于运费经常发生变化,所以建立一个名为fee的groovy业务脚本文件,所述java主函数14需要计算运费的时候读取fee脚本文件到脚本解释器中运行,假如这个脚本文件中一公斤运费5元,当业务逻辑变化的时候,只需要修改这个脚本文件的逻辑改为前两公斤免费,之后每公斤3元等等,既可以实现业务内容的修改,而整个外部的java主函数14不用任何变化和发布,就可以实现业务中运费计算规则的变化了。
[0070]所以如上所述,本实施例的动态业务系统适合接入了大量的外部应用系统的应用平台,例如电信行业等的增值业务系统或银行的中间业务平台等,只要接入的合作伙伴越多,开展的业务越复杂,需求的变化越快,本实施例的优势便会愈明显。
[0071]通过以上的【具体实施方式】的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM(只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请的实施例或者实施例的某些部分所述的方法。
[0072]虽然以上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
【权利要求】
1.一种动态业务建立方法,其特征在于,所述动态业务建立方法包括以下步骤: 511、建立一主函数和多个业务脚本; 512、所述主函数中加入每个业务脚本的调用函数; 513、所述主函数将每个调用函数关联一业务种类。
2.如权利要求1所述的 动态业务建立方法,其特征在于,所述业务脚本为grooy脚本、javascript脚本、python脚本、ruby脚本或peri脚本。
3.如权利要求1所述的动态业务建立方法,其特征在于,所述主函数和调用函数均为java函数、C函数或C++函数。
4.一种动态业务管理方法,其特征在于,所述动态业务管理方法使用如权利要求1-3中任一项所述的动态业务建立方法生成的动态业务,并包括以下步骤: 521、查找与所述调用函数关联的业务脚本; 522、通过文本编辑器修改所述业务脚本。
5.如权利要求4所述的动态业务管理方法,其特征在于,所述步骤S22之后还包括步骤: 更新与所述业务脚本关联的所述调用函数。
6.如权利要求4或5所述的动态业务管理方法,其特征在于,所述文本编辑器为WEB编辑器。
7.一种动态业务处理方法,其特征在于,所述动态业务处理方法处理如权利要求1-3中任一项所述的动态业务建立方法和如权利要求4-6中任一项所述的动态业务管理方法生成的动态业务,并包含以下步骤: 531、所述主函数读入待处理的一业务的业务种类; 532、通过与所述业务种类关联的调用函数调用业务脚本; 533、通过一脚本解释器解释并执行所述调用函数调用的所述业务脚本。
8.如权利要求7所述的动态业务处理方法,其特征在于,步骤S33之后还包括以下步骤: 534、所述主函数反馈输出所述业务脚本的执行结果。
9.一种动态业务系统,其特征在于,所述动态业务系统包括一服务器,所述服务器包括多个业务脚本、一脚本解释器和一主函数,所述动态业务系统使用如权利要求7或8所述的动态业务处理方法。
10.如权利要求9所述的动态业务系统,其特征在于,所述服务器中还包括一数据库,所述业务脚本均存储于所述数据库。
11.如权利要求10所述的动态业务系统,其特征在于,所述服务器中还包括一文件系统,所述文件系统从所述数据库中加载所述业务脚本。
12.如权利要求11所述的动态业务系统,其特征在于,所述文件系统为一NFS系统。
【文档编号】G06F9/44GK103902270SQ201210581484
【公开日】2014年7月2日 申请日期:2012年12月27日 优先权日:2012年12月27日
【发明者】汪海涛 申请人:纽海信息技术(上海)有限公司