一种网络业务请求的处理系统及其方法

文档序号:7962696阅读:108来源:国知局
专利名称:一种网络业务请求的处理系统及其方法
技术领域
本发明涉及互联网和电信业务系统,特别是涉及增值业务领域和HTTP(Hyper Text Transfer Protocol,超文本传输协议)及类似协议请求和响应的 处理系统及其方法。
背景技术
随着无线带宽的提高,增值业务在移动通讯中占有越来越重要的地位。目 前很多增值业务系统都使用HTTP或其他网络协议(如SMTP、 SIP、 SOAP、 WAP等,与使用HTTP协议等同)与客户端交互, 一般的处理流程为HTTP服务器接受来自客户端的业务请求,然后将该业务请求转交给其他网元进行处 理;其他网元完成业务处理之后由HTTP服务器将处理结果返回给客户端。其 中,SMTP(Simple Mail Transfer Protocol)为简单邮件传输协议,SIP(Session Initiation Protocol)为会话发起协议,SOAP(Simple Object Access Protocol)为简 单对象访问协议,WAP(Wireless Application Protocol)为无线应用协议。对于并发的HTTP请求,传统的HTTP服务器采取的策略是为每 一个业务 请求分配一个单独的线程来处理,该线程一直到响应结束后才能被回收。这样 的处理方法对于响应时间较短的系统来说是合适的,因为一个业务请求不会长 时间占用一个线程,该线程相关的资源能很快被回收。但是在移动通讯领域的很多增值业务系统,HTTP的响应时间比普通网站 的响应时间长得多。在这些增值业务系统中,对一个业务请求的处理需多个网 元的多次交互才能完成,有些网元还是跨地域的,交互时间较长;有些网元由 于同时访问的移动用户数量多,本身负载就较重,响应较慢;有些网元与外界 交互采取异步方式,只能保证准实时响应。例如,某增值业务,涉及的跨地域 的网元超过10个,平均响应时间在30秒钟以上,忙时响应时间甚至可能达到 2-5分钟。在这种情况下,如果HTTP服务器还是按传统的处理方法,为每一个业务
请求分配一个单独的线程,那么HTTP服务器的并发处理能力将急剧卜-降。这 是由于在请求处理过程中,该请求占用了 -个线程,当其他网元进行业务处理 时,这个线程只能等待并占用系统资源;其他网元处理业务需要的时间越长, 该线程等待的时间就越长,从而在单位时间内处理的请求数就越少。因此,系 统要提高并发处理能力,HTTP服务器就必须创建大量的线程,并且每个线程 的利用率都非常低,而线程是一种数量非常有限的资源;并且随着线程数量的 增加,线程间切换的代价也变大,从而降低了 CPU(Center Processing Unit,中 央处理器)的利用率。发明内容本发明所要解决的技术问题在于提供一种网络业务请求的处理系统及其 方法,用于解决电信增值业务处理时间较长导致接入服务器并发处理能力较 低,占用资源过多的问题。为了实现上述目的,本发明提供了一种网络业务请求的处理系统,包括顺 次连接的客户端、服务器,其特征在于,所述服务器又包括一通讯处理模块,用于与所述客户端进行通讯;一协议处理模块,用于根据协议将所述通讯处理模块转发的请求数据包解 析成所述协议对应的数据结构,将接收的响应数据结构构造成所述协议对应的 响应数据包,再转发至所述通讯处理模块,并负责请求、响应的调度;及一业务处理模块,用于接收并根据所述协议处理模块发送的数据进行业务 处理,并将处理结果再转发至所述协议处理模块;所述通讯处理模块与所述协议处理模块之间、所述协议处理模块与所述业 务处理模块之间均通过异步消息进行通信。所述的网络业务请求的处理系统,其中,所述协议处理模块、所述业务处 理模块皆为多个。所述的网络业务请求的处理系统,其中,所述每一业务处理模块设置有一 个或多个业务处理器。所述的网络业务请求的处理系统,其中,所述客户端与所述通讯处理模块 之间的接口协议包括HTTP协议、SMTP、 SOAP协议、SIP协议及WAP协议。 所述的网络业务请求的处理系统,其中,所述通讯处理模块通过异步套接 字方式与所述协议处理模块通信。为了实现上述目的,本发明还一种利用所述系统实现网络业务请求的处理 方法,其特征在于,包括一通讯处理步骤,用于与所述客户端进行通讯;一协议处理步骤,用于根据协议将所述通讯处理模块转发的请求数据包解 析成所述协议对应的数据结构,将接收的响应数据结构构造成所述协议对应的 响应数据包,再转发至所述通讯处理模块,并负责请求、响应的调度;及一业务处理步骤,用于接收并根据所述协议处理模块发送的数据进行业务 处理,并将处理结果再转发至所述协议处理模块;所述通讯处理模块与所述协议处理模块之间、所述协议处理模块与所述业 务处理模块之间均通过异步消息进行通信。所述的网络业务请求的处理方法,其中,还包括一请求接收处理步骤,具 体为步骤71,由所述通讯处理模块接收所述客户端发送的请求数据包并转发 至所述协议处理模块;步骤72,通过所述协议处理模块根据一特定协议解析所述请求数据包, 构造成一内部数据结构,并通过异步消息转发至所述业务处理模块;及步骤73,由所述业务处理模块接收并根据所述内部数据结构进行业务处理。所述的网络业务请求的处理方法,其中,所述步骤71中,还包括当所述 通讯处理模块接收到所述客户端建立连接的请求时根据安全策略确定是否接 受该请求的步骤,若该请求在拒绝范围内,则直接断开该连接,若是,所述通 讯处理模块接收请求数据包并通过异步消息转发至所述协议处理模块。所述的网络业务请求的处理方法,其中,还包括一响应处理返回步骤,具 体为步骤91,所述业务处理模块进行业务处理,构造一表示响应的内部数据结构,并将该内部数据结构发送给协议处理模块;步骤92,由所述协议处理模块根据该内部数据结构构造一特定协议的响 应数据包,并通过异步消息将该响应数据包发送给通讯处理模块;及
步骤93,通过所述通讯处理模块转发该响应数据包至所述客户端。 所述的网络业务请求的处理方法,其中,所述步骤93之后,还包括一通 过协议处理模块判断是否需要关闭所述通讯处理模块与所述客户端之间指定 连接的步骤,若是,则所述协议处理模块发送一异步消息通知所述通讯处理模 块关闭所述指定连接,所述通讯处理模块在收到所述通知后关闭所述指定连 接。本发明的技术效果在于本发明通过提供一种结构清晰的框架和实现方法,使得在接入服务器内部 和后续的业务处理以异步方式运行,避免线程过多并被长期占用引起的问题, 另外,对于模块功能的合理划分避免了单个节点成为性能瓶颈的可能性。进一步,本发明通过合理划分模块,各个模块之间采用异步消息通讯,通 讯处理模块采用异步套接字实现,避免由于多个线程长时间等待导致并发处理 能力较低,占用资源过多。通过业务处理模块提供开发接口,屏蔽接入服务器 内部框架和协议解析等实现细节,使得增值业务开发人员只需要关心业务逻辑 即可。进一步,协议处理模块和业务处理模块都可以有多个,部署在多台物理机 器上,通过一定的分发策略实现负荷分担,从而提高处理能力,避免性能瓶颈。本发明解决了因电信增值业务处理时间较长导致接入服务器(接收客户端 请求的第一个网元)并发处理能力较低、占用资源过多、资源利用率低,从而 导致系统整体性能下降的问题。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。


