首页> 中国专利> 一种J2EE架构下业务的处理方法及系统

一种J2EE架构下业务的处理方法及系统

摘要

本发明公开了一种J2EE架构下业务的处理方法及系统,涉及通信技术领域,解决现有技术中J2EE架构下业务处理请求异常时容易积压在WEB层或EJB层的技术问题。其中,该方法包括:EJB服务器接收到来自WEB服务器的业务请求和预设的执行时间,并为业务请求分配控制业务请求的EJB容器线程;EJB容器线程创建执行业务请求的EJB执行线程,EJB执行线程设置有执行时限为预设的执行时间的限制;EJB执行线程执行业务请求,并向数据库发送业务请求继续处理;如果EJB执行线程执行业务请求,并等待数据库处理业务请求的时间超过预设的执行时间,则EJB执行线程向数据库发送取消请求,并中止业务请求的执行;数据库接收到该取消请求后中止对业务请求的处理,并回滚。

著录项

  • 公开/公告号CN103873276A

    专利类型发明专利

  • 公开/公告日2014-06-18

    原文格式PDF

  • 申请/专利权人 中国移动通信集团浙江有限公司;

    申请/专利号CN201210535515.2

  • 发明设计人 钟储建;于祥兵;蒋海滨;

    申请日2012-12-12

  • 分类号H04L12/24;H04L29/08;

  • 代理机构北京中誉威圣知识产权代理有限公司;

  • 代理人郭振兴

  • 地址 310006 浙江省杭州市环城北路288号移动大厦

  • 入库时间 2023-12-17 00:25:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-20

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20121212

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别涉及一种J2EE架构下业务的处理方法及 系统。

背景技术

J2EE(Java 2 Enterprise Edition,Java 2企业版)体系架构由于其可移植 性强、可重用性好以及互操作性强等优点,成为IT系统中普通采用的架构。 而基于J2EE架构实现的中间件服务器也大量涌现,比较有名的有IBM的 WebSphere,Oracle的Weblogic等,在普遍采用的展现层(WEB)、应用层(EJB)、 数据库层(Database)三层架构中他们都发挥着各自的重要角色。

遵循该J2EE架构的系统中,如CRM(Customer Relationship Management, 客户关系管理)),在数据库层某些表执行慢或是应用层某些业务的应用程序故 障的时候,用户或营业员在办理相关的业务时,出现系统白屏死机,无法继 续后续业务。例如客服人员在按客户的要求查询某业务时,因为该业务的应 用程序出现异常,造成前台界面出现长时间白屏现象,导致客户长时间等待 或是必须关闭应用重新登录导致话务中断;再例如某个应用程序出现异常, 而运维人员无法及时获得故障告警信息,导致大量请求积压在中间件或数据 库端,最终导致整个系统崩溃,无法继续工作。因而必须解决在部分服务出 现响应慢、故障的情况下,系统不会白屏死机,用户和营业员可以办理其他 正常业务。为了解决以上问题,现有技术通常会有如下2个方案:1)中间件 平台提供调用超时控制机制,如Oracle WebLogic平台提供的RMI调用超时 时间设置,来控制WEB层到应用层调用的超时时间,防止用户界面出现白屏 死机故障。2)在WEB层到应用层的调用采用异步提交模式,即用户提交请 求后,马上返回,而不需要等待后台处理完毕,用户界面不会出现白屏死机 故障。

但是,现有技术的方案仍旧存在如下技术问题:

方案1):该方法在后台服务故障的情况下,虽然WEB层对业务的调用 能够在设定的时间内返回,避免用户长时间等待、白屏死机等问题,但没有 解决应用层、数据库层存在的本质问题,系统无法恢复正常,致大量请求积 压在应用层或数据库层,容易导致整个系统崩溃。方案2):异步提交方法不 需要后台服务处理完成就马上返回,虽然不会造成系统等待和白屏,但是同 样没有解决应用层、数据库层存在的本质问题,系统无法恢复正常,致大量 请求积压在应用层或数据库层,最终导致整个系统崩溃。

