交易中间件的单线程多任务处理方法及服务器的制造方法

文档序号:6499383阅读:162来源:国知局
交易中间件的单线程多任务处理方法及服务器的制造方法
【专利摘要】本发明适用于信息【技术领域】,提供了一种交易中间件的单线程多任务处理方法及服务器,所述方法包括:第一中间件接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,第一中间件的业务处理线程将所述请求转发给第二中间件,第一中间件保存所述请求对应的业务执行环境;第一中间件将执行所述请求的业务处理线程置为空闲态,使得所述业务执行线程空闲。本发明提供的技术方案具有资源利用率高,吞吐率高的优点。
【专利说明】交易中间件的单线程多任务处理方法及服务器
【技术领域】
[0001]本发明属于信息领域,尤其涉及一种交易中间件的单线程多任务处理方法及服务器。
【背景技术】
[0002]中间件,与操作系统、数据库并列为三大基础软件平台。现有的中间件已经包括了许多分支,包括通讯中间件、交易中间件、对象中间件、安全中间件、数据访问中间件、应用服务器等等。
[0003]IDC是这样定义中间件的:中间件是一种独立的系统软件和服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务其的操作系统之上,其用于管理计算资源和网络信息。实际上,在计算机软件系统的层次结构中,中间件位于操作系统、数据库、网络层之上,在应用程序之下,是一个中间层,因此得名。
[0004]交易中间件是中间件的一个重要分支,主要用在OLTP中。90年代以前建设的商业应用系统结构比较单一,主要以主机-终端模式及客户-服务器模式为主,客户-服务其模式也称为二层结构。到了 90年代,随着计算计应用水平的飞速发展,企业信息化水平的不断提高,企业客户的不断增加,以及新业务的不断出现,越来越多的用户计算机应用系统在并发处理、关键业务联机交易处理、跨平台、跨广域网、多数据源等方面提出了更高的要求,为了解决这些实际需求,诞生了以交易中间件为基础框架的应用模式,这种架构业界称之为三层结构。三层结构的核心概念是利用中间件将用户界面、业务逻辑和数据逻辑分为三个不同的处理层。以中间件为基础的三层结构系统,不仅具备大型机的系统稳定、安全、处理能力高的优点,同时也具有开放式系统成本低、可扩展性强、开发周期短、易维护等优点。
[0005]目前的交易中间件产品,包括商业中间件CICS、TUXED0、也包括各种J2EE中间件,以及各种国产中间件,事实上都遵循线程单并发原则,线程单并发原则具体包括:中间件有M个业务处理线程(进程),在某一时刻最大并发处理能力是M笔业务,即每个业务处理线程处理一笔业务。
[0006]这种实现方式虽然较为简单,但存在业务处理线程利用率不高的问题。
[0007]例如在某些业务处理耗时比较长时(例如访问第三方系统,第三方系统上的处理时间长),这种场景下,交易中间件的业务处理线程将请求委托给第三方系统后,将等待第三方系统处理完成后返回结果,在等待期间,虽然处理线程是空闲的,但该线程仍然处于占用状态,所以该线程不能处理相应的外部请求,导致整个系统的资源利用率降低,吞吐率下降。

【发明内容】