图l为本发明模块划分和接口图; 图2为本发明一种典型的多模块组网示意图; 图3为本发明一典型请求处理流程示意图; 图4为本发明一典型响应处理流程示意图。
具体实施方式
下面结合附图,以HTTP请求为例,对本发明(其他协议类似,包括SMTP、 SIP、 SOAP、 WAP等)进行详细描述。如图1所示,为本发明模块划分和接口图。本发明的系统结构包括HTTP 客户端IO、异步处理HTTP服务器20、其他系统/辅助设备30;其中异步处理 HTTP处理器20由三个模块组成通讯处理模块201、协议处理模块202及业 务处理模块203。通讯处理模块201,负责处理与HTTP客户端10之间的通讯,包括接受 来自HTTP客户端10的通讯连接请求、进行安全处理、接收请求数据和发送 响应数据。协议处理模块202,负责处理HTTP协议,根据HTTP协议把HTTP请求 消息解析成系统内部的数据结构,以及把系统内部的响应数据结构构造成 HTTP协议对应的响应数据包;同时还负责管理请求和响应之间的对应关系和 发送响应的先后顺序。业务处理模块203,负责处理具体业务;为了适应多变的业务逻辑,业务 处理模块203被设计成一个容器,该容器中可以装配一个或多个不同的业务处 理器2031。由开发人员按照规定接口开发业务处理器2031,即可装配到业务 处理模块203中,实现需要的业务逻辑。通讯处理模块201与HTTP客户端10之间的接口为HTTP协议,也可以 定义成其他协议,如SMTP、 SIP、 SOAP、 WAP等协议。通讯处理模块201与协议处理模块202之间、协议处理模块202与业务处 理模块203之间均为系统内部的异步消息通信;业务处理器2031如果与其他 网元之间进行交互, 一般也通过异步消息通讯。异步消息,是指发出一个消息 之后,线程继续向下执行,而不必等待响应数据包的返回。如图2所示,为本发明一种典型的多模块组网示意图。结合图1,该图中, 描述了通讯处理模块201、协议处理模块202、业务处理模块203之间的组网 关系;协议处理模块202包括协议处理模块l…协议处理模块n,业务处理模 块203包括业务处理模块1…业务处理模块m,其中,n、 m均为大于等于2 的自然数。 通讯处理模块201与具体协议无关,只根据安全策略决定是否接受HTTP 客户端10连接;如果接受了连接,则根据配置的分发策略和各个协议处理模 块l n的状态,把数据包转发给协议处理模块1到协议处理模块n中的--个, 并记录转发的协议处理模块的序号k(k=l n)。协议处理模块k根据协议解析 数据包,完成原始数据包到协议数据结构转换,如果解析过程中出错,解析失 败,则直接返回响应给通讯处理模块201,并通知通讯处理模块201断开连接, 如果解析成功,则根据分发策略和业务处理模块1 m的状态将转换后的对象 转发业务处理模块1到业务处理模块m中的一个,并记录对应业务处理模块 的序号j(j— m)。业务处理模块j收到请求后,调用对应的业务处理器j,业 务处理器j与其他网元进行交互;业务处理器j返回结果后,业务处理模块203 和协议处理模块202、通讯处理模块201沿着与请求相反方向返回响应并修改 自身状态。如图3所示,为本发明一典型请求处理流程示意图。结合图1、 2,以HTTP 协议和Java实现为例进行如下描述系统启动时,根据配置依次启动通讯处理模块201,协议处理模块l n, 业务处理模块1 m;各个模块启动完毕后,通过定时消息向前一级模块报告 自身状态,具体为业务处理模块j向协议处理模块1 n报告,协议处理模 块k向通讯处理模块201报告。如果协议处理模块k连续几次没有收到业务处 理模块j的状态报告,则认为业务处理模块j己经不可用;同样,连接处理模 块j连续几次没有收到协议处理模块k的状态报告,也认为协议处理模块k不 可用。启动完毕后,通讯处理模块201处于监听状态。该请求处理流程具体包括如下步骤步骤301, HTTP客户端10发起一个HTTP连接请求,指向通讯处理模块 201所在的IP和对应的监听端口,默认为80;步骤302,通讯处理模块201接收HTTP客户端10建立连接的请求后, 根据安全策略决定是否允许建立连接,如果连接请求在拒绝范围内,则不允许, 直接断开该连接;如果允许,则采用Java异步1/0(Input/0utput,输入/输出) 建立连接并等待请求数据包;步骤303,通讯处理模块201在指定时间内接收用户请求数据包,通讯处 理模块201可采用异步套接字,单个线程即可接收多个并发连接发送的数据; 如果超时则返回错误;步骤304,通讯处理模块201生成序列号SeqNO(随机数, 一定时间内保 持唯一),并在请求数据包中添加该序列号SeqNO后,根据已知的分发策略和 协议处理模块1 n的状态列表,选择一个协议处理模块k转发请求数据包, 并记录序列号SeqNO和客户端连接之间的对应关系。该转发过程能够实现负 荷分担和高可用性,并具有良好的可扩展性;步骤305,协议处理模块k首先解析出序列号SeqNO,然后根据协议(可 配置或自我适配)把请求数据包解析成 一个表示该特定协议的请求的数据结构 并填写同一个序列号S叫NO;如果解析过程中出错,直接返回错误响应给通 讯处理模块201。协议可配置或自我适配是指在实现了多种协议的情况下,程 序可以指定采用其中一种协议进行解析,也可以根据协议本身的特点分析部分 数据包(如前面几个字节)判断应该采用何种协议解析。步骤306,协议处理模块k根据已知的分发策略和业务处理模块1 m的 状态列表,选择一个业务处理模块j转发该数据结构,并记录序列号SeqNO 和对应数据结构之间的关系。该转发过程能够实现负荷分担和高可用性,并具 有良好的可扩展性;及步骤307,业务处理模块j根据请求的URL(Uniform Resource Locator,统 一资源定位器)调用对应业务处理器j,调用参数中包含一个数据结构和一个对 应的响应数据结构(内部也有一个序列号SeqNO,并与数据结构的序列号 SeqNO —致),并等待响应。业务处理器j与其他网元交互的过程一般是异步 的,当然也可以是同步的,可以根据消息和业务类型自由选择。如图4所示,为本发明一典型响应处理流程示意图。结合图1、 2,该响 应处理流程具体包括如下步骤步骤401,业务处理结束并返回,或者超时(超时时间可配置或程序设置), 或者响应数据结构的缓冲区满,或者响应数据结构被触发某些特定操作(如 Flush、 Finish等),则返回响应数据结构;如果是超时或者被触发如Finish等特定操作时,响应数据结构中是否最后 一个响应的标志设置为True;步骤402,业务处理模块j返回表示内部的响应数据结构到协议处理模块k;
步骤403,业务处理模块j根据响应数据结构中的序列号S叫NO修改自身 状态;步骤404,协议处理模块k根据特定协议对响应数据结构进行编码,生成 表示特定协议的响应数据包,并转发给通讯处理模块201;步骤405,协议处理模块k根据序列号SeqNO修改自身状态,如果是最 后一个响应,则删除序列号SeqNO和对应数据结构之间的对应关系和其他一 些相关记录,并发送断开连接的消息给通讯处理模块201;步骤406,通讯处理模块201根据请求过程中保存的序列号SeqNO和连 接之间的对应关系,转发响应数据包至HTTP客户端10;步骤407,判断是否需要断开连接,如果不需要,则通讯处理模块201继 续等待协议处理模块k的下一个响应数据包;若需要,执行步骤408;步骤408,收到协议处理模块k的断开连接消息或者超时,通讯处理模块 201断开连接,删除对应的序列号SeqNO和连接的对应关闭,释放连接和相 关的资源。在上述实施例中,通讯处理模块能够并发处理多个请求,但并没有对每一 个请求建立一个线程,而从通讯处理模块往后的处理流程中都是异步方式实现 的。这些协议处理模块和业务处理模块,完全可以根据业务量大小和实际情况 在多台物理机器上部署,而通讯处理模块由于仅仅是处理连接和发送响应并且 避免了多个长时间等待的线程带来的问题,所以一般很难成为性能瓶颈。异步 处理是从系统整体或者通讯处理模块、协议处理模块、业务处理模块各模块之 间的交互来说的,也即是,如果采用协议A的应用解析协议本身比较耗资源, 就采用多台物理机器配置多个协议处理模块,如果采用协议B的应用业务本 身比较耗资源,就多配置几个物理机器来部署业务处理模块。综上所述,采用本发明克服了由于增值业务系统本身响应时间过长,线程 占用时间过长,从而导致WWW服务器处理能力下降的问题。对用户保持同 步响应的效果的同时,在系统内部又具有异歩处理的好处,同时使得系统具有 部署的灵活性和良好的扩展性。本发明实现过程中,通讯处理模块采用2个线 程-一个接收线程、 一个发送线程;协议处理模块和业务处理模块采用10-20 个线程并发处理,在平均响应时间30秒钟以上时,与传统的WWW处理方式 (并发线程300个)相比处理能力至少提高3-10倍。 进一歩,采用多线程处理人量并发请求的其他协议(如SMTP、 SOAP、 SIP、 WAP)的服务器,在遇到由于服务器端业务逻辑复杂、交互网元多等因素造成 处理时间长从而导致系统整体性能下降的时候,完全可以采用类似的方法解 决,只需要针对不同协议作-些简单的适应性修改即可。本发明通过提供一种结构清晰的框架和实现方法,使得在接入服务器内部 和后续的业务处理以异步的方式来运行,避免线程过多并被长期占用引起的问 题,对于模块功能的合理划分避免了单个节点成为性能瓶颈的可能性。本发明解决了因电信增值业务处理时间较长导致接入服务器(接收客户端 请求的第一个网元)并发处理能力较低、占用资源过多、资源利用率低,从而 导致系统整体性能下降的问题。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种网络业务请求的处理系统,包括顺次连接的客户端、服务器,其特征在于,所述服务器又包括一通讯处理模块,用于与所述客户端进行通讯;一协议处理模块,用于根据协议将所述通讯处理模块转发的请求数据包解析成所述协议对应的数据结构,将接收的响应数据结构构造成所述协议对应的响应数据包,再转发至所述通讯处理模块,并负责请求、响应的调度;及一业务处理模块,用于接收并根据所述协议处理模块发送的数据进行业务处理,并将处理结果再转发至所述协议处理模块;所述通讯处理模块与所述协议处理模块之间、所述协议处理模块与所述业务处理模块之间均通过异步消息进行通信。
2、 根据权利要求1所述的网络业务请求的处理系统,其特征在于,所述 协议处理模块、所述业务处理模块皆为多个。
3、 根据权利要求2所述的网络业务请求的处理系统,其特征在于,所述 每--业务处理模块设置有一个或多个业务处理器。
4、 根据权利要求1、 2或3所述的网络业务请求的处理系统,其特征在于, 所述客户端与所述通讯处理模块之间的接口协议包括HTTP协议、SMTP、 SOAP协议、SIP协议及WAP协议。
5、 根据权利要求1、 2或3所述的网络业务请求的处理系统,其特征在于, 所述通讯处理模块通过异步套接字方式与所述协议处理模块通信。
6、 -一种利用权利要求1所述系统实现网络业务请求的处理方法,其特征 在于,包括一通讯处理步骤,用于与所述客户端进行通讯;一协议处理步骤,用于根据协议将所述通讯处理模块转发的请求数据包解 析成所述协议对应的数据结构,将接收的响应数据结构构造成所述协议对应的 响应数据包,再转发至所述通讯处理模块,并负责请求、响应的调度;及一业务处理步骤,用于接收并根据所述协议处理模块发送的数据进行业务处理,并将处理结果再转发至所述协议处理模块;所述通讯处理模块与所述协议处理模块之间、所述协议处理模块与所述业 务处理模块之间均通过异步消息进行通信。
7、 根据权利要求6所述的网络业务请求的处理方法,其特征在于,还包括-请求接收处理步骤,具体为步骤71,由所述通讯处理模块接收所述客户端发送的请求数据包并转发至所述协议处理模块;步骤72,通过所述协议处理模块根据一特定协议解析所述请求数据包, 构造成一内部数据结构,并通过异步消息转发至所述业务处理模块;及步骤73,由所述业务处理模块接收并根据所述内部数据结构进行业务处理。
8、 根据权利要求7所述的网络业务请求的处理方法,其特征在于,所述 步骤71中,还包括当所述通讯处理模块接收到所述客户端建立连接的请求时 根据安全策略确定是否接受该请求的步骤,若该请求在拒绝范围内,则直接断 开该连接,若是,所述通讯处理模块接收请求数据包并通过异步消息转发至所 述协议处理模块。
9、 根据权利要求6、 7或8所述的网络业务请求的处理方法,其特征在于, 还包括-响应处理返回步骤,具体为步骤91,所述业务处理模块进行业务处理,构造一表示响应的内部数据 结构,并将该内部数据结构发送给协议处理模块;步骤92,由所述协议处理模块根据该内部数据结构构造一特定协议的响 应数据包,并通过异步消息将该响应数据包发送给通讯处理模块;及步骤93,通过所述通讯处理模块转发该响应数据包至所述客户端。
10、 根据权利要求9所述的网络业务请求的处理方法,其特征在于,所述 步骤93之后,还包括一通过协议处理模块判断是否需要关闭所述通讯处理模 块与所述客户端之间指定连接的步骤,若是,则所述协议处理模块发送一异步 消息通知所述通讯处理模块关闭所述指定连接,所述通讯处理模块在收到所述 通知后关闭所述指定连接。
全文摘要
本发明公开了一种网络业务请求的处理系统及其方法,该系统包括顺次连接的客户端、服务器,服务器又包括通讯处理模块,用于与客户端进行通讯;协议处理模块,用于根据协议将通讯处理模块转发的请求数据包解析成协议对应的数据结构,将接收的响应数据结构构造成协议对应的响应数据包,再转发至通讯处理模块,并负责请求、响应的调度;及业务处理模块,用于接收并根据协议处理模块发送的数据进行业务处理,并将处理结果再转发至协议处理模块;通讯处理模块与协议处理模块之间、协议处理模块与业务处理模块之间均通过异步消息进行通信。本发明解决了电信增值业务处理时间较长导致接入服务器并发处理能力较低,占用资源过多的问题。
文档编号H04L29/06GK101115050SQ20061008889
公开日2008年1月30日 申请日期2006年7月24日 优先权日2006年7月24日
发明者吕伟初, 泳 熊 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1