发明内容

为了解决现有技术中J2EE构建下的系统故障时,无法解决发生在应用层 和数据库层存在的本质问题,导致大量请求积压在应用层或数据库层的技术 问题,本发明提出一种J2EE架构下业务的处理方法及系统。

一种J2EE架构下业务的处理方法,包括:

应用层EJB服务器接收到来自展现层WEB服务器的业务请求和预设的执 行时间,并为所述业务请求分配控制所述业务请求的EJB容器线程;

EJB容器线程创建执行所述业务请求的EJB执行线程,所述EJB执行线 程设置有执行时限为所述预设的执行时间的限制;

所述EJB执行线程执行所述业务请求,并向数据库发送所述业务请求继 续处理;

如果所述EJB执行线程执行所述业务请求,并等待所述数据库处理所述 业务请求的时间超过所述预设的执行时间,则所述EJB执行线程向所述数据 库发送取消请求,并中止所述业务请求的执行;

所述数据库接收到该取消请求后中止对业务请求的处理,并回滚。

一种J2EE架构下业务的处理系统,包括:WEB容器装置及EJB容器装 置;

其中,所述WEB容器装置包括:

WEB容器池模块,用于接收到客户端发送来的业务请求后,为所述业务 请求分配控制所述业务请求的WEB容器线程;

WEB容器线程,用于获取用户为所述业务请求预设的执行时间,并创建 执行所述业务请求的WEB执行线程,所述WEB执行线程设置有执行时限为 所述预设的执行时间的限制;

WEB执行线程,用于执行所述业务请求,调用EJB服务器的应用程序继 续执行所述业务请求,以及将所述预设的执行时间传递到所述EJB服务器; 如果执行所述业务请求,并调用EJB服务器的应用程序的时间超过所述预设 的执行时间,则中止所述调用;否则由EJB服务器继续执行所述业务请求;

其中,所述EJB容器装置包括:

EJB容器池模块,用于接收WEB执行线程发送而来的所述业务请求,并 为所述业务请求分配控制所述业务请求的EJB容器线程;

EJB容器线程,用于创建执行所述业务请求的EJB执行线程,所述EJB 执行线程设置有执行时限为所述预设的执行时间的限制;

EJB执行线程,用于执行所述业务请求,并向数据库发送所述业务请求 继续处理;如果执行所述业务请求,并等待所述数据库处理所述业务请求的 时间超过所述预设的执行时间,则向所述数据库发送取消请求,并中止所述 业务请求的执行。

本实施例提供的方案通过采用将容器线程和执行线程分离,并预设执行 时间的技术手段,实现了可精确的控制了整个业务请求在WEB服务器、EJB 服务器和数据库的执行时间,取得了系统故障情况时的自我保护和自我恢复 功能,因此不会再应用层和数据库层产生请求积压。并且,不管是WEB服务 器(代表展现层)上、EJB服务器(代表应用层)还是数据库上,局部的故 障不会扩散,。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与 本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图 中:

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下 面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来 讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附 图。

图1为本发明实施例1中提供的一种J2EE架构下业务的处理方法的应用 场景示意图;

图2为本发明实施例1中提供的一种J2EE架构下业务的处理方法的流程 示意图;

图3为本发明实施例1中提供的一种J2EE架构下业务的处理方法的一种 实现效果示意图;

图4为本发明实施例1中提供的一种J2EE架构下业务的处理方法的另一 种实现效果示意图;

图5为本发明实施例2中提供的一种J2EE架构下业务的处理系统的结构 示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 并且,以下各实施例均为本发明的可选方案,实施例的排列顺序及实施例的 编号与其优选执行的顺序无关。

实施例1