[0008]本发明实施例的目的在于提供一种交易中间件的单线程多任务处理方法,旨在解决现有技术中系统的资源利用率降低,吞吐率下降的问题。
[0009]本发明实施例是这样实现的,一种交易中间件的单线程多任务处理方法,所述方法包括:
[0010]第一中间件接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,第一中间件的业务处理线程将所述请求转发给第二中间件,第一中间件保存所述请求对应的业务执行环境;
[0011]第一中间件将执行所述请求的业务处理线程置为空闲态,使得所述业务执行线程空闲。
[0012]可选的,所述方法在使得该业务执行线程空闲之后还包括:
[0013]第一中间件接收到第二中间件返回的所述请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对所述请求进行处理。
[0014]可选的,所述判断所述请求是否满足转发处理条件的实现方法具体包括:
[0015]设置请求类型列表,查询所述请求是否在该请求类型列表内,如所述请求对应的类型存在所述请求类型列表内,则判断为满足转发处理条件,如所述请求对应的类型不存在所述请求类型列表内,则判断为不满足转发处理条件。
[0016]可选的,所述判断所述请求是否满足转发处理条件的实现方法具体包括:
[0017]估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
[0018]第二方面,提供一种服务器,所述服务器包括:
[0019]第一中间件,用于接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,所述第一中间件的业务处理线程将所述请求转发给第二中间件,所述第一中间件保存所述请求对应的业务执行环境;
[0020]第一中间件,还用于将执行所述请求的业务处理线程置为空闲态,使得所述业务执行线程空闲。
[0021]可选的,所述第一中间件,还用于接收到第二中间件返回的所述请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对所述请求进行处理。
[0022]可选的,所述服务器还包括:设置请求类型列表;
[0023]所述第一中间件,还用于查询所述请求是否在该请求类型列表内,如所述请求对应的类型存在所述请求类型列表内,则判断为满足转发处理条件,如所述请求对应的类型不存在所述请求类型列表内,则判断为不满足转发处理条件。
[0024]可选的,所述第一中间件,还用于估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
[0025]本发明实施例与现有技术相比,有益效果在于:中间件能够在等待时间中处理其他的外部请求,所以其具有资源利用率高,吞吐率高的优点。
【专利附图】

