专利名称:服务系统中的超时控制方法及服务系统的制作方法
技术领域:
本发明涉及银行数据处理领域,更为具体地,本发明涉及一种服务系统中的超时
控制方法及服务系统。
背景技术:
金融、电信等行业的服务系统负载着大量并发的联机事务的处理,这些联机事务 处理的每笔业务的信息量较小,而且具有一定的实时性,对时间的要求非常严格。因此,需 要对服务系统进行超时控制以满足实时性要求。例如在阻塞时间比较长的环节上实施超 时控制,这些阻塞时间比较长的环节可能是和远程数据库的连接,也可能是网络下载,在这 些环节超时后,往往需要进行一些操作,比如抛出超时控制异常,或者重新执行,达到客户 端快速响应、服务器端稳定可靠的效果。 现有超时控制使用通讯协议和中间件提供的超时控制功能来设置超时标准,利用 所设置的超时标准对通讯接入和/或通讯接出进行超时控制在所设置的超时标准内通讯 正常接入和/或通讯正常接出,则进行通讯正常接入和/或通讯正常接出的后续处理,若 在所设置的超时标准内通讯接入和/或通讯接出超时则进行超时控制异常处理,比如抛出 超时控制异常。例如,目前通讯接入的超时控制主要是在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的组成示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明进一步地 详细描述。 在具体描述之前,需要说明的是,在本发明实施例中,服务系统核心平台对接入业 务的处理包括若干处理环节,系统通过整个业务处理流程的总控模块(例如,调度处理模 块)来调度其他业务模块对接入业务在各个处理环节依次处理,例如,服务系统需要对接 入业务依次在渠道处理环节、交易处理环节、服务处理环节、服务系统处理环节和基础服务 处理环节进行处理,那么调度处理模块将依次调用渠道处理模块、交易处理模块、服务处理 模块、服务系统处理模块和基础服务处理模块对接入业务进行处理。这些处理环节可以分 为非时控环节和时控环节在非时控环节,不对接入业务在该处理环节的处理实施本发明
6所述的超时控制,也即在非时控环节不进行超时控制信息的登记等动作;时控环节是根据 需要对接入业务在该处理环节的处理实施本发明所述的超时控制的处理环节。同时,在上 述的各个处理环节中,有些处理环节可能会比较简单,而且在一个交易处理过程只会被执 行一次;有些处理环节可能会比较复杂,这些处理环节支持流程定义,可以顺序、循环、分 支、嵌套和执行多个处理,例如,所述的服务处理环节可以实现对接入业务完成复杂度较高 的核心处理。 图1是本发明的一种服务系统中的超时控制方法的流程图。由图1可知,所述方 法至少包括 S100,将服务系统核心平台处理接入业务的各个时控环节对应的超时控制信息分
别登记在超时管理模块中。具体而言,服务系统核心平台处理接入业务的主线程执行到每
一个时控环节时,都会将该时控环节对应的超时控制信息登记在超时管理模块中。 所述超时控制信息包括当前线程标识、所述时控环节处理接入业务的开始时间、
所述时控环节对应的超时配置标准、接入业务在所述时控环节对应的超时配置标准索引信
息。其中,接入业务在所述时控环节对应的超时配置标准索引信息又可以为接入业务在所
述时控环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行
轨迹对应的应用要素信息。 其中,当前线程代表一个正在执行的交易,而当前线程标识则作为正在执行交 易的唯一标识,当前线程标识可以是当前线程名,例如,可以通过JDK(Java Development Kit, Java开发工具包)提供的API (Application Programminglnterface,应用程序接口 ) 获得当前线程,从当前线程中可以获取当前线程名; 所述时控环节处理接入业务的开始时间是所述时控环节开始处理接入业务时的 服务系统时间; 所述时控环节对应的应用要素信息预先保存在线程上下文中,可从线程上下文中 获取;服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息可以 从当前交易路径信息获取; 所述超时配置标准定义在配置文件中,服务系统可以通过装载器(例如超时标准 装载单元)将配置文件装载成对象以供服务系统获取超时配置标准。 S200,当服务系统核心平台按照各个环节处理完接入业务,通讯接出时,所述超时 管理模块根据所述超时控制信息和当前服务系统时间计算所述各个时控环节对应的实际 超时标准。 S300,所述超时管理模块根据配置的超时控制策略选取所述实际超时标准之一作 为交易超时控制标准。 超时控制策略配置在超时管理模块中,同时超时控制策略也可以通过代码接口来 扩展。通过执行超时控制策略的算法选取所述实际超时标准之一作为交易超时标准。例 如,默认的超时控制策略是最小超时策略,即选取各环节实际超时标准中时间值最小的实 际超时标准作为该笔交易的交易超时标准。 S400,根据所述交易超时标准对所述接入业务的通讯接出进行超时控制。在选取 交易超时标准之后,业务接出模块从超时管理模块中取所述交易超时标准,根据所述交易 超时标准调用通讯接出适配器进行通讯接出并对通讯接出进行超时控制。
7
具体而言,如图2所示,步骤S400具体包括 S4001,通讯接出的主线程记录通讯接出起始时间戳; S4002,通讯接出模块启动子线程进行通讯接出,同时所述主线程进入等待;
S4003,子线程返回唤醒主线程,主线程记录当前时间戳; S4004,判断当前时间戳减去通讯接出起始时间戳的时间是否小于所述交易超时 标准, 当判断为是,则执行步骤S4005,否则执行步骤S4006 : S4005,主线程进入通讯接出后的处理环节,比如接受后台服务系统的处理等;
S4006,服务系统进行通讯接出超时处理。例如,服务系统抛出超时控制异常,可 以认为超时控制中的超时也属于一种异常情况,利用"异常"这一种JAVA提供的异常类 (Exc印tion)来进行通讯接出超时处理。抛出超时控制异常后,后续处理可以交给异常处理 模块进行统一的异常处理,比如修改服务状态为失败,组织错误报文返回给渠道系统等。 异常处理模块会进行通用异常处理,能处理所有异常(所有异常包括超时异常、打拆包异 常、通讯异常和加解密异常等)。 在本发明提供的一个实施例中,步骤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对应的实际超时标准 T01,将T01存储为交易超时标准;
根据时控环节2对应的超时控制信息,计算得到时控环节2对应的实际超时标准 T02,比较T01与T02的大小: 若T02小于TOl,则将T02替换T01存储为交易超时标准;否则,维持T01存储为 交易超时标准的状态不变。 按上述规则,依次计算所有剩余时控环节(时控环节3........时控环节n, n代
表时控环节的最大编号)对应的实际超时标准,直到得到最后的时控环节时控环节n对应 的实际超时标准TOn,每计算得到一个新的实际超时标准,都将该新的实际超时标准与前一 个时控环节中存储为交易超时标准的时间值比较大小,根据比较结果,确定是否将新计算 出的实际超时标准标储存为交易超时标准,如此,最后存储的实际超时标准即为接入业务 的交易超时标准。 需要说明的是,配置在所述超时控制模块的超时控制策略支持扩展,可由开发人
员定制实现其他不同的超时控制策略。例如,可以根据业务需求采用最大超时策略,即选 取各环节实际超时标准中时间值最大的实际超时标准作为该笔交易的交易超时标准;同
样,还可以采用平均超时策略,即选取各环节实际超时标准时间值的平均值作为该笔交易 的交易超时标准。 在本发明的一种服务系统的超时控制方法的上述任意一个实施例中,在服务系统 运行过程中都可以通过管理命令修改配置的超时配置标准,修改后的超时配置生效成为新 的超时配置标准。 本发明中的超时配置标准定义在超时配置文件中,下面是本发明中的超时配置文 件样例 〈? xml version =〃 1.0〃 encoding = 〃 GB2312" > 〈! 一超时配置,其中switch作为超时控制的总开关,on打开,off关闭,timeout 表示当无配置时的默认值,单位为秒一> 〈timeout-config switch = 〃 on" timeout = 〃 60〃 > 〈! 一下面的timeout为必配属性,单位为秒,表示最大超时时间。如果为"0〃
或〃 〃 表示始终超时即挡住交易一> 〈! 一渠道和交易的超时配置一〉 〈cha騰l name=〃 AAAAAA" timeout = 〃 60〃 > 〈tranname=〃 BBBBBB" timeout = 〃 70〃 /> 〈/charmel> 〈! 一服务和原子服务的超时配置一〉 〈servicename=〃 CCCCCC" timeout = 〃 20〃 /> 〈! 一服务系统和基础服务的超时配置一〉 〈servername=〃 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、一个或多个代理模块(如图所示的代理模块l-代理模 块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中获取所述交易超时标准;
主线程记录通讯接出起始时间戳; 业务接出模块启动子线程调用通讯接出适配器进行通讯接出,同时主线程进入等 待; 子线程返回唤醒主线程,主线程记录当前时间戳; 判断通讯接出耗时(当前时间戳减去通讯接出起始时间戳的时间)是否小于所述
11交易超时标准,若判断为是,则表示通讯正常接出,主线程进入通讯接出后的处理环节,比 如接受后台服务系统的处理;否则表示通讯接出超时,服务系统抛出超时控制异常。
图6是图5中的代理模块的组成示意图。如图6所示,所述代理模块包括超时控 制信息获取单元610和超时控制信息登记单元620,其中,超时控制信息获取单元610用于 获取与代理模块对应的时控环节的超时控制信息;超时控制信息登记单元620用于将所述 超时控制信息登记到所述超时管理模块中。 所述超时控制信息包括当前线程标识、所述时控环节处理接入业务的开始时间、 所述时控环节对应的超时配置标准、接入业务在所述时控环节对应的超时配置标准索引信 息。接入业务在所述时控环节对应的超时配置标准索引信息又可以为接入业务在所述时控 环节对应的应用要素信息或服务系统核心平台在所述时控环节处理接入业务执行轨迹对 应的应用要素信息。 其中,当前线程代表一个正在执行的交易,而当前线程标识则作为正在执行交 易的唯一标识,当前线程标识可以是当前线程名,例如,可以通过JDK(Java Development Kit, Java开发工具包)提供的API (Application Programminglnterface,应用程序接口 ) 获得当前线程,从当前线程中可以获取当前线程名。 所述时控环节处理接入业务的开始时间是所述时控环节开始处理接入业务时的 服务系统时间; 所述时控环节对应的应用要素信息预先保存在线程上下文中,可从线程上下文中 获取;服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息可以 从当前交易路径信息获取; 所述超时配置标准定义在配置文件中,服务系统可以通过装载器(例如超时标准 装载单元)将配置文件装载成对象以供服务系统获取超时配置标准。 值得注意的是,超时控制信息获取单元610是根据接入业务在所述时控环节对应 的超时配置标准索引信息(接入业务在所述时控环节对应的应用要素信息或服务系统核 心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息)获取对应的超时配 置标准的。 接入业务在所述时控环节对应的应用要素信息包括应用要素的类型和名称等。应 用要素的类型是指应用的属性,可以有以下分类渠道类型、交易类型、服务类型、服务系统 类型、基础服务类型等。以渠道类型应用要素为例,具体又包含柜面渠道类型、分行特色 渠道类型、电子渠道类型、统一渠道类型等。应用要素的名称在系统内部以ID表示。名称 比较多,而且在不断增加中,下面举例说明渠道应用要素的名称包括000100 (柜面渠道)、 999900 (统一渠道)、gdpxt (个贷p渠道)、gj jxt (公积金渠道)等;交易应用要素的名称 包括YTH915000 ( —体化签约交易)、GJJ960001 (公积金交易)等;服务应用要素的名称 包括CR0500500(卡查询服务)等;服务系统应用要素的名称包括host(主机服务系统)、 eaih(eaih服务系统)等;基础服务应用要素的名称包括500500 (卡查询基础服务)等。应 用要素信息和时控环节具有对应关系,比如渠道应用要素信息对应渠道处理(时控)环 节。服务系统核心平台在所述时控环节处理接入业务执行轨迹对应的应用要素信息记录了 服务系统核心平台对接入业务进行复杂服务处理的服务处理环节的服务处理执行轨迹对 应的服务应用要素信息,可以从当前线程上下文中获取当前交易路径信息并从当前可以从
12当前交易路径信息获取所述与服务执行轨迹对应的服务应用要素信息。 根据接入业务在所述时控环节对应的超时配置标准索引信息(以接入业务在所 述时控环节对应的应用要素信息为例),每个代理模块获取对应的超时控制标准的具体步 骤为 超时控制信息获取单元610从线程上下文中获取接入业务在所述时控环节对应 的应用要素信息。例如,〈渠道类型、000100(柜面渠道)〉; 超时控制信息获取单元610根据所述接入业务在所述时控环节对应的应用要素 信息获取超时配置标准。例如,在超时配置文件中查找获得与〈渠道类型、000100(柜面渠 道)〉对应的超时配置标准。 图7是图5中的超时管理模块530的组成示意图。如图7所示,所述超时管理模 块530包括 服务系统时间获取单元531,用于获取所述通讯接出时的当前服务系统时间;
信息存储单元532,用于存储所述登记的超时控制信息。所述登记的超时控制信息 以逐条记录的方式存储在信息存储单元中,一条记录对应一个代理模块登记的对应于一个 时控环节的超时控制信息; 实际超时标准计算单元533,用于根据所述超时控制信息和所述通讯接出时的服 务系统时间计算各个时控环节对应的实际超时标准; 超时策略执行单元534,根据配置的超时控制策略选取所述各个实际超时标准之 一作为交易超时标准。 根据本发明提供的一个实施例,超时策略执行单元依次比较各个时控环节对应的 实际超时标准得到最终的交易超时标准,具体地 根据时控环节1对应的超时控制信息,计算得到时控环节1对应的实际超时标准 T01,将T01存储为交易超时标准; 根据时控环节2对应的超时控制信息,计算得到时控环节2对应的实际超时标准 T02,比较T01与T02的大小: 若T02小于TOl,则将T02替换T01存储为交易超时标准;否则,维持T01存储为 交易超时标准的状态不变。 按上述规则,依次计算所有剩余时控环节(时控环节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〃
或〃 〃 表示始终超时即挡住交易一> 〈! 一渠道和交易的超时配置一〉 〈cha騰l name=〃 AAAAAA〃 timeout = 〃 60〃 > 〈tranname=〃 BBBBBB〃 timeout = 〃 70〃 />
〈/charmel> 〈! 一服务和原子服务的超时配置一〉 〈service name = 〃 CCCCCC" timeout = 〃 20〃 /> 〈! 一服务系统和基础服务的超时配置一〉 〈servername=〃 DDDDDD" timeout = 〃 60〃 > 〈base—service謹e = 〃 EEEEEEE" timeout = 〃 40〃 /——> 其中的各个配置字段,如"channel name,,、"tran name,,、"service name"禾口 "timeout"都可以在服务系统运行期间通过管理命令修改,修改后的配置文件通过执行配 置实例生效。也可以看到,在超时配置文件中可以设置超时控制总开关(switch)及其状 态,如果超时控制总开关为开(on),就表示超时控制生效,所有配置和控制都起作用;如果 总开关为关(off),就表示超时控制不生效,即不进行超时控制。 综上所述,实施本发明提供的一种服务系统中的超时控制的方法及一种服务系 统,通过登记各个时控环节对应的超时控制信息、根据所述超时控制信息计算实际超时标 准、按照超时控制策略选取交易超时标准并根据所述交易超时标准对通讯接出进行超时控 制,实现了在服务系统应用层细粒度的超时控制。同时能灵活配置超时控制策略和超时配 置标准,满足了服务系统对不同应用场景接入业务的时控需求,提高了服务系统用户的体 验。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发 明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计 算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一 台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者 实施例的某些部分所述的方法。 以上所揭露的仅为本发明的较佳实施例而已,当然不能以此来限定本发明之权利 范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
一种服务系统中的超时控制方法,其特征在于,所述方法包括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所述的系统,其特征在于,所述服务系统还包括超时标准装载单 元,所述超时标准装载单元用于将所述超时配置文件装载成对象。
全文摘要
本发明公开了一种服务系统中的超时控制方法,通过设置在服务系统核心平台处理接入业务的各个时控环节的代理模块将各个时控环节对应的超时控制信息登记在超时管理模块中,根据所述超时控制信息和服务系统将经过处理的接入业务通讯接出时的当前服务系统时间计算各个时控环节对应的实际超时标准并根据超时控制策略选取交易超时标准,最后根据所述选取的交易超时标准对所述通讯接出进行超时控制。相应地,本发明还公开了一种应用所述超时控制方法的服务系统,将超时控制延伸至系统应用层并在应用层实现了细粒度的超时控制,能满足服务系统对不同应用场景接入业务的时控需求,保护了服务系统及前端系统资源并提高了服务系统用户的体验。
文档编号G06F9/44GK101727648SQ20091020455
公开日2010年6月9日 申请日期2009年12月1日 优先权日2009年12月1日
发明者吴炜斯, 施健, 杨芬, 王迎春 申请人:中国建设银行股份有限公司