本实施例提供一种J2EE架构下业务的处理方法,该方法中引入执行线程, 将现有技术中对业务请求进行处理的容器线程功能替换为由容器线程和执行 线程组合完成。其中,容器线程用于控制业务;执行线程用于处理业务请求 的业务逻辑,即用来真正的处理该业务请求的具体事务。容器线程是J2EE服 务器(如WEB服务器或EJB服务器)创建和管理的线程,不能由开发人员控 制,通过自创建的执行线程的引入来达到可控的目的。容器线程对于接收到 的业务请求,将创建执行线程来处理该业务请求的具体事务。更特别地,本 实施例还预设了每个业务被允许处理的执行时间SLA_TimeOut,那么相应地, 容器线程在创建执行线程时也会将该执行时间告知执行线程,以便执行线程 可以在执行时间到达,但仍未完成业务请求的具体事务时,进行中止,不再 继续执行。

具体而言,参照图1所示的J2EE架构下的场景示意图,优选方案中, 在本实施例执行前,管理员可通过管理配置平台预先配置每个业务请求允许 被应用程序执行的时间,即执行时间(SLA_TimeOut),然后由该管理配置平 台将该SLA_TimeOut发送到WEB服务器或EJB服务器。虽然可以对同一业 务分别针对展现层WEB服务器和应用层EJB服务器预设不同的执行时间,但 是为了简便起见,本实施例中,无论是在WEB服务器还是EJB服务器执行时 间相同,并且采用由WEB服务器将执行时间传递到EJB服务器的方式,使 EJB服务器获取到该执行时间。

如图2所示,该方法包括:

步骤101,客户端发送业务请求到WEB服务器;

步骤102,WEB服务器接收客户端发送来的业务请求后,从WEB容器 线程池中为该业务请求分配控制业务请求的WEB容器线程;

步骤103,WEB容器线程获取管理员为业务请求预设的执行时间 SLA_TimeOut,并创建执行业务请求的WEB执行线程,WEB执行线程被设 置了可允许执行的时限,该时限为SLA_TimeOut;

本步骤中可以使用JAVA开发工具JDK的FutureTask模式创建作为异步 任务的WEB执行线程(Executable Thread),该线程真正的处理该业务请求, 并且当WEB容器线程需要时可以通过WEB执行线程获取执行线程已经处理 完的业务请求。创建该WEB执行线程时,WEB容器线程也会将该 SLA_TimeOut告诉WEB执行线程,以便WEB执行线程在处理业务请求的过 程中,实时监控自己的执行时间。

步骤104,WEB执行线程按照正常的过程执行业务请求,并在处理完在 WEB服务器处该业务请求应该被执行的任务后,调用EJB服务器的应用程序 继续执行业务请求(处理该业务请求应该是什么应用程序就调用什么应用程 序,这部分与现有技术一样,在此不赘述,实际上调用EJB服务器应用程序 继续执行业务请求也就是将该业务请求继续发送到EJB服务器的相应接口), 同时将SLA_TimeOut传递到EJB服务器。在上述过程中,如果WEB执行线 程执行业务请求,并调用EJB服务器的应用程序的时间超过SLA_TimeOut, 则执行步骤105;否则由EJB服务器继续执行业务请求,执行步骤106,

步骤105,WEB执行线程中止执行;

优选方案中,该步骤105还可包括WEB容器线程返回客户端系统繁忙信 息,并发送告警到管理配置平台。管理配置平台可将告警发送到告警系统, 通知运维人员进行处理,后继结束本流程。

由于WEB容器线程用于控制业务请求的处理,且该WEB执行线程是有 WEB容器线程创建的,因此,如果WEB执行线程中止操作,WEB容器线程 可立即监控到这一行为。

步骤106,EJB服务器接收到业务请求后,并同样为业务请求分配控制业 务请求的EJB容器线程;

步骤107,EJB容器线程创建执行业务请求的EJB执行线程,EJB执行线 程被设置了可允许执行的时限,该时限为SLA_TimeOut;

本步骤与步骤103类似,可以使用JAVA开发工具JDK的FutureTask模 式创建作为异步任务的EJB执行线程(Executable Thread),该线程真正的处 理该业务请求在EJB服务器上应该被执行的部分,并且当EJB容器线程需要 时可以通过EJB执行线程获取执行线程已经处理完的业务请求。创建该EJB 执行线程时,EJB容器线程也会传递过来的将该SLA_TimeOut告诉EJB执行 线程,以便EJB执行线程在处理业务请求的过程中,实时监控自己的执行时 间。

步骤108,EJB执行线程执行业务请求,并将业务请求发送到数据库继续 处理,如果EJB执行线程执行业务请求,并等待数据库处理业务请求的时间 超过SLA_TimeOut,则执行步骤109;否则,则说明执行未超时,可按照现 有技术继续进行,完成后EJB容器线程以及EJB执行线程释放资源,请求执 行完毕。

本实施例中,等待数据库处理业务请求的时间是指数据库对该业务请求 进行处理并返回响应的时间。

在该步骤108中EJB执行线程执行业务请求与等待数据库处理业务请求 的时间总共不超过SLA_TimeOut,因此,当具体判断是否超时时,需将 SLA_TimeOut时间分成两部分。例如:SLA_TimeOut为10秒,若EJB执行 线程执行业务请求的时间为6秒,相应地,数据库处理业务请求的时间应该 为4秒,因此当EJB执行线程执行时间超过6秒时,则可认为业务请求的处 理超时,EJB执行线程中止。

步骤109,EJB执行线程向数据库发送取消请求,中止业务请求的执行;

优选方案,该步骤109还可包括:EJB容器线程返回客户端系统繁忙信 息,并发送告警到管理配置平台。管理配置平台可将告警发送到告警系统, 通知运维人员进行处理,同时,EJB容器线程以及EJB执行线程释放资源, 请求执行完毕。

步骤110,数据库接收到该取消请求后中止对业务请求的处理,并回滚, 即数据库恢复到接收该业务请求之前的状态。

通过执行本实施例的方法,如图3所示,例如当某个业务请求出现异常 时,在该业务执行时间到达SLA_TimeOut后,执行线程能够及时中止该业务 请求的处理,并通过客户端及时返回提示信息,避免用户长时间等待出现白 屏问题;如图4所示,例如当数据库针对某个业务请求运行时间长,执行时 间到达该业务的SLA_TimeOut后,数据库事务自动进行取消回滚,防止数据 库资源耗尽导致整个系统崩溃,并在客户端及时返回提示信息,避免用户长 时间等待白屏。

本实施例提供的方法通过采用执行时间对业务请求的处理进行限制,同 时创建可在超时时中止处理的执行线程的技术手段,解决了现有技术中大量 请求积压在EJB或数据库的技术问题,进而取得了在发送业务请求处理无法 响应或异常时,根据执行时间强制中止执行线程,使系统恢复,局部的故障 不会扩散,提高系统可用性的技术效果,同时由于本方案还可在出现异常时, 返回提示信息和发送告警信息到告警系统,查找异常原因,进而避免系统可 能产生的故障,取得减少业务中断时长的技术效果。

实施例2

为了便于实施例1的实现,本实施例提供一种J2EE架构下业务的处理系 统,如图5所示,该系统包括:WEB容器装置21及EJB容器装置22;

其中,WEB容器装置21包括:

WEB容器池模块211,用于接收到客户端发送来的业务请求后,为业务 请求分配控制业务请求的WEB容器线程212;

WEB容器线程212,用于获取用户为业务请求预设的执行时间,并创建 执行业务请求的WEB执行线程213,WEB执行线程213设置有执行时限为 预设的执行时间的限制;

WEB执行线程213,用于执行业务请求,调用EJB服务器的应用程序继 续执行业务请求,以及将预设的执行时间传递到EJB服务器;如果执行业务 请求,并调用EJB服务器的应用程序的时间超过预设的执行时间,则中止调 用;否则由EJB服务器继续执行业务请求;

其中,EJB容器装置22包括:

