CN101727648B - 服务系统中的超时控制方法及服务系统 - Google Patents
服务系统中的超时控制方法及服务系统 Download PDFInfo
- Publication number
- CN101727648B CN101727648B CN2009102045576A CN200910204557A CN101727648B CN 101727648 B CN101727648 B CN 101727648B CN 2009102045576 A CN2009102045576 A CN 2009102045576A CN 200910204557 A CN200910204557 A CN 200910204557A CN 101727648 B CN101727648 B CN 101727648B
- Authority
- CN
- China
- Prior art keywords
- overtime
- control link
- standard
- time control
- time
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务系统中的超时控制方法,通过设置在服务系统核心平台处理接入业务的各个时控环节的代理模块将各个时控环节对应的超时控制信息登记在超时管理模块中,根据所述超时控制信息和服务系统将经过处理的接入业务通讯接出时的当前服务系统时间计算各个时控环节对应的实际超时标准并根据超时控制策略选取交易超时标准,最后根据所述选取的交易超时标准对所述通讯接出进行超时控制。相应地,本发明还公开了一种应用所述超时控制方法的服务系统,将超时控制延伸至系统应用层并在应用层实现了细粒度的超时控制,能满足服务系统对不同应用场景接入业务的时控需求,保护了服务系统及前端系统资源并提高了服务系统用户的体验。
Description
技术领域
本发明涉及银行数据处理领域,更为具体地,本发明涉及一种服务系统中的超时控制方法及服务系统。
背景技术
金融、电信等行业的服务系统负载着大量并发的联机事务的处理,这些联机事务处理的每笔业务的信息量较小,而且具有一定的实时性,对时间的要求非常严格。因此,需要对服务系统进行超时控制以满足实时性要求。例如:在阻塞时间比较长的环节上实施超时控制,这些阻塞时间比较长的环节可能是和远程数据库的连接,也可能是网络下载,在这些环节超时后,往往需要进行一些操作,比如:抛出超时控制异常,或者重新执行,达到客户端快速响应、服务器端稳定可靠的效果。
现有超时控制使用通讯协议和中间件提供的超时控制功能来设置超时标准,利用所设置的超时标准对通讯接入和/或通讯接出进行超时控制:在所设置的超时标准内通讯正常接入和/或通讯正常接出,则进行通讯正常接入和/或通讯正常接出的后续处理,若在所设置的超时标准内通讯接入和/或通讯接出超时则进行超时控制异常处理,比如抛出超时控制异常。例如,目前通讯接入的超时控制主要是在TUXEDO(Transaction for UNIX has been Extendedfor Distributed Operation,分布式操作扩展之后的UNIX事务系统)接入模块实现的,TUXEDO接入模块的功能是将TUXEDO接入的报文通过传输控制协议(Transmission Control Protocol,TCP)转发给服务系统核心平台,对通讯接入的超时控制是用来解决TCP通讯转发的超时问题。现有的超时控制技术中,由于底层通讯协议和中间件并不涉及具体应用,不能在各个环节进行超时控制,控制粒度比较粗,使得服务系统的服务质量和用户的体验差。
发明内容
本发明提供了一种服务系统中的超时控制方法及一种服务系统,可以根据对应于应用层各个时控环节的超时配置标准进行超时控制,是一种细粒度的超时控制。
根据本发明的第一方面,本发明提供了一种服务系统中的超时控制方法,所述方法包括:
a.将服务系统核心平台处理接入业务的各个时控环节对应的超时控制信息分别登记在超时管理模块中;
b.当服务系统核心平台处理完接入业务,通讯接出时,所述超时管理模块根据所述超时控制信息和当前服务系统时间计算所述各个时控环节对应的实际超时标准;
c.所述超时管理模块根据配置的超时控制策略选取所述实际超时标准之一作为交易超时标准;
d.根据所述交易超时标准对所述接入业务的通讯接出进行超时控制。
根据本发明的第二方面,本发明提供了一种服务系统,所述系统包括:
业务接入模块,用于接入待处理的业务,所述业务称为接入业务;
服务系统核心平台,用于处理业务接入模块接入的接入业务;
一个或多个代理模块,所述代理模块与服务系统核心平台处理接入业务的各个时控环节一一对应,用于将各个时控环节对应的超时控制信息登记到超时管理模块中;
超时管理模块,用于根据所述代理模块登记的超时控制信息和通讯接出时的当前服务系统时间计算各个时控环节对应的实际超时标准,并根据配置的超时控制策略选取所述实际超时标准之一作为交易超时标准;
业务接出模块,用于将经过服务系统核心平台处理的接入业务通讯接出,并根据所述交易超时标准对所述通讯接出进行超时控制。
实施本发明提供的一种服务系统中的超时控制方法及一种服务系统,通过登记各个时控环节对应的超时控制信息、依据所述超时控制信息计算实际超时标准、根据超时控制策略从所述实际超时标准中选取交易超时标准并根据所述交易超时标准对通讯接出进行超时控制,超时控制细化至应用层各个时控环节,实现了在服务系统应用层细粒度的超时控制。超时控制的粒度细化提高了超时控制的精度,能满足服务系统对不同应用场景接入业务的时控需求;细粒度的超时控制避免了交易超时对系统资源(包括通讯资源、内存资源和线程资源等)的长时间占用,保护了服务系统资源,防止了其他交易无法执行甚至宕机等严重故障的发生;同时,前端系统也无需长时间等待服务系统的响应,因而间接保护了前端系统资源;细粒度的超时控制能整体上提高服务系统处理用户业务的速度、提高了服务系统的服务质量和用户的体验。
附图说明
图1是本发明的一种服务系统中的超时控制方法的流程图;
图2是图1中步骤S400的流程图;
图3是图1中步骤S100的流程图;
图4是对接入业务通讯接入服务系统核心平台时进行超时控制的流程示意图;
图5是本发明的一种服务系统的示意图;
图6是图5中的代理模块的组成示意图;
图7是图5中的超时管理模块530的组成示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明进一步地详细描述。
在具体描述之前,需要说明的是,在本发明实施例中,服务系统核心平台对接入业务的处理包括若干处理环节,系统通过整个业务处理流程的总控模块(例如,调度处理模块)来调度其他业务模块对接入业务在各个处理环节依次处理,例如,服务系统需要对接入业务依次在渠道处理环节、交易处理环节、服务处理环节、服务系统处理环节和基础服务处理环节进行处理,那么调度处理模块将依次调用渠道处理模块、交易处理模块、服务处理模块、服务系统处理模块和基础服务处理模块对接入业务进行处理。这些处理环节可以分为非时控环节和时控环节:在非时控环节,不对接入业务在该处理环节的处理实施本发明所述的超时控制,也即在非时控环节不进行超时控制信息的登记等动作;时控环节是根据需要对接入业务在该处理环节的处理实施本发明所述的超时控制的处理环节。同时,在上述的各个处理环节中,有些处理环节可能会比较简单,而且在一个交易处理过程只会被执行一次;有些处理环节可能会比较复杂,这些处理环节支持流程定义,可以顺序、循环、分支、嵌套和执行多个处理,例如,所述的服务处理环节可以实现对接入业务完成复杂度较高的核心处理。
图1是本发明的一种服务系统中的超时控制方法的流程图。由图1可知,所述方法至少包括:
S100,将服务系统核心平台处理接入业务的各个时控环节对应的超时控制信息分别登记在超时管理模块中。具体而言,服务系统核心平台处理接入业务的主线程执行到每一个时控环节时,都会将该时控环节对应的超时控制信息登记在超时管理模块中。
所述超时控制信息包括:当前线程标识、所述时控环节处理接入业务的开始时间、所述时控环节对应的超时配置标准、接入业务在所述时控环节对应的超时配置标准索引信息。其中,接入业务在所述时控环节对应的超时配置标准索引信息又可以为接入业务在所述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息。
其中,当前线程代表一个正在执行的交易,而当前线程标识则作为正在执行交易的唯一标识,当前线程标识可以是当前线程名,例如,可以通过JDK(Java Development Kit,Java开发工具包)提供的API(Application ProgrammingInterface,应用程序接口)获得当前线程,从当前线程中可以获取当前线程名;
所述时控环节处理接入业务的开始时间是所述时控环节开始处理接入业务时的服务系统时间;
所述时控环节对应的应用要素信息预先保存在线程上下文中,可从线程上下文中获取;服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息可以从当前交易路径信息获取;
所述超时配置标准定义在配置文件中,服务系统可以通过装载器(例如超时标准装载单元)将配置文件装载成对象以供服务系统获取超时配置标准。
S200,当服务系统核心平台按照各个环节处理完接入业务,通讯接出时,所述超时管理模块根据所述超时控制信息和当前服务系统时间计算所述各个时控环节对应的实际超时标准。
S300,所述超时管理模块根据配置的超时控制策略选取所述实际超时标准之一作为交易超时控制标准。
超时控制策略配置在超时管理模块中,同时超时控制策略也可以通过代码接口来扩展。通过执行超时控制策略的算法选取所述实际超时标准之一作为交易超时标准。例如,默认的超时控制策略是最小超时策略,即:选取各环节实际超时标准中时间值最小的实际超时标准作为该笔交易的交易超时标准。
S400,根据所述交易超时标准对所述接入业务的通讯接出进行超时控制。在选取交易超时标准之后,业务接出模块从超时管理模块中取所述交易超时标准,根据所述交易超时标准调用通讯接出适配器进行通讯接出并对通讯接出进行超时控制。
具体而言,如图2所示,步骤S400具体包括:
S4001,通讯接出的主线程记录通讯接出起始时间戳;
S4002,通讯接出模块启动子线程进行通讯接出,同时所述主线程进入等待;
S4003,子线程返回唤醒主线程,主线程记录当前时间戳;
S4004,判断当前时间戳减去通讯接出起始时间戳的时间是否小于所述交易超时标准,
当判断为是,则执行步骤S4005,否则执行步骤S4006:
S4005,主线程进入通讯接出后的处理环节,比如接受后台服务系统的处理等;
S4006,服务系统进行通讯接出超时处理。例如,服务系统抛出超时控制异常,可以认为超时控制中的超时也属于一种异常情况,利用“异常”这一种JAVA提供的异常类(Exception)来进行通讯接出超时处理。抛出超时控制异常后,后续处理可以交给异常处理模块进行统一的异常处理,比如:修改服务状态为失败,组织错误报文返回给渠道系统等。异常处理模块会进行通用异常处理,能处理所有异常(所有异常包括:超时异常、打拆包异常、通讯异常和加解密异常等)。
在本发明提供的一个实施例中,步骤S100是通过分别设置在所述时控环节的各个代理模块提供的代理服务实现的,各个时控环节分别与各个代理模块一一对应。各个处理环节对应的功能模块都是组件,被容器统一管理,系统启动时,需要对所有组件进行装载并注册到容器中,其中,组件装载器负责管理具体组件的装载过程。在代理模块的实现上,可以利用名称为“超时装载器”的组件装载器在系统启动时负责为各个时控环节装载需要超时控制的组件,并且为这些组件添加超时代理,并运用了设计模式中的装饰模式(Decorator),通过代理模块将原有功能模块进行装饰,为原有功能模块添加超时登记的功能。由于运用了设计模式中的装饰模式(Decorator),因而不需要对原有应用模块进行修改,使具体业务功能和其他管理控制功能(比如超时控制等)分离。代理模块将与之对应的时控环节的超时控制信息登记到超时管理模块中的具体步骤参照图3进行说明。
图3是图1中步骤S100的流程图。如图3所示,步骤S100具体包括:
S1001,获取当前线程标识、所述时控环节处理接入业务的开始时间(也即此时的服务系统时间)和接入业务在所述时控环节对应的超时配置标准索引信息;
S1002,根据所述接入业务在所述时控环节对应的超时配置标准索引信息获取接入业务在所述时控环节对应的超时配置标准;
S1003,所述代理模块将当前线程标识、所述时控环节处理接入业务的开始时间、接入业务在所述时控环节对应的超时配置标准索引信息和接入业务在所述时控环节对应的超时配置标准和作为一条记录登记到所述超时管理模块中。
其中,在该条记录中,所述时控环节处理接入业务的开始时间、接入业务在所述时控环节对应的超时配置标准索引信息和接入业务在所述时控环节对应的超时配置标准都与当前线程标识对应。
在本发明提供的一个实施例中,步骤S100之前还包括对接入业务通讯接入所述服务系统核心平台时进行超时控制的步骤,下面结合图4详细说明。
如图4所示,对接入业务通讯接入所述服务系统核心平台时进行超时控制的步骤的包括:
S5001,接入模块获取配置的通讯接入超时标准;
S5002,接入模块记录开始通讯接入的时间戳并调用通讯接入适配器进行接入业务的通讯接入,同时接入模块监听所述服务系统核心平台返回的通讯接入反馈;
S5003,监听在所述通讯接入超时标准内是否监听到所述反馈,
当在所述通讯接入超时标准内监听到所述反馈时,执行步骤S5004,否则执行步骤S5005,
S5004,进行通讯正常接入后处理,例如调度等;
S5005,服务系统抛出超时控制异常。
对接入业务通讯接入所述服务系统核心平台时进行超时控制的步骤的超时控制粒度比较粗,主要是在通讯层实现超时控制,其主要目的是为了解决TCP通讯转发的超时问题。
在本发明计算所述各个时控环节对应的实际超时标准的步骤S200中,所述超时控制信息中接入业务在所述时控环节对应的超时配置标准可以只是时控环节超时标准也可以包括时控环节超时标准和业务超时标准,其中,在同一个时控环节,不同应用场景下的接入业务对应同一个时控环节超时标准;而在同一个时控环节,不同的应用场景下的接入业务根据不同的接入业务的应用类型信息对应不同的业务超时标准。
服务系统核心平台处理完接入业务,通讯接出时,超时管理模块获取当前服务系统时间,并根据所述在超时管理模块中登记的所述每个时控环节对应的超时控制信息,按照超时配置标准包含信息的不同,分别按如下方式处理:
根据本发明的一种实施方式,当与所述时控环节对应的超时配置标准索引信息对应的超时配置标准只是时控环节超时标准,则将所述时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准。其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
根据本发明的另一种实施方式,当与所述时控环节对应的超时配置标准索引信息对应的超时配置标准包括时控环节超时标准和业务超时标准,则所述时控环节对应的实际超时标准的计算按下述方式进行:
比较所述时控环节超时标准和业务超时标准的大小,当所述业务超时标准大于所述时控环节超时标准,则将所述时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准;
当所述业务超时标准小于所述时控环节超时标准,则将所述业务超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准。
其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
关于步骤S300,在本发明提供的一个实施例中,执行最小超时策略,选取各环节实际超时标准时间值最小的实际超时标准作为该笔交易的交易超时标准是通过依次比较各个计算得出的实际超时标准获得的,下面具体说明:
根据时控环节1对应的超时控制信息,计算得到时控环节1对应的实际超时标准TO1,将TO1存储为交易超时标准;
根据时控环节2对应的超时控制信息,计算得到时控环节2对应的实际超时标准TO2,比较TO1与TO2的大小:
若TO2小于TO1,则将TO2替换TO1存储为交易超时标准;否则,维持TO1存储为交易超时标准的状态不变。
按上述规则,依次计算所有剩余时控环节(时控环节3、......、时控环节n,n代表时控环节的最大编号)对应的实际超时标准,直到得到最后的时控环节时控环节n对应的实际超时标准TOn,每计算得到一个新的实际超时标准,都将该新的实际超时标准与前一个时控环节中存储为交易超时标准的时间值比较大小,根据比较结果,确定是否将新计算出的实际超时标准标储存为交易超时标准,如此,最后存储的实际超时标准即为接入业务的交易超时标准。
需要说明的是,配置在所述超时控制模块的超时控制策略支持扩展,可由开发人员定制实现其他不同的超时控制策略。例如,可以根据业务需求采用最大超时策略,即:选取各环节实际超时标准中时间值最大的实际超时标准作为该笔交易的交易超时标准;同样,还可以采用平均超时策略,即:选取各环节实际超时标准时间值的平均值作为该笔交易的交易超时标准。
在本发明的一种服务系统的超时控制方法的上述任意一个实施例中,在服务系统运行过程中都可以通过管理命令修改配置的超时配置标准,修改后的超时配置生效成为新的超时配置标准。
本发明中的超时配置标准定义在超时配置文件中,下面是本发明中的超时配置文件样例:
<?xml version=″1.0″encoding=″GB2312″?>
<!--超时配置,其中switch作为超时控制的总开关,on打开,off关闭,timeout表示当无配置时的默认值,单位为秒-->
<timeout-config switch=″on″timeout=″60″>
<!--下面的timeout为必配属性,单位为秒,表示最大超时时间。如果为″0″或″″表示始终超时即挡住交易-->
<!--渠道和交易的超时配置-->
<channel name=″AAAAAA″timeout=″60″>
<tran name=″BBBBBB″timeout=″70″/>
</channel>
<!--服务和原子服务的超时配置-->
<service name=″CCCCCC″timeout=″20″/>
<!--服务系统和基础服务的超时配置-->
<server name=″DDDDDD″timeout=″60″>
<base-service name=″EEEEEEE″timeout=″40″/-->
</server>
</timeout-config>
其中的各个配置字段,如“channel name”、“tran name”、“service name”和“timeout”都可以在服务系统运行期间通过管理命令修改,修改后的配置文件通过执行配置实例生效。也可以看到,在超时配置文件中可以设置超时控制总开关(switch)及其状态,如果超时控制总开关为开(on),就表示超时控制生效,所有配置和控制都起作用;如果总开关为关(off),就表示超时控制不生效,即不进行超时控制。
通过实施本发明提供的一种服务系统中的超时控制方法,通过登记各个时控环节对应的超时控制信息、根据所述超时控制信息计算实际超时标准、按照超时控制策略选取交易超时标准并根据所述交易超时标准对通讯接出进行超时控制,实现了在服务系统应用层细粒度的超时控制。同时能灵活配置超时控制策略和超时配置标准,满足了服务系统对不同应用场景接入业务的时控需求,提高了服务系统用户的体验。
根据本发明的另一方面,本发明提供了一种使用所述超时控制技术的服务系统,下面结合图5至图7对此详细说明。
图5是本发明的一种服务系统的示意图,如图5所示,所述服务系统包括:业务接入模块510、服务系统核心平台520、一个或多个代理模块(如图所示的代理模块1-代理模块n),超时管理模块530和业务接出模块540,具体而言:
业务接入模块510,用于接入待处理的业务,所述业务称为接入业务。例如,业务接入模块510接收TUXEDO接入请求,并通过TCP协议将请求报文转发给服务系统核心平台520处理。所述业务接入模块510能接入各种业务场景下的业务;
服务系统核心平台520,用于处理业务接入模块510接入的接入业务,接入业务在服务系统核心平台520中通过若干处理环节进行处理,这些处理环节包括渠道处理环节、交易处理环节、服务处理环节、服务系统处理环节、基础服务处理环节等。值得注意的是,在本发明中,可根据需要对所述服务系统核心平台520处理接入业务的各个处理环节中的部分或全部处理环节进行超时控制,所述需要进行超时控制的处理环节称为时控环节(如图5所示,包括时控环节1、时控环节2、......、时控环节n,n为时控环节的最大编号);
一个或多个代理模块,各个代理模块与服务系统核心平台520处理接入业务的各个时控环节一一对应(如图5所示,代理模块1对应时控环节1、代理模块2对应时控环节2、......、代理模块n对应时控环节n),每个代理模块用于将与之对应的时控环节的超时控制信息登记在超时管理模块中530;
超时管理模块530,用于根据所述代理模块登记的超时控制信息和将经过服务系统核心平台520处理的接入业务通讯接出时的服务系统时间计算各个时控环节对应的实际超时标准,并根据配置的超时控制策略选取所述实际超时标准之一作为交易超时标准;
业务接出模块540,用于将经过服务系统核心平台520处理的接入业务通讯接出,并根据所述交易超时标准对所述通讯接出进行超时控制。
其中,业务接出模块540将经过服务系统核心平台520处理的接入业务通讯接出并对通讯接出进行超时控制具体为:
业务接出模块540从超时管理模块530中获取所述交易超时标准;
主线程记录通讯接出起始时间戳;
业务接出模块启动子线程调用通讯接出适配器进行通讯接出,同时主线程进入等待;
子线程返回唤醒主线程,主线程记录当前时间戳;
判断通讯接出耗时(当前时间戳减去通讯接出起始时间戳的时间)是否小于所述交易超时标准,若判断为是,则表示通讯正常接出,主线程进入通讯接出后的处理环节,比如接受后台服务系统的处理;否则表示通讯接出超时,服务系统抛出超时控制异常。
图6是图5中的代理模块的组成示意图。如图6所示,所述代理模块包括超时控制信息获取单元610和超时控制信息登记单元620,其中,超时控制信息获取单元610用于获取与代理模块对应的时控环节的超时控制信息;超时控制信息登记单元620用于将所述超时控制信息登记到所述超时管理模块中。
所述超时控制信息包括:当前线程标识、所述时控环节处理接入业务的开始时间、所述时控环节对应的超时配置标准、接入业务在所述时控环节对应的超时配置标准索引信息。接入业务在所述时控环节对应的超时配置标准索引信息又可以为接入业务在所述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息。
其中,当前线程代表一个正在执行的交易,而当前线程标识则作为正在执行交易的唯一标识,当前线程标识可以是当前线程名,例如,可以通过JDK(Java Development Kit,Java开发工具包)提供的API(Application ProgrammingInterface,应用程序接口)获得当前线程,从当前线程中可以获取当前线程名。
所述时控环节处理接入业务的开始时间是所述时控环节开始处理接入业务时的服务系统时间;
所述时控环节对应的应用要素信息预先保存在线程上下文中,可从线程上下文中获取;服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息可以从当前交易路径信息获取;
所述超时配置标准定义在配置文件中,服务系统可以通过装载器(例如超时标准装载单元)将配置文件装载成对象以供服务系统获取超时配置标准。
值得注意的是,超时控制信息获取单元610是根据接入业务在所述时控环节对应的超时配置标准索引信息(接入业务在所述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息)获取对应的超时配置标准的。
接入业务在所述时控环节对应的应用要素信息包括应用要素的类型和名称等。应用要素的类型是指应用的属性,可以有以下分类:渠道类型、交易类型、服务类型、服务系统类型、基础服务类型等。以渠道类型应用要素为例,具体又包含:柜面渠道类型、分行特色渠道类型、电子渠道类型、统一渠道类型等。应用要素的名称在系统内部以ID表示。名称比较多,而且在不断增加中,下面举例说明:渠道应用要素的名称包括000100(柜面渠道)、999900(统一渠道)、gdpxt(个贷p渠道)、gjjxt(公积金渠道)等;交易应用要素的名称包括YTH915000(一体化签约交易)、GJJ960001(公积金交易)等;服务应用要素的名称包括CR0500500(卡查询服务)等;服务系统应用要素的名称包括host(主机服务系统)、eaih(eaih服务系统)等;基础服务应用要素的名称包括500500(卡查询基础服务)等。应用要素信息和时控环节具有对应关系,比如:渠道应用要素信息对应渠道处理(时控)环节。服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息记录了服务系统核心平台对接入业务进行复杂服务处理的服务处理环节的服务处理执行轨迹对应的服务应用要素信息,可以从当前线程上下文中获取当前交易路径信息并从当前可以从当前交易路径信息获取所述与服务执行轨迹对应的服务应用要素信息。
根据接入业务在所述时控环节对应的超时配置标准索引信息(以接入业务在所述时控环节对应的应用要素信息为例),每个代理模块获取对应的超时控制标准的具体步骤为:
超时控制信息获取单元610从线程上下文中获取接入业务在所述时控环节对应的应用要素信息。例如,<渠道类型、000100(柜面渠道)>;
超时控制信息获取单元610根据所述接入业务在所述时控环节对应的应用要素信息获取超时配置标准。例如,在超时配置文件中查找获得与<渠道类型、000100(柜面渠道)>对应的超时配置标准。
图7是图5中的超时管理模块530的组成示意图。如图7所示,所述超时管理模块530包括:
服务系统时间获取单元531,用于获取所述通讯接出时的当前服务系统时间;
信息存储单元532,用于存储所述登记的超时控制信息。所述登记的超时控制信息以逐条记录的方式存储在信息存储单元中,一条记录对应一个代理模块登记的对应于一个时控环节的超时控制信息;
实际超时标准计算单元533,用于根据所述超时控制信息和所述通讯接出时的服务系统时间计算各个时控环节对应的实际超时标准;
超时策略执行单元534,根据配置的超时控制策略选取所述各个实际超时标准之一作为交易超时标准。
根据本发明提供的一个实施例,超时策略执行单元依次比较各个时控环节对应的实际超时标准得到最终的交易超时标准,具体地:
根据时控环节1对应的超时控制信息,计算得到时控环节1对应的实际超时标准TO1,将TO1存储为交易超时标准;
根据时控环节2对应的超时控制信息,计算得到时控环节2对应的实际超时标准TO2,比较TO1与TO2的大小:
若TO2小于TO1,则将TO2替换TO1存储为交易超时标准;否则,维持TO1存储为交易超时标准的状态不变。
按上述规则,依次计算所有剩余时控环节(时控环节3、......、时控环节n,n代表时控环节的最大编号)对应的实际超时标准,直到得到最后的时控环节时控环节n对应的实际超时标准TOn,每计算得到一个新的实际超时标准,都将该新计算出的实际超时标准与前一个时控环节中存储为交易超时标准的时间值比较大小,根据比较结果,确定是否将新计算出的实际超时标准标储存为交易超时标准,如此,最后存储的实际超时标准即为接入业务的交易超时标准。
需要说明的是,配置在所述超时控制模块的超时控制策略支持扩展,可由开发人员定制实现其他不同的超时控制策略。例如,可以根据业务需求采用最大超时策略,即:选取各环节实际超时标准中时间值最大的实际超时标准作为该笔交易的交易超时标准;同样,还可以采用平均超时策略,即:选取各环节实际超时标准时间值的平均值作为该笔交易的交易超时标准。
在所述超时管理模块530中,实际超时标准计算单元533在计算各个时控环节对应的实际超时标准时,对于每条所述记录,按下述方式进行计算:
在本发明提供的一种实施方式中,当接入业务在所述时控环节对应的超时配置标准是时控环节超时标准,则将所述时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准。其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
在本发明提供的另一种实施方式中,所述实际超时标准计算单元533还包括比较器。当接入业务在所述时控环节对应的超时配置标准包括时控环节超时标准和业务超时标准,则所述环节对应的实际超时标准的计算按下述方式进行:
所述比较器比较所述时控环节超时标准和业务超时标准的大小,当所述业务超时标准大于所述时控环节超时标准,则将所述时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准;否则,将所述业务超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准。其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
在上述本发明的一种服务系统的任意一个实施例中,所述业务接入模块还可包括业务接入超时控制单元,所述业务接入超时控制单元用于对业务接入模块将业务接入所述服务系统核心平台时进行超时控制,具体地,当业务接入模块将接入业务通讯接入时,通过中间件和通信协议获取配置的通讯接入超时标准,所述业务接入超时控制单元记录开始通讯接入的时间戳并调用通讯接入适配器进行接入业务的通讯接入,同时接入模块监听所述服务系统核心平台返回的通讯接入反馈,若在所述通讯接入超时标准时间内监听到所述反馈,则接入业务正常接入,否则,服务系统抛出超时控制异常。
在上述本发明的一种服务系统的任意一个实施例中,所述超时管理模块还可以包括超时配置单元,所述超时标准配置单元用于配置和修改超时配置文件,其中,所述接入业务在所述时控环节对应的超时配置标准定义在所述超时配置文件中。相应地,所述系统包括超时标准装载单元,所述超时标准装载单元用于将所述超时配置文件装载成对象。超时配置文件定义在在超时配置单元中,通过所述超时配置装载单元将超时标准配置文件装载成对象(例如JAVA对象),在系统启动期被所述超时装载器调用。在服务系统运行过程中也可以通过管理命令将新的超时配置信息写入超时配置文件中修改超时配置信息,修改后的超时配置信息生效成为新的超时配置信息。本发明中的超时配置信息定义在超时配置文件中,下面是本发明中的超时配置文件样例:
<?xml version=″1.0″encoding=″GB2312″?>
<!--超时配置,其中switch作为超时控制的总开关,on打开,off关闭,timeout表示当无配置时的默认值,单位为秒-->
<timeout-config switch=″on″timeout=″60″>
<!--下面的timeout为必配属性,单位为秒,表示最大超时时间。如果为″0″或″″表示始终超时即挡住交易-->
<!--渠道和交易的超时配置-->
<channel name=″AAAAAA″timeout=″60″>
<tran name=″BBBBBB″timeout=″70″/>
</channel>
<!--服务和原子服务的超时配置-->
<service name=″CCCCCC″timeout=″20″/>
<!--服务系统和基础服务的超时配置-->
<server name=″DDDDDD″timeout=″60″>
<base-service name=″EEEEEEE″timeout=″40″/-->
</server>
</timeout-config>
其中的各个配置字段,如“channel name”、“tran name”、“service name”和“timeout”都可以在服务系统运行期间通过管理命令修改,修改后的配置文件通过执行配置实例生效。也可以看到,在超时配置文件中可以设置超时控制总开关(switch)及其状态,如果超时控制总开关为开(on),就表示超时控制生效,所有配置和控制都起作用;如果总开关为关(off),就表示超时控制不生效,即不进行超时控制。
综上所述,实施本发明提供的一种服务系统中的超时控制的方法及一种服务系统,通过登记各个时控环节对应的超时控制信息、根据所述超时控制信息计算实际超时标准、按照超时控制策略选取交易超时标准并根据所述交易超时标准对通讯接出进行超时控制,实现了在服务系统应用层细粒度的超时控制。同时能灵活配置超时控制策略和超时配置标准,满足了服务系统对不同应用场景接入业务的时控需求,提高了服务系统用户的体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (17)
1.一种服务系统中的超时控制方法,其特征在于,所述方法包括:
a.将服务系统核心平台处理接入业务的各个时控环节对应的超时控制信息分别登记在超时管理模块中;
b.当服务系统核心平台处理完接入业务,通讯接出时,所述超时管理模块根据所述超时控制信息和当前服务系统时间计算所述各个时控环节对应的实际超时标准;
c.所述超时管理模块根据配置的超时控制策略选取所述实际超时标准之一作为交易超时标准;
d.根据所述交易超时标准对所述接入业务的通讯接出进行超时控制。
2.根据权利要求1所述的方法,其特征在于,在步骤a中,对于所述各个时控环节中的每一个时控环节作如下处理:
在所述时控环节设置代理模块;
通过所述代理模块将所述时控环节对应的超时控制信息登记到超时管理模块中。
3.根据权利要求2所述的方法,其特征在于,所述超时控制信息包括:当前线程标识、所述时控环节处理接入业务的开始时间、所述时控环节对应的超时配置标准和接入业务在所述时控环节对应的超时配置标准索引信息。
4.根据权利要求3所述的方法,其特征在于,接入业务在所述时控环节对应的超时配置标准索引信息为接入业务在所述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息。
5.根据权利要求4所述的方法,其特征在于,通过所述代理模块将所述时控环节对应的超时控制信息登记到超时管理模块中包括:
获取当前线程标识、所述时控环节处理接入业务的开始时间和接入业务在所述时控环节对应的超时配置标准索引信息;
根据接入业务在所述时控环节对应的超时配置标准索引信息获取接入业务在所述时控环节对应的超时配置标准;
所述代理模块将当前线程标识、所述时控环节处理接入业务的开始时间、接入业务在所述时控环节对应的超时配置标准索引信息和接入业务在所述时控环节对应的超时配置标准作为一条记录登记在所述超时管理模块中。
6.根据权利要求3至5中任意一项所述的方法,其特征在于,所述接入业务在所述时控环节对应的超时配置标准为时控环节超时标准。
7.根据权利要求6所述的方法,其特征在于,步骤b具体为:
获取所述当前服务系统时间;
对于所述各个时控环节中的每一个时控环节作如下处理:
将与所述时控环节对应的超时配置标准索引信息对应的时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准,
其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
8.根据权利要求3至5中任意一项所述的方法,其特征在于,所述接入业务在所述时控环节对应的超时配置标准包括时控环节超时标准和业务超时标准,
其中,在同一个时控环节,不同的接入业务对应同一个时控环节超时标准;而在同一个时控环节,不同的接入业务对应不同的业务超时标准。
9.根据权利要求8所述的方法,其特征在于,步骤b具体为:
获取所述当前服务系统时间;
对于所述各个时控环节中的每一个时控环节作如下处理:
判断所述业务超时标准是否小于所述时控环节超时标准,
当判断为是时,将所述业务超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准,
当判断为否时,将所述时控环节超时标准减去所述时控环节处理接入业务的已执行时间得到所述时控环节对应的实际超时标准,
其中,所述时控环节处理接入业务的已执行时间等于所述当前服务系统时间减去所述时控环节处理接入业务的开始时间。
10.根据权利要求1所述的方法,其特征在于,步骤d具体为:
从所述超时管理模块中获取所述交易超时标准;
主线程记录所述通讯接出的起始时间戳;
启动子线程进行所述通讯接出,同时主线程进入等待;
子线程返回唤醒主线程,主线程记录当前时间戳;
判断当前时间戳减去起始时间戳的时间值是否小于所述交易超时标准,当判断为是时,表示通讯正常接出,主线程进入通讯接出后的处理环节;当判断为否时,则表示通讯接出超时,进行通讯接出超时处理。
11.一种服务系统,其特征在于,所述服务系统包括:
业务接入模块,用于接入待处理的业务,所述业务称为接入业务;
服务系统核心平台,用于处理业务接入模块接入的接入业务;
一个或多个代理模块,所述代理模块与服务系统核心平台处理接入业务的各个时控环节一一对应,用于将各个时控环节对应的超时控制信息登记到超时管理模块中;
超时管理模块,用于根据所述代理模块登记的超时控制信息和通讯接出时的当前服务系统时间计算各个时控环节对应的实际超时标准,并根据配置的超时控制策略选取所述实际超时标准之一作为交易超时标准;
业务接出模块,用于将经过服务系统核心平台处理的接入业务通讯接出,并根据所述交易超时标准对所述通讯接出进行超时控制。
12.根据权利要求11所述的系统,其特征在于,所述代理模块包括:
超时控制信息获取单元,用于获取与代理模块对应的时控环节的超时控制信息;
超时控制信息登记单元,用于将所述超时控制信息登记到所述超时管理模块中。
13.根据权利要求11或12所述的系统,其特征在于,所述超时管理模块包括:
服务系统时间获取单元,用于获取所述通讯接出时的当前服务系统时间;
信息存储单元,用于存储所述登记的超时控制信息;
实际超时标准计算单元,用于根据所述超时控制信息和所述通讯接出时的当前服务系统时间计算各个时控环节分别对应的实际超时标准;
超时策略执行单元,根据配置的超时控制策略选取所述各个实际超时标准之一作为交易超时标准。
14.根据权利要求13所述的系统,其特征在于,所述超时控制信息包括:当前线程标识、所述时控环节处理接入业务的开始时间、所述时控环节对应的超时配置标准、接入业务在所述时控环节对应的超时配置标准索引信息。
15.根据权利要求14所述的系统,其特征在于,接入业务在所述时控环节对应的超时配置标准索引信息为接入业务在所述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息。
16.根据权利要求14或15所述的系统,其特征在于,所述服务系统还包括超时标准配置单元,所述超时标准配置单元用于配置和修改超时配置文件,其中,所述接入业务在所述时控环节对应的超时配置标准定义在所述超时配置文件中。
17.根据权利要求16所述的系统,其特征在于,所述服务系统还包括超时标准装载单元,所述超时标准装载单元用于将所述超时配置文件装载成对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102045576A CN101727648B (zh) | 2009-12-01 | 2009-12-01 | 服务系统中的超时控制方法及服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102045576A CN101727648B (zh) | 2009-12-01 | 2009-12-01 | 服务系统中的超时控制方法及服务系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727648A CN101727648A (zh) | 2010-06-09 |
CN101727648B true CN101727648B (zh) | 2012-07-25 |
Family
ID=42448506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102045576A Active CN101727648B (zh) | 2009-12-01 | 2009-12-01 | 服务系统中的超时控制方法及服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727648B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292039B2 (en) * | 2012-09-18 | 2016-03-22 | Amazon Technologies, Inc. | Adaptive service timeouts |
CN103678020A (zh) * | 2012-09-18 | 2014-03-26 | 中国银联股份有限公司 | 一种交易处理中的数据库操作超时处理方法和装置 |
CN103618590B (zh) * | 2013-11-20 | 2017-03-29 | 北京先进数通信息技术股份公司 | 一种事务处理过程的超时控制方法和装置 |
CN104616197B (zh) * | 2015-02-16 | 2017-11-14 | 中国工商银行股份有限公司 | 一种可分离查询交易数据的调度方法及装置 |
CN106970851A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 用于分布式文件系统中磁盘检测处理的方法和设备 |
CN108958959B (zh) * | 2017-05-18 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 检测hive数据表的方法和装置 |
WO2019081085A1 (de) * | 2017-10-23 | 2019-05-02 | Siemens Aktiengesellschaft | Verfahren und steuersystem zum steuern und/oder überwachen von geräten |
CN107958414B (zh) * | 2017-11-07 | 2021-09-21 | 中国银行股份有限公司 | 一种清除cics系统长交易的方法及系统 |
CN108829546B (zh) * | 2018-06-21 | 2021-06-18 | 中国人民解放军战略支援部队信息工程大学 | 超时机制控制方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363496B1 (en) * | 1999-01-29 | 2002-03-26 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus and method for reducing duration of timeout periods in fault-tolerant distributed computer systems |
US6526433B1 (en) * | 1999-12-15 | 2003-02-25 | International Business Machines Corporation | Adaptive timeout value setting for distributed computing environment (DCE) applications |
US20080062863A1 (en) * | 2006-09-12 | 2008-03-13 | Qualcomm Incorporated | Transaction timeout handling in communication session management |
-
2009
- 2009-12-01 CN CN2009102045576A patent/CN101727648B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363496B1 (en) * | 1999-01-29 | 2002-03-26 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus and method for reducing duration of timeout periods in fault-tolerant distributed computer systems |
US6526433B1 (en) * | 1999-12-15 | 2003-02-25 | International Business Machines Corporation | Adaptive timeout value setting for distributed computing environment (DCE) applications |
US20080062863A1 (en) * | 2006-09-12 | 2008-03-13 | Qualcomm Incorporated | Transaction timeout handling in communication session management |
Also Published As
Publication number | Publication date |
---|---|
CN101727648A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101727648B (zh) | 服务系统中的超时控制方法及服务系统 | |
CN109597853B (zh) | 业务场景元素序列号生成方法、装置、介质和计算机设备 | |
Mietzner et al. | Variability modeling to support customization and deployment of multi-tenant-aware software as a service applications | |
US7130901B2 (en) | Network service provider platform for supporting usage sensitive billing and operation services | |
CN102456185B (zh) | 一种分布式工作流处理方法及分布式工作流引擎系统 | |
US7971145B2 (en) | Systems and methods for adapting service interface behaviors | |
US20130104150A1 (en) | Service based information technology platform | |
US20080086557A1 (en) | Network service provider platform for supporting usage sensitive billing and operation services | |
US8656354B2 (en) | Compound versioning and identification scheme for composite application development | |
EA003744B1 (ru) | Расширяемая распределенная интеграционная система приложения для предприятия | |
EP1782185A1 (en) | Application splitting for network edge computing | |
CN105589715A (zh) | 信息处理设备、库加载方法和计算机可读介质 | |
CN101115180B (zh) | 一种电子节目菜单系统及其功能模块动态加载运行方法 | |
KR20080064587A (ko) | 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템 | |
CN104660435A (zh) | 面向智能管道的事务型网管引擎及其网管事务处理方法 | |
US8874798B2 (en) | Aspect oriented application of a mediator in an enterprise service bus (ESB) of a service oriented architected data processing system | |
CN110737425A (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN101021791A (zh) | 实现分布式对象持久化的方法、装置及编译单元 | |
CN100543720C (zh) | 利用离散单元快速构建业务处理流程的方法及系统 | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN112416980B (zh) | 数据业务处理方法、装置及设备 | |
Beard | Cloud Computing Best Practices for Managing and Measuring Processes for On-Demand Computing, Applications and Data Centers in the Cloud with SLAs | |
CN107911442A (zh) | 接收响应接口交互方法、装置、计算机设备及存储介质 | |
CN106126313A (zh) | 一种基于Ambari集成Solr的方法及服务器 | |
US6782534B1 (en) | Method and system for controlling program in information processing system |
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 |