【附图说明】
[0026]图1是本发明实施例提供的一种交易中间件的单线程多任务处理方法的流程图。【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028]本发明【具体实施方式】提供一种交易中间件的单线程多任务处理方法,该方法由服务器内的中间件完成,该方法如图1所示,包括如下步骤:
[0029]S11、第一中间件接收到处理请求后,判断该请求是否满足转发处理条件;当满足转发处理条件时,执行S12、S13;
[0030]S12、第一中间件的业务处理线程将该请求转发给第二中间件,第一中间件保存该请求对应的业务执行环境;
[0031]S13、第一中间件将执行该请求的业务处理线程置为空闲态,使得该业务执行线程空闲。
[0032]需要说明的是,上述第一中间件和第二中间件仅仅是为了方便区分的标号,并没有什么实际的含义,另外,上述正在运行的业务处理线程列表具体可以为:包含有服务器当前正在运行的所有业务处理线性的标识(例如名称)的列表。当然在实际应用中,上述列表的表述方式还可能有其他的表述方式,这里不一一赘述。
[0033]本发明【具体实施方式】提供的方法在将请求转发给第二中间件后,将该业务处理线程修改成空闲,这样该业务处理线程就可以在等待时间接收其他的外部请求,并对外部请求进行处理,所以该方法具有资源利用率高,吞吐率高的优点。通过这样的处理方法,达到了在系统间通讯进行等待时,不占用中间的处理线程,可以并行处理其他业务,大大提高了业务处理线程的使用率,从而使得整个交易中间件的吞吐量得以提高。
[0034]可选的,上述方法在S13之后还可以包括:
[0035]第一中间件接收到第二中间件返回的该请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对该请求进行处理。
[0036]可选的,上述判断该请求是否满足转发处理条件的实现方法可以为多种,例如:
[0037]设置请求类型列表,查询该请求是否在该请求类型列表内,如存在该请求类型列表内,则判断为满足转发处理条件,如不存在该请求类型列表内,则判断为不满足转发处理条件。上述请求类型列表具体可以为:包含所有需要进行转发处理请求的类型的列表。
[0038]估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
[0039]上述估算该请求处理的时间的方法具体可以为:记录每个请求所处理的时间,并将处理的时间按类型存储在类型时间列表中,获取当前请求的类型,计算该类型在该类型时间列表中的时间的平均值,该平均值即为该请求处理的预算时间。通过上述方法来预算时间能够考虑各种情况,这样对类型的预算时间计算更准确。
[0040]本发明通过在交易中间件中创新性的弓I入单线程多任务处理机制,该机制在处理业务程序时,摒弃现有交易中间件中一个业务处理线程只能处理一个业务的固有思维,由交易中间件判断业务的属性和状态,根据业务属性和状态自动确定是否启动单线程多任务处理机制。如果对当前业务启动单线程多任务处理机制,则将请求发送给远程处理系统,保持当前业务的业务执行上下文,加载其他业务程序进行处理;当远程处理系统的应答返回后,恢复前面保持的上下文,完成保存业务的处理。
[0041]对业务程序来讲,单线程多任务是透明的,任务转移、调度、唤醒完全由交易中间件自动处理,交易中间件的业务处理线程也不会为等待系统间通讯结果而阻塞。
[0042]如果业务需要多个系统间协调完成,涉及到系统间通讯,通过本发明能显著提高交易中间件业务处理线程的处理效率,避免了在系统通讯期间的无效等待,提高了整个系统的处理性能和吞吐率。
[0043]本发明【具体实施方式】还提供一种服务器,所述服务器包括:
[0044]第一中间件,用于接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,所述第一中间件的业务处理线程将所述请求转发给第二中间件,所述第一中间件保存所述请求对应的业务执行环境;
[0045]第一中间件,还用于将执行所述请求的业务处理线程置为空闲态,使得所述业务执行线程空闲。
[0046]可选的,所述第一中间件,还用于接收到第二中间件返回的所述请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对所述请求进行处理。
[0047]可选的,所述服务器还包括:设置请求类型列表;
[0048]所述第一中间件,还用于查询所述请求是否在该请求类型列表内,如存在所述请求类型列表内,则判断为满足转发处理条件,如不存在所述请求类型列表内,则判断为不满足转发处理条件。
[0049]可选的,所述第一中间件,还用于估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
[0050]本发明【具体实施方式】提供的服务器在将请求转发给第二中间件后,将该业务处理线程修改成空闲,这样该业务处理线程就可以在等待时间接收其他的外部请求,并对外部请求进行处理,所以该服务器具有资源利用率高,吞吐率高的优点。
[0051]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种交易中间件的单线程多任务处理方法,其特征在于,所述方法包括: 第一中间件接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,第一中间件的业务处理线程将所述请求转发给第二中间件,第一中间件保存所述请求对应的业务执行环境; 第一中间件将执行所述请求的业务处理线程从正在运行的业务处理线程列表中卸掉,使得所述业务执行线程空闲。
2.根据权利要求1所述的方法,其特征在于,所述方法在使得该业务执行线程空闲之后还包括: 第一中间件接收到第二中间件返回的所述请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对所述请求进行处理。
3.根据权利要求1所述的方法,其特征在于,所述判断所述请求是否满足转发处理条件的实现方法具体包括: 设置请求类型列表,查询所述请求是否在该请求类型列表内,如所述请求对应的类型存在所述请求类型列表内,则判断为满足转发处理条件,如所述请求对应的类型不存在所述请求类型列表内,则判断为不满足转发处理条件。
4.根据权利要求1所述的方法,其特征在于,所述判断所述请求是否满足转发处理条件的实现方法具体包括: 估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
5.一种服务器,其特征在于,所述服务器包括: 第一中间件,用于接收到处理请求后,判断所述请求是否满足转发处理条件;当满足转发处理条件时,所述第一中间件的业务处理线程将所述请求转发给第二中间件,所述第一中间件保存所述请求对应的业务执行环境; 第一中间件,还用于将执行所述请求的业务处理线程从正在运行的业务处理线程列表中卸掉,使得所述业务执行线程空闲。
6.根据权利要求5所述的服务器,其特征在于, 所述第一中间件,还用于接收到第二中间件返回的所述请求的处理结果时,恢复所述该请求对应的业务执行环境,继续对所述请求进行处理。
7.根据权利要求5所述的服务器,其特征在于,所述服务器还包括:设置请求类型列表; 所述第一中间件,还用于查询所述请求是否在该请求类型列表内,如所述请求对应的类型存在所述请求类型列表内,则判断为满足转发处理条件,如所述请求对应的类型不存在所述请求类型列表内,则判断为不满足转发处理条件。
8.根据权利要求5所述的服务器,其特征在于,所述第一中间件,还用于估算该请求处理的预算时间,如该预算时间大于或等于时间阈值,则判断为满足转发处理条件;如该预算时间小于时间阈值,则判断为不满足转发处理条件。
【文档编号】G06F9/46GK103970592SQ201310029706
【公开日】2014年8月6日 申请日期:2013年1月25日 优先权日:2013年1月25日
【发明者】杜玉巍, 陈洪涛, 易其亮 申请人:深圳市金证科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1