EJB容器池模块221,用于接收WEB执行线程发送而来的业务请求,并 为业务请求分配控制业务请求的EJB容器线程222;

EJB容器线程222,用于创建执行业务请求的EJB执行线程223,EJB执 行线程223设置有执行时限为预设的执行时间的限制;

EJB执行线程223,用于执行业务请求,并向数据库发送业务请求继续处 理;如果执行业务请求,并等待数据库处理业务请求的时间超过预设的执行 时间,则向数据库发送取消请求,并中止业务请求的执行。

优选方案中,该系统还包括:

管理配置装置23,用于接收用户预设的执行时间,并将执行时间发送到 WEB服务器或EJB服务器。

进一步,WEB容器装置21还包括:

WEB告警模块214,用于在WEB执行线程213中止调用后,返回客户 端系统繁忙信息,以及发送告警到管理配置装置;

EJB容器装置22还包括:

EJB告警模块224,用于在EJB执行线程223中止业务请求的执行后,通 过WEB服务器返回客户端系统繁忙信息,以及发送告警到管理配置装置。

优选方案中,该系统还包括数据库装置24;

数据库装置24,用于接收到EJB执行线程223发送的取消请求后中止对 业务请求的处理。

更优选地,WEB容器装置21位于WEB服务器;EJB容器装置22位于 EJB服务器;管理配置23装置位于管理配置平台,数据库装置位于数据库实 体中。此外,根据情况需要,WEB服务器与EJB服务器是同一服务器时, WEB容器装置21与EJB容器装置22位于EJB服务器也将安装在同一服务器 上。

本实施例提供的系统中,通过将容器线程和执行线程分离,实现了可精 确的控制了整个业务请求在WEB服务器、EJB服务器和数据库的执行时间, 实现系统故障情况时的自我保护和自我恢复功能。并且,本系统与现有技术 中中间件平台提供的RMI调用超时参数相比,可以根据业务需要针对每个业 务单独配置执行回滚时间,通过整个业务请求在WEB服务器、EJB服务器和 数据库的同步控制,保证应用事务的一致性;不管是WEB服务器上、EJB服 务器还是数据库上,局部的故障不会扩散;此外,还可以进行实时告警,让 维护人员及时处理系统潜在故障,减少系统中断时间。

本实施例的系统可以应用于任何中间件平台,比如Oracle Weblogic、IBM Websphere、Tomcat等,不依赖于中间件厂商。

本发明实施例提供的上述设备或装置等产品是属于以计算机程序的流 程方法为依据,并按照与方法实施例1和/或附图中方法流程的各步骤完全 对应一致的方式,所提供的功能模块。并且由于这种功能模块是通过计算 机程序的方式实现的软件装置,所以对于系统实施例2未具体提及的功能 模块,由于考虑到根据上述方法实施例记载的内容已经足够使本领域技术 人员从方法记录的各流程步骤直接地、毫无意外地确定实现所述步骤所必 须建立的功能模块,所以在此不赘述。

本发明的技术方案本质上或者说对现有技术做出贡献的部分是以软件 产品的形式体现出来的功能,也即是说:本发明的装置、设备或者组成系 统的各个设备其所执行的方法或实现的功能主体即便为硬件,但是实际上 实现本发明上述功能的部分却是计算机软件产品的模块或单元。并且该计 算机软件产品可存储在可读取的存储介质中,如计算机的软盘,硬盘或光 盘等,包括若干指令用以使得一台设备执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明能有多种不同形式 的具体实施方式,上文结合附图对本发明做举例说明,这并不意味着本发 明所应用的具体实施方式只能局限在这些特定的具体实施方式中,本领域 的技术人员应当了解,上文所提供的具体实施方式只是多种优选实施方式 中的一些示例,任何体现本发明权利要求的具体实施方式均应在本发明权 利要求所要求保护的范围之内;本领域的技术人员能够对上文各具体实施 方式中所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换。凡在本发明的精神和原则之内,所作的任何修改、等同替换或者改进 等,均应包含在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号