CN104657158B - 一种业务系统中业务处理的方法和装置 - Google Patents
一种业务系统中业务处理的方法和装置 Download PDFInfo
- Publication number
- CN104657158B CN104657158B CN201310590511.9A CN201310590511A CN104657158B CN 104657158 B CN104657158 B CN 104657158B CN 201310590511 A CN201310590511 A CN 201310590511A CN 104657158 B CN104657158 B CN 104657158B
- Authority
- CN
- China
- Prior art keywords
- parameter file
- version
- parameter
- file
- business
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种业务系统中业务处理的方法和装置。所述方法包括:所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。本发明可以避免参数文件的版本变更导致的业务异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
Description
技术领域
本发明涉及业务处理领域,特别是涉及一种业务系统中业务处理的方法,以及,一种业务系统中业务处理的装置。
背景技术
在当前很多应用系统中,开发满足各种新的业务需求,就必然涉及到各种新的业务参数、管理参数的变更,为了适应需求的变更,往往使用参数配置化的开发方式,而不是将参数/过程写死在应用程序中。参数的配置方式,可能多种多样,比如可以使用配置文件,可以使用数据库,也可以使用共享内存的方式。
同时,当前很多大型应用系统尤其是银行IT系统,需要维持全天24小时不间断运行,并不允许任意重启系统或者停止服务,即便是计划内的例行维护,每年也仅有有限的几次。由于社会的快速发展和商业竞争的激烈,应用系统的使用方往往不可能等待那屈指可数又遥遥无期的例行维护机会来投产新的应用或者修改现有业务的参数,甚至于在系统发生某些故障时,往往需要立即处理,以快速响应各种新的业务需求。
如此,就产生了在线更新在线维护并且及时生效的需求,为了使得参数能够及时生效,就要求应用程序在每次业务执行时,从参数配置地(文件、数据库或者共享内存等)获得参数。
目前,多采用参数刷新或修改方案解决上述问题,在进行参数修改时,刷新或覆盖原来的参数,从而可以实现新参数的快速在线更新。
以上背景技术中存在的问题是:在大型应用系统,尤其是大型IT系统中,往往会采用分工协作的方式,不同的程序实例完成业务的不同步骤,上述方案将会导致现有业务的后续步骤将会按照新版本执行,就有可能导致一个业务的不同步骤使用了不同的参数,由此可能由于版本变更导致了整个业务过程发生一些不可预知的错误,导致业务执行异常。
发明内容
本发明提供了一种业务系统中业务处理的方法和装置,以避免参数文件的版本变更导致的业务异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
本发明提供了一种业务系统中业务处理的方法,所述业务由多个插件程序依据参数文件先后进行处理,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息;
所述方法包括:
所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;
将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
优选地,所述方法还包括,所述节点通过如下步骤对所述预置的存储空间中的参数文件进行更新:
接收新版本的参数文件;
接收并执行文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述存储位置,并针对所述新版本的参数文件添加对应的使用状态;
接收所述节点成功执行所述装载指令后,发送的文件生效指令,并将所述使用状态更新为已启用;
记录所述预置的存储空间中最新版本的参数文件的版本信息。
优选地,所述业务系统包括多个处理业务的节点,以及对所述节点进行管理的主控节点,所述接收新版本的参数文件的步骤包括:
所述节点接收所述主控节点发送的版本查询请求,并返回使用状态为已启用的参数文件所包含的版本信息,所述参数文件包括用于处理所述业务参数信息以及标志所述参数文件版本的版本信息;接收所述主控节点确定返回的版本信息与本地保存的版本信息不一致后,发送的新版本的参数文件。
优选地,在将所述使用状态更新为已启用之前,所述方法还包括:
将所述新版本的参数文件与旧版本的参数文件进行比对。
优选地,若所述新版本的参数文件与旧版本的参数文件相比,增添了新的插件程序或新的节点对应的参数,则在将所述使用状态更新为已启用之前,所述方法还包括:
接收对所述插件程序或新的节点的启用指令,并启动增添的插件程序或节点;
若所述新版本的参数文件与旧版本的参数文件相比,删除了新的插件程序或新的节点对应的参数,则在将所述使用状态更新为已启用之前,所述方法还包括:
当所述文件生效指令中携带强制刷新选项,则停止请求删除的插件程序或节点;
当所述文件生效指令中不携带强制刷新选项,则生成删除插件程序或节点的提示信息,接收对插件程序或节点的删除信息,并删除相应的插件程序或节点。
优选地,所述预置的存储空间为所述业务系统的共享内存,所述版本查询请求在接收到文件刷新指令时发送,或在启动所述业务系统时发送。
优选地,所述方法还包括:
接收对至少一个版本的参数文件的回收指令,并删除在所述预置的存储空间中保存的请求回收的版本的参数文件。
优选地,所述方法还包括:
将所述预置的存储空间写入预置文件中作永久化保存,当某个版本的参数文件被回收或是装载失败时,将其在所述预置文件中对应的持久化文件删除。
本发明还提供了一种业务系统中业务处理的装置,所述业务由多个插件程序依据参数文件先后进行处理,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息;
所述装置包括:
版本确认模块,用于所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;
信息传递模块,用于将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
优选地,所述装置还包括参数文件更新模块,所述参数文件更新模块包括:
参数文件接收子模块,用于接收新版本的参数文件;
文件存储子模块,用于接收并执行发送的文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述存储位置,并针对所述新版本的参数文件添加对应的使用状态;
生效子模块,用于接收所述节点成功执行所述装载指令后,发送的文件生效指令,并将所述使用状态更新为已启用;
最新信息记录子模块,用于记录所述预置的存储空间中最新版本的参数文件的版本信息。
与背景技术相比,本发明包括以下优点:
依据本发明实施例,业务系统在预置的存储空间中,对应不同存储位置存储有多个版本的参数文件,并且记录有所述预置的存储空间中最新版本的参数文件的版本信息,在处理业务时首先判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件,并且在一个插件程序处理完成,下一个插件程序继续处理时,将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理,通过本发明实施例,每次修改生效时,均赋予新的参数文件一个新的版本号以和其他版本进行区别,实现了新版本参数的自动生效和切换,可以保存多个版本的参数文件。由于旧版本的参数也并未删除,从而可以使更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,则使用新版本的共享内存,在业务执行周期内,保持使用同一个版本的参数,避免由于版本变更导致了整个业务过程发生一些不可预知的错误以及业务执行异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
并且,本发明实施例还能够实现不再使用的参数版本的自动回收,以及通过热插拔插件动态增加/删除集群中的节点,还可以进行多版本参数文件的持久化处理,使在系统重启后继续执行业务处理过程。
附图说明
图1是本发明实施例所述一种业务系统中业务处理的方法的流程图;
图2是本发明实施例所述一种业务系统中业务处理的装置的结构框图;
图3是本发明实施例中多版本参数在共享内存的登记流程示意图;
图4是采用本发明实施例的方案进行业务处理的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
当前的应用系统需要实现对参数的快速在线更新,背景技术多采用参数刷新或修改方案,当参数配置只能有一个版本时,那么新版本的参数只能在现有配置中进行修改或增加,在进行参数修改时,刷新或覆盖原来的参数,而在大型IT系统中,往往会采用分工协作的方式,不同的程序实例完成业务的不同步骤。那么在当前参数版本上进行的修改,就有可能导致一个业务的不同步骤使用了不同的参数,由此可能由于版本变更导致了整个业务过程发生一些不可预知的错误。
为避免该问题,则有可能采用阻塞新业务的策略,并等待现有业务执行完毕再进行修改的方式,这种方式一方面可能会导致系统暂停服务,并在更新后出现一个短暂高峰,如果超过系统的设计容量,可能导致系统瘫痪;而另一方面,当现有业务是一个很大的事务,需要很长时间才能执行时,该处理方式的效果,还不如重启系统,从而与不间断运行,在线更新的需求相违背。
为避免该问题,还有可能采用预装载参数的策略,在等待一个空闲期(没有任何业务在处理)再进行更新。而这种方式的最大问题,就在于可能这个空闲期需要等很久甚至永远等不到,这不仅增加了运行维护的难度,而且与快速反应的需求违背。
有鉴于此,本发明提出一种业务系统中业务处理的机制,核心构思之一在于,在更新参数文件时,在预置的存储空间创建新的存储位置存储该参数文件,并标记该参数文件为启用状态,每次修改生效时,均赋予新的参数文件一个新的版本号以和其他版本进行区别,实现了新版本参数的自动生效和切换,由于旧版本的参数也并未删除,使更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,则使用新版本的共享内存。
参照图1,其示出了本发明实施例所述一种业务系统中业务处理的方法流程图。
步骤101、所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件。
本发明实施例中,所述业务由多个插件程序依据参数文件先后进行处理,业务系统用于对业务进行处理,例如,某公司自主版权的业务处理平台Starring,用于构建企业,特别是银行的各种前置应用。本发明实施例中,业务系统的节点也即是业务系统中处理业务的服务器,业务系统可以采用单个服务器,服务器上安装有一个或多个处理业务的插件实例(插件程序),业务系统也可以采用包括多个服务器的服务器集群来支撑业务的处理,各服务器上多个服务器中包括多个业务服务器以及对所述业务服务器进行管理的主控服务器,主控服务器也即是为主控节点。
本发明实施例中,所述参数文件包括用于处理所述业务参数信息以及标志所述参数文件版本的版本信息,参数信息包括业务参数和/或管理参数,业务参数是与业务有关的通信接口、服务、服务逻辑、通信格式、报文格式、数据元等内容,业务参数,例如使用业务系统的图形化开发工具ESBuilder开发的内容;管理参数是系统的部署的相关参数,系统部署与哪台或哪写机器(机器参数),各个插件的启动方式、每台机器部署几个实例、打开哪些日志等等与业务无关但是与运行环境有关的技术参数,例如使用业务系统Starring的图形化配置工具ESConf配置的内容。
由于参数经常会有更新,针对每次更新都给与参数文件文件一个新的版本信息(例如版本号)作为标识,例如在Starring中,每次从开发库导出定制或者配置信息(ESBuilder或者ESConf导出),开发/管理工具均会自动使用当前时间作为导出参数的版本号,该时间可以使用数据库时间。
本发明实施例中,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息。各个插件程序(插件实例)在发起新的业务时,先检查第一个插件程序在预置的存储空间中(共享内存)当前使用的参数版本是否为当前最新版本,如果不是则切换到最新版本,即断开旧版本的连接,连接最新版本,并更新本插件程序使用的版本),再进行业务的处理。
步骤102、将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
在处理业务时,标记当前业务插件程序使用的参数版本以便业务后续步骤能够继续按照该版本的参数执行,即对当前插件程序的处理业务结果添加处理时采用的参数文件的版本信息,下一个处理的插件程序在执行业务的后续处理时,可以根据上一步结果所携带的版本信息检查插件程序该插件程序当前使用的参数版本是否与上一个插件程序使用的版本相符,如果不相符则切换到业务使用的版本,再执行业务的后续处理,如果相同就直接执行业务的后续处理,从而保证业务执行的整个过程使用同一个版本的参数,如果业务使用的版本已经不存在,则当前业务失败。采用该版本的参数进行进一步的处理。
因此,采用本发明实施例,旧版本的参数也并未删除,从而可以使更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,则使用新版本的共享内存,在业务执行周期内,保持使用同一个版本的参数,避免由于版本变更导致了整个业务过程发生一些不可预知的错误以及业务执行异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
具体的,本发明实施例中,所述节点可以通过如下步骤对所述预置的存储空间中的参数文件进行更新:
步骤11、接收新版本的参数文件;
步骤12、接收并执行文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述存储位置,并针对所述新版本的参数文件添加对应的使用状态;
步骤13、接收所述节点成功执行所述装载指令后,发送的文件生效指令,并将所述使用状态更新为已启用;
步骤14、记录所述预置的存储空间中最新版本的参数文件的版本信息。
节点接收到提交的新版本参数文件后,在接收到装载指令后开始对参数文件进行装载,当业务系统采用服务器集群进行业务处理时,主控节点接收提交的新版本参数文件,然后主控节点会向管理的各个节点发送文件装载指令。
节点装载参数文件时,首先在预置的存储空间占用一个新的存储位置用于存储新版本的参数文件,并将新版本的文件存储在存储位置上,针对新版本的参数文件还进一步添加对应的使用状态,使用状态的初始值为未启用。其中,业务参数和管理参数均以相同的方式进行管理,只是使用不同的位置登记其状态而已。
在具体的实现中,可能会存在存储位置占用失败的情况,若占用失败,则说明当前在使用的版本数已经达到配置的上限,此时不允许再创建和使用新版本,即刷新失败(启动时当前配置文件首先被装载,因此不存在启动时占用位置失败的情况)。
检查所有节点反馈的信息,看是否有节点装载失败。若全部都成功,则向所有节点发布生效指令,各个节点接到指令后,将该版本共享内存状态改为已启用并将当前使用版本标记为该版本,并记录所述预置的存储空间中最新版本的参数文件的版本信息,通过本发明实施例,每次修改生效时,均赋予新的参数文件一个新的版本号以和其他版本进行区别,可以保存多个版本的参数文件,实现了新版本参数的自动生效和切换,新参数的快速在线更新。
在具体的实现中,若有节点失败,则向所有节点发布取消指令,各个节点接到指令后,将刚刚装载的版本的登记删除并删除该片共享内存。业务参数和管理参数,均使用相同的逻辑进行装载和生效,只是管理的指令会有区别。
当新版本被启用并标记为当前使用版本后(也称为最新版本),则新的业务即可使用该参数版本执行业务处理。
本发明实施例中,所述预置的存储空间可以为所述业务系统的共享内存。若占用成功,则各个节点装载到一片新创建的共享内存,并在刚刚占用的位置,登记该版本参数共享内存的状态(更新IPCID,使用状态为未启用)。由于共享内存的读取速度远远高于文件系统或者数据库,参数均装载于共享内存以提高系统的效率,业务参数和管理参数都会被预先装载到共享内存,使用者直接读取共享内存即可。
业务系统在运行共享内存(该片共享内存保存系统当前的运行状态)中,有两个数组分别用于存放参数信息对应的版本信息,版本信息可以包括版本号、使用状态信息以及寻址该版本的标识号(共享内存的IPCID)等信息中的一种或多种,同时,运行共享内存中还保存了当前最新版本是哪一个版本。使用到这些参数时,直接从共享内存中获取。使用者在初始化时就连接上共享内存,并一直保持与共享内存的连接状态。
在上述描述中,使用共享内存为前提的实现方案来描述本方案,但不代表该方案仅适用于适用共享内存存储参数的模式。
在具体的实现中,当所述业务系统包括多个处理业务的节点,以及对所述节点进行管理的主控节点时,所述接收新版本的参数文件的步骤包括:
步骤21、所述节点接收所述主控节点发送的版本查询请求,并返回使用状态为已启用的参数文件所包含的版本信息。步骤22、接收所述主控节点确定返回的版本信息与本地保存的版本信息不一致后,发送的新版本的参数文件。
步骤23、主控服务器确定与业务服务器的参数文件的版本信息不同时,会向业务服务器同步新的参数文件,即将新版本的参数文件发送到业务服务器。
若节点已保存有最新版的参数文件,则不需要对参数文件进行更新,因此,在更新参数文件时,需要确定节点是否存在最新版的参数文件,所述版本查询请求在所述主控节点收到文件刷新指令时发送,或在启动所述业务系统时发送,即,当启动系统,或者接到刷新指令时,主控节点将向集群中所有节点检查参数文件的版本是否与主控节点一致,如果不一致,则向所有节点同步主控节点的参数文件。
进一步优选地,本发明实施例中,在新参数装载进来后,业务系统要对新参数与当前参数进行比较,看是否有增加或者删除插件程序、节点的情况存在,实现热插拔插件,动态增加/删除集群中的节点。在将所述使用状态更新为已启用之前,所述方法还包括:
将所述新版本的参数文件与旧版本的参数文件进行比对。
若所述新版本的参数文件与旧版本的参数文件相比,当新参数中,增加了新的插件程序(以下简称插件)、增加了新的节点对应的参数时,在刷新之后,需要人工发起启动插件或者节点的指令来启动该插件或者节点,节点会接收到对所述插件程序或新的业务服务器的启用指令原因是插件、节点的启停是需要相关管理命令来执行启停的。则在将所述使用状态更新为已启用之前,所述方法还包括:
接收对所述插件程序或新的节点的启用指令,并启动增添的插件程序或节点。
若所述新版本的参数文件与旧版本的参数文件相比,删除了新的插件程序或新的节点对应的参数,需要进一步判断是否停止这些插件或是节点,则在将所述使用状态更新为已启用之前,所述方法还包括:
当所述文件生效指令中携带强制刷新选项,则停止请求删除的插件程序或节点;
当所述文件生效指令中不携带强制刷新选项,则生成删除插件程序或节点的提示信息,接收对插件程序或节点的删除信息,并删除相应的插件程序或节点。
当新参数中删除了插件或者节点时,如果刷新指令中带有强制刷新选项,则系统自动停止被删除的插件/节点,再启用新参数(对新版本的参数添加启用标记);如果未带强制刷新选项,则节点会与管理人员交互(采用服务器集群时,在主控节点进行交互),在管理界面生成删除插件程序或节点的提示信息,提醒新参数删除了哪些插件,哪些节点,要使新参数生效,将会停止这些节点、插件,并要求管理人员确认。如果管理人员通过管理界面确认,则节点会接收到对插件程序或节点的删除信息,自动停止这些被删除的节点和插件,再启用新参数,如果管理人员否认则取消新版本的刷新。
在具体的实现中,当被删除的插件或者节点均处于停止状态时,非强制刷新模式下,管理工具仍然会与管理人员交互进行提醒。
进一步优选地,本发明实施例中,还可以进行无效版本自动回收。所述方法还可以包括:
接收对至少一个版本的参数文件的回收指令,并删除在所述预置的存储空间中保存的请求回收的版本的参数文件。
当一个非当前版本的参数不再被使用也就是使用该版本参数的业务均已经结束时,该版本将可以被回收。当集群中所有节点上该版本均可以回收时,向所有节点发布回收该版本的指令,各个节点删除该版本参数的登记信息并删除该片参数共享内存。如果集群中只有一个节点,则只要该节点发现某个非当前版本可以回收,则直接进行回收处理,或者当对应旧版本参数的共享内存已经无业务在执行后,平台即自动将旧版本参数删除。
在具体的实现中,可以按照扫描间隔时间(ScanTime)进行自动回收处理,自动垃圾回收固定每隔一段时间进行垃圾扫描,发现有垃圾即进行回收,这个时间间隔可以通过配置工具配置,并可以实时刷新生效。
进一步优选地,本发明实施例中,还可以进行多版本参数文件的持久化处理,所述方法还可以包括:
将所述预置的存储空间写入预置文件中作永久化保存,当某个版本的参数文件被回收或是装载失败时,将其在所述预置文件中对应的持久化文件删除。
鉴于系统可以支持将一些业务暂存在数据库等系统中,在系统重启后继续执行,因此多版本的持久化设计也是必须的,否则重启系统后,暂存的业务将没有对应的参数版本来使用。因此,当启动时装载一个版本的参数或者运行时刷新一个新版本时,在装载成功后,会将共享内存写入到一个文件中做持久化保存,这样当系统重启时,仍然可以恢复这些版本。在具体的实现中,当一个版本启用失败或者被回收时,其持久化文件将会被删除。
为了使本领域技术人员更好地理解本发明实施例,以下通过两个流程图进行说明。
如图3所示,给出了多版本参数在共享内存的登记流程示意图,包括了运行共享内存中关于参数共享内存版本的登记数组,参数文件包括多个从业务参数1~业务参数n,分别对应着从版本1~版本N,其中还存储有关于当前最新版本的登记。
如图4所示,给出了采用本发明实施例的方案进行业务处理的示意图。
针对将要发起的新业务,执行以下步骤:
1.1、检查本实例(插件程序)使用的参数版本与当前最新版本是否一致。
1.2、若一致,则标记业务使用的参数版本,并继续执行业务的全部过程,直至结束。
1.3、若不一致,则将本实例使用的版本切换到当前最新版本,并标记业务使用的参数版本,并继续执行业务的全部过程,直至结束。
针对已经执行的业务,执行该业务的后续步骤时,包括以下步骤:
检查实例当前使用的参数版本与业务使用的版本是否一致
2.1、若一致,则标记业务使用的参数版本,并继续执行业务的全部过程,直至结束。
2.2、若不一致,则本实例使用的版本切换到当前最新版本,若切换成功,则标记业务使用的参数版本,并继续执行业务的全部过程,直至结束。
2.3、若切换不成功,则进行业务失败处理,表明业务失败。
依据本发明实施例,业务系统在预置的存储空间中,对应不同存储位置存储有多个版本的参数文件,并且记录有所述预置的存储空间中最新版本的参数文件的版本信息,在处理业务时首先判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件,并且在一个插件程序处理完成,下一个插件程序继续处理时,将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理,通过本发明实施例,每次修改生效时,均赋予新的参数文件一个新的版本号以和其他版本进行区别,实现了新版本参数的自动生效和切换,可以保存多个版本的参数文件。由于旧版本的参数也并未删除,从而可以使更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,则使用新版本的共享内存,在业务执行周期内,保持使用同一个版本的参数,避免由于版本变更导致了整个业务过程发生一些不可预知的错误以及业务执行异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
并且,本发明实施例还能够实现不再使用的参数版本的自动回收,以及通过热插拔插件动态增加/删除集群中的节点,还可以进行多版本参数文件的持久化处理,使在系统重启后继续执行业务处理过程。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
基于上述方法实施例的说明,本发明还提供了相应的业务系统中业务处理的装置实施例,来实现上述方法实施例所述的内容。
参照图2,其示出了本发明实施例所述一种业务系统中业务处理的装置结构框图,所述业务由多个插件程序依据参数文件先后进行处理,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息,所述装置包括:
版本确认模块201,用于所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;
信息传递模块202,用于将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
本发明实施例中,优选地,所述装置还包括参数文件更新模块,所述参数文件更新模块包括:
参数文件接收子模块,用于接收新版本的参数文件;
文件存储子模块,用于接收并执行发送的文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述存储位置,并针对所述新版本的参数文件添加对应的使用状态;
生效子模块,用于接收所述节点成功执行所述装载指令后,发送的文件生效指令,并将所述使用状态更新为已启用;
最新信息记录子模块,用于记录所述预置的存储空间中最新版本的参数文件的版本信息。
本发明实施例中,优选地,所述业务系统包括多个处理业务的节点,以及对所述节点进行管理的主控节点,所述参数文件接收子模块包括:
查询信息返回子单元,用于所述节点接收所述主控节点发送的版本查询请求,并返回使用状态为已启用的参数文件所包含的版本信息,所述参数文件包括用于处理所述业务参数信息以及标志所述参数文件版本的版本信息;
参数文件接收子单元,用于接收所述主控节点确定返回的版本信息与本地保存的版本信息不一致后,发送的新版本的参数文件。
本发明实施例中,优选地,在将所述使用状态更新为已启用之前,所述装置还包括:
版本比对模块,用于将所述新版本的参数文件与旧版本的参数文件进行比对,若所述新版本的参数文件与旧版本的参数文件相比,增添了新的插件程序或新的节点对应的参数,则在将所述使用状态更新为已启用之前,执行增添启动模块,若所述新版本的参数文件与旧版本的参数文件相比,删除了新的插件程序或新的节点对应的参数,则执行选项判断模块。
增添启动模块,用于接收对所述插件程序或新的节点的启用指令,并启动增添的插件程序或节点;
选项判断模块,用于判断所述文件生效指令中是否携带强制刷新选项,若是,则执行第一删除模块,若否,则执行第二删除模块。
第一删除模块,用于停止删除的插件程序或节点;
第二删除模块,用于生成删除插件程序或节点的提示信息,接收对插件程序或节点的删除信息,并删除相应的插件程序或节点。
本发明实施例中,优选地,所述预置的存储空间为所述业务系统的共享内存。
本发明实施例中,优选地,所述版本查询请求在接收到文件刷新指令时发送,或在启动所述业务系统时发送。
本发明实施例中,优选地,所述装置还包括:
回收模块,用于接收对至少一个版本的参数文件的回收指令,并删除在所述预置的存储空间中保存的请求回收的版本的参数文件。
本发明实施例中,优选地,所述装置还包括:
永久化模块,用于将所述预置的存储空间写入预置文件中作永久化保存,当某个版本的参数文件被回收或是装载失败时,将其在所述预置文件中对应的持久化文件删除。
依据本发明实施例,业务系统在预置的存储空间中,对应不同存储位置存储有多个版本的参数文件,并且记录有所述预置的存储空间中最新版本的参数文件的版本信息,在处理业务时首先判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件,并且在一个插件程序处理完成,下一个插件程序继续处理时,将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理,通过本发明实施例,每次修改生效时,均赋予新的参数文件一个新的版本号以和其他版本进行区别,实现了新版本参数的自动生效和切换,可以保存多个版本的参数文件。由于旧版本的参数也并未删除,从而可以使更新之前已经产生的业务使用旧版本的共享内存,而更新之后产生的新业务,则使用新版本的共享内存,在业务执行周期内,保持使用同一个版本的参数,避免由于版本变更导致了整个业务过程发生一些不可预知的错误以及业务执行异常,利于新业务系统的快速投产以及新旧系统的无缝衔接。
并且,本发明实施例还能够实现不再使用的参数版本的自动回收,以及通过热插拔插件动态增加/删除集群中的节点,还可以进行多版本参数文件的持久化处理,使在系统重启后继续执行业务处理过程。
对于上述业务系统中业务处理的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上对本发明所提供的一种业务系统中业务处理的方法和业务系统中参数更新的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种业务系统中业务处理的方法,其特征在于,所述业务由多个插件程序依据参数文件先后进行处理,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息;
所述方法包括:
所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;
将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
2.根据权利要求1所述的方法,其特征在于,还包括,所述节点通过如下步骤对所述预置的存储空间中的参数文件进行更新:
接收新版本的参数文件;
接收并执行文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述新版本的参数文件的存储位置,并针对所述新版本的参数文件添加对应的使用状态;
接收所述节点成功执行所述装载指令后,发布生效指令,并将所述使用状态更新为已启用;
记录所述预置的存储空间中最新版本的参数文件的版本信息。
3.根据权利要求2所述的方法,其特征在于,所述业务系统包括多个处理业务的节点,以及对所述节点进行管理的主控节点,所述接收新版本的参数文件的步骤包括:
所述处理业务的节点接收所述主控节点发送的版本查询请求,并返回使用状态为已启用的参数文件所包含的版本信息,所述最新版本的参数文件包括用于处理所述业务参数信息以及标志所述参数文件版本的版本信息;接收所述主控节点确定返回的版本信息与本地保存的版本信息不一致后,发送的新版本的参数文件。
4.根据权利要求1所述的方法,其特征在于,在将所述使用状态更新为已启用之前,所述方法还包括:
将所述新版本的参数文件与旧版本的参数文件进行比对。
5.根据权利要求4所述的方法,其特征在于,若所述新版本的参数文件与旧版本的参数文件相比,增添了新的插件程序或新的节点对应的参数,则在将所述使用状态更新为已启用之前,所述方法还包括:
接收对所述插件程序或新的节点的启用指令,并启动增添的插件程序或节点;
若所述新版本的参数文件与旧版本的参数文件相比,删除了新的插件程序或新的节点对应的参数,则在将所述使用状态更新为已启用之前,所述方法还包括:
当所述文件生效指令中携带强制刷新选项,则停止请求删除的插件程序或节点;
当所述文件生效指令中不携带强制刷新选项,则生成删除插件程序或节点的提示信息,接收对插件程序或节点的删除信息,并删除相应的插件程序或节点。
6.根据权利要求1所述的方法,其特征在于,所述预置的存储空间为所述业务系统的共享内存,所述版本查询请求在接收到文件刷新指令时发送,或在启动所述业务系统时发送。
7.根据权利要求1所述的方法,其特征在于,还包括:
接收对至少一个版本的参数文件的回收指令,并删除在所述预置的存储空间中保存的请求回收的版本的参数文件。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述预置的存储空间写入预置文件中作永久化保存,当某个版本的参数文件被回收或是装载失败时,将其在所述预置文件中对应的持久化文件删除。
9.一种业务系统中业务处理的装置,其特征在于,所述业务由多个插件程序依据参数文件先后进行处理,所述业务系统在预置的存储空间中存储有多个版本的参数文件,不同版本的参数文件在预置的存储空间中对应不同存储位置,所述业务系统中记录有所述预置的存储空间中最新版本的参数文件的版本信息;
所述装置包括:
版本确认模块,用于所述业务系统中用于处理业务的节点判断处理业务的第一个插件程序当前使用的参数文件为最新版本的参数文件,若否,则更新为最新版本的参数文件;
信息传递模块,用于将前一个插件程序的处理结果添加处理时采用的参数文件的版本信息,在下一个插件程序处理业务时,按照接收到的所述处理结果携带的版本信息对应的参数文件进行处理,以使同一业务的处理过程中,按照同一版本的参数文件进行处理。
10.根据权利要求9所述的装置,其特征在于,还包括参数文件更新模块,所述参数文件更新模块包括:
参数文件接收子模块,用于接收新版本的参数文件;
文件存储子模块,用于接收并执行发送的文件装载指令,在预置的存储空间中占用用于存储所述新版本的参数文件的存储位置,将所述新版本的参数文件存储在所述新版本的参数文件的存储位置,并针对所述新版本的参数文件添加对应的使用状态;
生效子模块,用于接收所述节点成功执行所述装载指令后,发布生效指令,并将所述使用状态更新为已启用;
最新信息记录子模块,用于记录所述预置的存储空间中最新版本的参数文件的版本信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310590511.9A CN104657158B (zh) | 2013-11-20 | 2013-11-20 | 一种业务系统中业务处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310590511.9A CN104657158B (zh) | 2013-11-20 | 2013-11-20 | 一种业务系统中业务处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657158A CN104657158A (zh) | 2015-05-27 |
CN104657158B true CN104657158B (zh) | 2018-02-23 |
Family
ID=53248342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310590511.9A Active CN104657158B (zh) | 2013-11-20 | 2013-11-20 | 一种业务系统中业务处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657158B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180036A (zh) * | 2016-03-09 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种数据读取方法和装置 |
US11068251B2 (en) * | 2016-04-04 | 2021-07-20 | Lumenradio Ab | Method for distributing software upgrade in a communication network |
CN109408134B (zh) * | 2017-08-16 | 2022-04-08 | 阿里巴巴集团控股有限公司 | 模型文件的处理方法、装置、系统以及处理设备 |
CN108197139A (zh) * | 2017-11-22 | 2018-06-22 | 链家网(北京)科技有限公司 | 一种同步更新配置项的处理方法及终端 |
CN109933413A (zh) * | 2017-12-15 | 2019-06-25 | 北京嘀嘀无限科技发展有限公司 | 业务实现方法及装置、电子设备、存储介质 |
CN108196879A (zh) * | 2018-01-09 | 2018-06-22 | 平安科技(深圳)有限公司 | 业务处理方法、装置、设备及计算机可读存储介质 |
CN109918342A (zh) * | 2019-03-06 | 2019-06-21 | 珠海金山网络游戏科技有限公司 | 一种文件系统 |
CN110298031B (zh) * | 2019-05-28 | 2023-07-18 | 北京百度网讯科技有限公司 | 一种词典服务系统及模型版本一致性配送方法 |
CN111538519A (zh) * | 2020-04-30 | 2020-08-14 | 深圳前海微众银行股份有限公司 | 一种版本升级方法及装置 |
CN112130924B (zh) * | 2020-08-18 | 2022-08-12 | 贝壳技术有限公司 | 应用系统数据解析方法及装置 |
CN116521622B (zh) * | 2023-06-30 | 2023-09-22 | 中邮消费金融有限公司 | 一种基于数据快照自动化管理数据的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411508A (zh) * | 2011-10-27 | 2012-04-11 | 深圳市茁壮网络股份有限公司 | 插件管理方法、插件控制器及插件管理器和机顶盒 |
CN102880456A (zh) * | 2012-07-31 | 2013-01-16 | 北京奇虎科技有限公司 | 一种创建插件方法及装置 |
CN103353846A (zh) * | 2013-06-28 | 2013-10-16 | 四川农业大学 | 一种项目自动部署插件 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661420B2 (en) * | 2004-08-03 | 2014-02-25 | Oracle International Corporation | System and method for runtime interface versioning |
-
2013
- 2013-11-20 CN CN201310590511.9A patent/CN104657158B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411508A (zh) * | 2011-10-27 | 2012-04-11 | 深圳市茁壮网络股份有限公司 | 插件管理方法、插件控制器及插件管理器和机顶盒 |
CN102880456A (zh) * | 2012-07-31 | 2013-01-16 | 北京奇虎科技有限公司 | 一种创建插件方法及装置 |
CN103353846A (zh) * | 2013-06-28 | 2013-10-16 | 四川农业大学 | 一种项目自动部署插件 |
Also Published As
Publication number | Publication date |
---|---|
CN104657158A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657158B (zh) | 一种业务系统中业务处理的方法和装置 | |
CN100485676C (zh) | 文件系统串行化重新初始化装置、方法和系统 | |
KR102072726B1 (ko) | 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들 | |
CN101046821B (zh) | 通用数据库操纵器 | |
CN102306197B (zh) | 保证跨数据源操作结果一致性的装置和方法 | |
CN102057355B (zh) | 同步虚拟机和应用程序生存周期 | |
CN109923534A (zh) | 对具有未提交事务的数据库记录的多版本并发控制 | |
EP2825958B1 (en) | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls | |
CN103703464B (zh) | 用于分布式配置管理的方法及装置 | |
US20130246379A1 (en) | System and method for supporting application interoperation in a transactional middleware environment | |
US20090112939A1 (en) | Linking framework for information technology management | |
CN107426265A (zh) | 数据一致性同步的方法及设备 | |
CN107273440A (zh) | 计算机应用、数据存储方法、微服务和微数据库 | |
CN107102916A (zh) | 在服务的次要位置重放作业 | |
CN103198122B (zh) | 重启内存数据库的方法和装置 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN109643310A (zh) | 用于数据库中数据重分布的系统和方法 | |
CN108431807A (zh) | 分区数据存储空间中结构化数据记录的复制 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN103827832A (zh) | 用于在事务中间件机器环境中持久化事务记录的系统与方法 | |
CN108431808A (zh) | 对分区的数据存储空间当中的结构化数据记录的提醒处理 | |
CN107438829A (zh) | 分区内存数据集的重做日志记录 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
KR20140047448A (ko) | 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 | |
WO2022242372A1 (zh) | 对象处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |