一种报文处理方法及设备的制作方法
【专利摘要】本发明公开了一种报文处理方法及设备,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的。
【专利说明】一种报文处理方法及设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种报文处理方法及设备。
【背景技术】
[0002]目前,网络设备(如业务网关、路由器以及网络安全设备等)上通常会运行协议识另O、内容解析、负载均衡、网络加速以及安全等业务,以支撑网络流量的有效管理。
[0003]具体地,网络设备在对接收到的网络数据流中的报文进行处理时,通常需要严格按照各报文的先后顺序进行,并且,网络设备上运行的各种业务在处理同一报文时也需要严格保持有序性。例如,针对任一报文,网络设备需要首先对其执行协议识别,之后,才能对其执行内容解析,最后才能对其执行安全检查和/或负载均衡等操作。另外,针对报文在业务处理过程中产生的建链或断链等事件消息,也需要有序地传递给各个业务应用。
[0004]基于上述情况,网络设备通常可采用以下方式对接收到的报文以及报文在业务处理过程中产生的事件消息进行处理:
[0005]方式一:根据网络设备接收报文的先后顺序以及报文携带的时间戳、分片等信息,将各报文组成相应的报文队列,以及,按照事件消息产生的先后顺序,将所有由报文产生的事件消息也组成相应的事件消息队列。在报文队列和事件消息队列上,分别管理和维护待执行的各业务处理模块,如图1中报文队列对应的协议识别模块、IPS IntrusionPrevention System,入侵预防系统)模块以及 ADC (Application Delivery Controller,应用交付控制器)模块,以及事件消息队列对应的ADC模块或IPS模块等,以此保证报文以及事件消息处理的有序性,此时,所述报文以及事件消息的处理过程可如图1所示。
[0006]但是,由于在采用上述方式对各报文以及各事件消息进行业务处理时,存在报文队列、事件消息队列以及业务处理模块队列等多种队列,从而导致队列之间的管理调度较为复杂;并且,由报文产生的事件消息,其执行的时机,有可能需要与报文同步,若采用多个队列则很难实现;再有,当网络设备采用多核多线程方式处理报文和事件消息时,会导致锁资源的频繁使用,在加大系统开销的同时增加了并行处理冲突的可能性,对系统资源和性能均存在较大的浪费。
[0007]方式二:对事件消息的处理在报文队列处理过程中触发,并以中断的形式实现,此时,所述报文以及事件消息的处理过程可如图2所示。
[0008]与方式一相比,由于可采用中断的形式对报文处理过程中产生的事件消息进行处理,因此可达到隐藏事件消息队列、从而降低队列调度复杂性的目的。但是,对于某些需要在报文完整处理完毕后才能执行的事件消息,方式二并不能够完全支持,再有,由于在采用方式二对各报文以及各事件消息进行业务处理时,事先注册了多个业务处理模块,如图2中报文对应的IPS模块以及ADC模块,或者断链事件消息对应的IPS断链处理模块、ADC断链处理模块以及WOC (WAN Optimization Controller,广域网优化控制器)断链处理模块等,即使实际需要执行的业务处理模块只有其中的一部分,也需要将所有业务处理模块依次执行过去,对系统的性能会有一定程度的浪费。[0009]也就是说,目前存在的对各报文以及各在报文处理过程中产生的事件消息进行处理的方式并不佳,因此,亟需提供一种新的处理方式以解决上述问题。
【发明内容】
[0010]本发明实施例提供了一种报文处理方法及设备,用以解决目前存在的对各报文以及各在报文处理过程中产生的事件消息进行处理的方式并不佳的问题。
[0011]第一方面,提供了一种报文处理方法,包括:
[0012]网络设备从包括至少一个报文的报文队列中获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;
[0013]根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
[0014]结合第一方面,在第一方面的第一种可能的实现方式中,确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序,包括:
[0015]根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
[0016]结合第一方面,在第一方面的第二种可能的实现方式中,在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,所述方法还包括:
[0017]若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文;
[0018]若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给报文接收设备。
[0019]结合第一方面,或者第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,包括:
[0020]根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
[0021]结合第一方面,或者第一方面的第一种或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种;
[0022]所述将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中,包括:
[0023]当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,
[0024]当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,
[0025]当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
[0026]第二方面,提供了一种报文处理设备,包括:
[0027]报文获取单元,用于从包括至少一个报文的报文队列中获取当前待处理报文;
[0028]模块确定单元,用于确定对所述报文获取单元获取到的当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;
[0029]报文处理单元,用于根据所述模块确定单元确定的所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位
置当中。
[0030]结合第二方面,在第二方面的第一种可能的实现方式中,所述模块确定单元,具体用于根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
[0031]结合第二方面,在第二方面的第二种可能的实现方式中,所述报文处理单元,还用于在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文,以及,若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给相应的报文接收设备。
[0032]结合第二方面,或者第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述报文处理单元,具体用于根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
[0033]结合第二方面,或者第二方面的第一种或第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种;
[0034]所述报文处理单元,具体用于当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,具体用于当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,具体用于当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
[0035]在本发明实施例所述技术方案中,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的。
【专利附图】
【附图说明】
[0036]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1所示为现有技术中报文以及事件消息的处理过程的示意图一;
[0038]图2所示为现有技术中报文以及事件消息的处理过程的示意图二 ;
[0039]图3所示为本发明实施例一中所述报文处理方法的流程示意图;
[0040]图4所不为本发明实施例一中所述统一的报文格式的不意图;
[0041]图5所示为本发明实施例二中所述报文处理设备的结构示意图;
[0042]图6所示为本发明实施例三中所述报文处理设备的结构示意图。
【具体实施方式】
[0043]本发明实施例提供了一种报文处理方法及设备,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的。
[0044]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0045]实施例一:
[0046]如图3所示,其为本发明实施例一中所述报文处理方法的流程示意图,所述报文处理方法可适用于各种需要执行多种功能业务的网络设备,如业务网关、路由器以及网络安全设备等网络设备当中,本发明实施例对此不作任何限定。具体地,所述报文处理方法可包括以下步骤:
[0047]步骤101:针对包括至少一个报文的报文队列,网络设备从所述报文队列中获取当前待处理报文。
[0048]具体地,在本发明所述实施例中,网络设备在接收到来自报文发送设备的报文后,首先会根据报文的源IP (Internet Protocol,网络协议)地址、目的IP地址、源端口、目的端口以及传输协议等参数信息,确定各报文所属报文流,并按照接收到的各报文的先后顺序以及各报文上携带的时间戳、分片等信息,将从属于同一报文流中的各报文依次缓存在同一报文队列当中。
[0049]相应地,针对包括至少一个报文的报文队列,在从所述报文队列中获取当前待处理报文时,可按照所述报文队列当中的各报文的先后顺序,从所述报文队列当中依次获取各报文作为当前待处理报文。
[0050]步骤102:确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序。
[0051]具体地,在本发明所述实施例中,网络设备可事先根据不同的报文运行条件(和/或报文运行场景)配置相应条件(和/或场景)下需要执行的业务处理模块,即预先配置业务处理模块与报文运行条件(和/或运行场景)的对应关系。
[0052]其中,以报文运行场景为例,所述场景可以细分为报文入口、出口、L7层(应用层)处理等,本发明实施例对此不作任何限定。另外需要说明的是,网络设备还可以根据实际情况,对所述预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系进行实时地调整设定,以便更为灵活地适应报文的业务处理过程,本发明实施例对此也不作任何限定。
[0053]相应地,在本发明所述实施例中,确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序,可以包括:
[0054]根据预先配置的业务处理模块与报文运行条件的对应关系,确定与所述当前待处理报文的运行条件相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序;
[0055]或者,根据预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
[0056]其中,所确定的业务处理模块通常可以包括协议识别模块、IPS模块、ADC模块、WOC模块以及由用户根据需要自行定制的特殊业务处理模块中的一种或多种,本发明实施例对此不作任何限定。
[0057]进一步地,所确定的至少一个业务处理模块还可以根据用户的实际需求进行实时地增删,以便进一步地达到更为灵活地适应报文的业务处理过程的目的,本发明实施例对此也不作任何限定。
[0058]进一步地,在本发明所述实施例中,任一报文队列中的各报文通常可具备如图4所示的统一的报文格式。所述统一的报文格式中可具备用于表示报文具体数据内容的报文数据字段、用于表示报文数据长度的报文数据长度字段、用于表示报文具体类型的报文类型字段、以及公共数据字段等,本发明实施例对此不作任何限定。进一步地,所述公共数据字段中可包括用于表示报文运行条件和/或运行场景的流表信息、当报文为首包时的首包标记、以及当报文为报文业务处理过程中产生的事件消息时的事件消息标记信息等,本发明实施例对此也不作任何限定。
[0059]相应地,在根据预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系,确定与所述当前待处理报文运行条件(和/或运行场景)相对应的业务处理模块时,可根据所述当前待处理报文中携带的公共数据字段信息,确定所述当前待处理报文对应的报文运行条件(如源IP地址、目的IP地址、源端口、目的端口等信息)(和/或报文运行场景)等信息,并根据确定的报文运行条件(和/或运行场景),从预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系中,获取与所述确定的报文运行条件(和/或运行场景)相对应的业务处理模块。
[0060]需要说明的是,在本发明所述实施例中,针对任一报文,由于所确定的对所述报文进行业务处理时所需的至少一个业务处理模块相互之间存在设定的排列顺序,因此,可将确定的对所述报文进行业务处理时所需的至少一个业务处理模块简称为业务处理模块链,相应地,针对同一报文队列中的任意两个报文,所确定的分别与所述任意两个报文相匹配的业务处理模块链可相互相同或不同,本发明实施例对此不作任何限定。
[0061]另外需要说明的是,针对同一报文队列中的任意两个报文,当所确定的分别与所述任意两个报文相匹配的业务处理模块链为同一业务处理模块链,即为所述同一报文队列中的各待处理报文预先配置的业务处理模块链为同一业务处理模块链时,可在确定所述同一报文队列中的首个报文相匹配的业务处理模块链后,直接将该业务处理模块链作为与所述同一报文队列中的各其他报文相匹配的业务处理模块链,以达到简化后续报文业务处理流程的目的。
[0062]步骤103:根据确定的所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理。
[0063]具体地,在本发明所述实施例中,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,可以包括:
[0064]根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
[0065]例如,当所确定的至少一个业务处理模块中包括依次排列的协议识别模块、IPS模块以及ADC模块时,可根据各业务处理模块的排列先后顺序,依次调度协议识别模块、IPS模块以及ADC模块,并根据调度的模块对所述当前待处理报文进行相应的业务处理。
[0066]步骤104:将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
[0067]其中,所述事件消息至少可以包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息等,本发明实施例对此不作任何限定。[0068]具体地,在对所述当前待处理报文进行业务处理时,若检测到所述当前待处理报文为携带有SYN (Synchronous,建立连接时使用的握手信号)标识的报文,则会产生相应地建链事件消息,以建立新的连接;进一步地,以TCP/IP协议为例,当判断到三次握手成功时,则会产生相应地建链完成事件消息,以表示本次连接建立完成;进一步地,在检测到FIN (结束)报文或RST (复位)报文时,则表示当前连接已经结束、可以释放相关的资源,此时,可产生相应地断链事件消息。
[0069]进一步地,当检测到请求结束消息,如携带有Request End标识的消息时,可产生相应地请求结束事件消息,以对该请求结束消息对应的事件消息进行结束处理;或者,在检测到携带有Transact ion End标识的消息时,可产生相应地事务结束事件消息,以通知网络设备相应事件消息已处理完毕。
[0070]进一步地,当所确定的对所述当前待处理报文进行业务处理所需的至少一个业务处理模块中还包括由用户自行定制的特殊业务处理模块时,所述事件消息还可以包括由所述特殊业务处理模块产生的特殊事件消息,本发明实施例对此不作任何限定。另外需要说明的是,在对所述待处理报文进行业务处理的过程中也可不产生任何事件消息,本发明实施例对此也不作任何限定,此时,则可无需执行本步骤104。
[0071]相应地,将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中,可以包括:
[0072]当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处,其中,所述建链完成事件消息标记通常可设置在所述伪报文的公共数据字段中。也就是说,当所述事件消息为建链完成事件消息时,可优先执行所述建链完成事件消息,相应地,对于之前等待建链完成以继续处理的报文,需要在等待时就重新加入到报文队列的队尾处;或者,
[0073]当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处。也就是说,此时,仅需要在所述当前待处理报文中记录建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,来实现对所述事件消息所进行的伪报文组装以及伪报文插入处理,以便所述当前待处理报文对应的后续各业务处理模块能够读取所述标记,并根据所述标记进行相应的业务处理即可。其中,所述建链事件消息标记可由isSyn字段表示,所述请求结束事件消息标记可由isRequestEnd表示,所述事务结束事件消息标记可由isTransactionEnd字段表示,本发明实施例对此不作赘述;或者,
[0074]当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处,其中,所述断链事件消息标记通常可设置在所述伪报文的公共数据字段中,并且可由i sTeardown字段表示,本发明实施例对此也不作赘述。[0075]再有,所述事件消息还可以包括由各业务处理模块所生成的特殊事件消息,如IPS模块可记录一条报文流为攻击报文流,此时,可对所述当前待处理报文具备的报文格式中的公共数据字段进行相应的特殊事件消息标记,以便后续该报文流的其他待处理报文直接根据该事件消息标记,进行相应的业务处理,如选择直接丢弃报文等。
[0076]进一步地,所述事件消息还可以包括由用户自行定制的特殊业务处理模块所产生的特殊事件消息,此时,可将所述特殊事件消息组装为与所述当前待处理报文具备相同报文格式且包含相应特殊事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的特定位置处,本发明实施例对此不作赘述。
[0077]进一步地,在本发明所述实施例中,在按照所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中之后,所述方法还可以包括以下步骤:
[0078]若确定对所述当前待处理报文进行的业务处理操作已执行完毕,则可从所述报文队列中获取下一报文,并将所述下一报文作为新的当前待处理报文,以及,对所述新的当前待处理报文执行上述确定业务处理模块以及根据确定的业务处理模块进行相应的业务处理的操作。
[0079]进一步地,在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,所述方法还可以包括:
[0080]若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文;
[0081]若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给相应的报文接收设备。
[0082]本发明实施例一提供了一种报文处理方法,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同报文格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的;同时,由于针对报文队列中的任一报文,可根据预先配置的业务处理模块链对所述报文进行相应的业务处理,其中,所述业务处理模块链中的各业务模块可通过简单增删的方式来实现,从而进一步简化了报文与事件消息的处理逻辑,提高了报文与事件消息的处理效率与处理灵活性。
[0083]实施例二:
[0084]如图5所示,其为本发明实施例二中所述报文处理设备的结构示意图,所述报文处理设备可为业务网关、路由器以及网络安全设备等各种需要执行多种功能业务的独立网络设备,或者,设置于上述各独立网络设备中的集成设备等,本发明实施例对此不作任何限定。
[0085]具体地,所述报文处理设备可以包括报文获取单元11、模块确定单元12以及报文处理单元13,其中:
[0086]所述报文获取单元11可用于从包括至少一个报文的报文队列中获取当前待处理报文。
[0087]具体地,所述报文获取单元11可用于在接收到来自报文发送设备的报文时,根据报文的源IP地址、目的IP地址、源端口、目的端口以及传输协议等参数信息,确定各报文所属报文流,并按照接收到的各报文的先后顺序以及各报文上所带时间戳、分片等信息,将从属于同一报文流中的各报文依次缓存在同一报文队列当中,以及,针对任一包括至少一个报文的报文队列,按照所述报文队列当中的各报文的先后顺序,从所述报文队列当中依次获取各报文作为当前待处理报文。
[0088]所述模块确定单元12可用于确定对所述报文获取单元11获取到的当前待处理报文进行业务处理所需的至少一个业务处理模块、以及所述至少一个业务处理模块相互之间的业务执行顺序。
[0089]具体地,所述模块确定单元12具体可用于根据预先配置的业务处理模块与报文运行条件的对应关系,确定与所述当前待处理报文的运行条件相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序;或者,
[0090]具体可用于根据预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
[0091]其中,所确定的业务处理模块通常可以包括协议识别模块、IPS模块、ADC模块、WOC模块以及由用户根据需要自行定制的特殊业务处理模块中的一种或多种,本发明实施例对此不作任何限定。
[0092]需要说明的是,在本发明所述实施例中,针对任一报文,由于所确定的对所述报文进行业务处理时所需的至少一个业务处理模块相互之间存在设定的排列顺序,因此,可将确定的对所述报文进行业务处理时所需的至少一个业务处理模块简称为业务处理模块链,相应地,针对同一报文队列中的任意两个报文,所确定的分别与所述任意两个报文相匹配的业务处理模块链可相互相同或不同,本发明实施例对此不作任何限定。
[0093]另外需要说明的是,针对同一报文队列中的任意两个报文,当所确定的分别与所述任意两个报文相匹配的业务处理模块链为同一业务处理模块链,即为所述同一报文队列中的各待处理报文预先配置的业务处理模块链为同一业务处理模块链时,可在确定所述同一报文队列中的首个报文相匹配的业务处理模块链后,直接将该业务处理模块链作为与所述同一报文队列中的各其他报文相匹配的业务处理模块链,以达到简化后续报文业务处理流程的目的。
[0094]所述报文处理单元13可用于根据所述模块确定单元12确定的所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
[0095]具体地,所述报文处理单元13可用于根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
[0096]进一步地,在本发明所述实施例中,在对当前待处理报文进行业务处理过程中产生的事件消息可以包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息或者事务结束事件消息中的一种或多种,本发明实施例对此不作任何限定。[0097]具体地,在对所述当前待处理报文进行业务处理时,若检测到所述当前待处理报文为携带有SYN标识的报文,则会产生相应地建链事件消息,以建立新的连接;进一步地,以TCP/IP协议为例,当判断到三次握手成功时,则会产生相应地建链完成事件消息,以表示本次连接建立完成;进一步地,在检测到FIN报文或RST报文时,则表示当前连接已经结束、可以释放相关的资源,此时,可产生相应地断链事件消息;进一步地,当检测到请求结束消息,如携带有Request End标识的消息时,可产生相应地请求结束事件消息,以对该请求结束消息对应的事件消息进行结束处理;在检测到携带有Transaction End标识的消息时,可产生相应地事务结束事件消息,以通知网络设备相应事件消息已处理完毕。
[0098]进一步地,当所确定的对所述当前待处理报文进行业务处理所需的至少一个业务处理模块中还包括由用户自行定制的特殊业务处理模块时,所述事件消息还可以包括由所述特殊业务处理模块产生的特殊事件消息,本发明实施例对此不作任何限定。另外需要说明的是,在对所述待处理报文进行业务处理的过程中也可不产生任何事件消息,本发明实施例对此也不作任何限定。
[0099]进一步地,当对当前待处理报文进行业务处理过程中产生的事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息或者事务结束事件消息等时,所述报文处理单元13具体可用于通过以下方式将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中:
[0100]当所述事件消息为建链完成事件消息时,所述报文处理单元13具体可用于将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;
[0101 ] 当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,所述报文处理单元13具体可用于分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处,即可通过分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的方式,实现对所述事件消息所进行的伪报文组装以及伪报文插入处理;
[0102]当所述事件消息为断链事件消息时,所述报文处理单元13具体可用于将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
[0103]进一步地,在本发明所述实施例中,所述报文获取单元11还可用于在根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中之后,若确定对所述当前待处理报文进行的业务处理操作已执行完毕,则从所述报文队列中获取下一报文,并将所述下一报文作为新的当前待处理报文,以及依次触发所述模块确定单元12以及报文处理单元13对所述新的当前待处理报文执行上述确定业务处理模块以及根据确定的业务处理模块进行相应的业务处理的操作。
[0104]进一步地,所述报文处理单元13还可用于在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文,以及,若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给相应的报文接收设备。
[0105]需要说明的是,在本发明所述实施例中,所述报文处理设备还可以包括模块配置单元14,其中:
[0106]所述模块配置单元14可用于预先根据不同的报文运行条件(和/或报文运行场景)配置相应条件(和/或场景)下需要执行的业务处理模块,即预先配置业务处理模块与报文运行条件(和/或运行场景)的对应关系,以便所述模块确定单元12根据所述预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系,执行相应的业务处理模块的确定操作。
[0107]其中,以报文运行场景为例,所述场景可以细分为报文入口、出口、L7层处理等,本发明实施例对此不作任何限定。另外需要说明的是,所述模块配置单元14还可以根据实际情况,对所述预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系进行实时地调整设定,以便更为灵活地适应报文的业务处理过程,本发明实施例对此也不作任何限定。
[0108]再有需要说明的是,在本发明所述实施例中,任一报文队列中的各报文通常可具备如图4所不的统一的报文格式。其中,所述统一的报文格式中可具备用于表不报文具体数据内容的报文数据字段、用于表示报文数据长度的报文数据长度字段、用于表示报文具体类型的报文类型字段、以及公共数据字段等,本发明实施例对此不作任何限定。进一步地,所述公共数据字段中可包括用于表示报文运行条件和/或运行场景的流表信息、当报文为首包时的首包标记、以及当报文为报文业务处理过程中产生的事件消息时的事件消息标记信息等,本发明实施例对此也不作任何限定。
[0109]本发明实施例二提供了一种报文处理设备,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同报文格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的;同时,由于针对报文队列中的任一报文,可根据预先配置的业务处理模块链对所述报文进行相应的业务处理,其中,所述业务处理模块链中的各业务模块可通过简单增删的方式来实现,从而进一步简化了报文与事件消息的处理逻辑,提高了报文与事件消息的处理效率与处理灵活性。
[0110]实施例三:
[0111]本发明实施例三提供了一种可用于实现本发明实施例一所示方法的报文处理设备,如图6所示,其为本发明实施例三中所述报文处理设备的结构示意图,为了便于说明,仅示出了与本发明实施例三相关的部分,具体技术细节未揭示的,请参照图1或图3所示的本发明各实施例。
[0112]具体地,所述报文处理设备通常可为业务网关、路由器以及网络安全设备等各种需要执行多种功能业务的独立网络设备,或者,设置于上述各独立网络设备中的集成设备等,本发明实施例对此不作任何限定。具体地,本发明实施例三以所述报文处理设备为路由器为例进行说明,图6示出的是与本发明实施例三相关的路由器20的部分结构的框图。[0113]如图6所示,所述路由器20可以包括:存储器21以及处理器22等部件。本领域技术人员可以理解,图6中示出的路由器20的结构并不构成对路由器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本发明实施例对此不作任何限定。
[0114]下面结合图6对所述路由器20的各个构成部件进行具体的介绍:
[0115]所述存储器21可用于存储接收到的各报文。具体地,所述存储器21可用于在接收到来自报文发送设备的报文时,根据报文的源IP地址、目的IP地址、源端口、目的端口以及传输协议等参数信息,确定各报文所属报文流,并按照接收到的各报文的先后顺序以及各报文上携带的时间戳、分片等信息,将从属于同一报文流中的各报文依次缓存在同一报文队列当中,即所述存储器21具体可用于以报文队列的形式存储接收到的各报文。
[0116]需要说明的是,所述存储器21可为cache (高速缓存)或ROM (只读存储器)等形式的存储设备,本发明实施例对此不作任何限定。
[0117]所述处理器22可用于从所述存储器21存储的包括至少一个报文的报文队列中,获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序;以及,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
[0118]具体地,所述处理器22具体可用于根据预先配置的业务处理模块与报文运行条件的对应关系,确定与所述当前待处理报文的运行条件相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序;或者,
[0119]具体可用于根据预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行场景相对应的至少一个业务处理模块,根据所述至少一个业务处理模块在所述当前待处理报文的运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
[0120]其中,所确定的业务处理模块通常可以包括协议识别模块、IPS模块、ADC模块、WOC模块以及由用户根据需要自行定制的特殊业务处理模块中的一种或多种,本发明实施例对此不作任何限定。
[0121]另外,在本发明所述实施例中,针对任一报文,由于所确定的对所述报文进行业务处理时所需的至少一个业务处理模块相互之间存在设定的排列顺序,因此,可将确定的对所述报文进行业务处理时所需的至少一个业务处理模块简称为业务处理模块链,相应地,针对同一报文队列中的任意两个报文,所述处理器22所确定的分别与所述任意两个报文相匹配的业务处理模块链可相互相同或不同,本发明实施例对此不作任何限定。
[0122]另外需要说明的是,针对同一报文队列中的任意两个报文,当所确定的分别与所述任意两个报文相匹配的业务处理模块链为同一业务处理模块链,即为所述同一报文队列中的各待处理报文预先配置的业务处理模块链为同一业务处理模块链时,可在确定所述同一报文队列中的首个报文相匹配的业务处理模块链后,直接将该业务处理模块链作为与所述同一报文队列中的各其他报文相匹配的业务处理模块链,以达到简化后续报文业务处理流程的目的。
[0123]进一步地,在确定当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序之后,所述处理器22具体可用于根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
[0124]进一步地,在根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,且在所述业务处理过程中产生事件消息,如建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息或者事务结束事件消息等时,所述处理器22具体可用于当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,具体可用于当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处,即可通过分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的方式,实现对所述事件消息所进行的伪报文组装以及伪报文插入处理;或者,具体可用于当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
[0125]进一步地,在本发明所述实施例中,所述处理器22还可用于在按照所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中之后,若确定对所述当前待处理报文进行的业务处理操作已执行完毕,则从所述当前待处理报文对应的报文队列中获取下一报文,并将所述下一报文作为新的当前待处理报文,以及触发所述处理器22对所述新的当前待处理报文执行上述确定业务处理模块以及根据确定的业务处理模块进行相应的业务处理的操作。
[0126]进一步地,在本发明所述实施例中,所述处理器22还可用于在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文,以及,若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给相应的报文接收设备。
[0127]需要说明的是,在本发明所述实施例中,所述处理器22还可用于预先根据不同的报文运行条件(和/或报文运行场景)配置相应条件(和/或场景)下需要执行的业务处理模块,即预先配置业务处理模块与报文运行条件(和/或运行场景)的对应关系,以便后续根据所述预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系,执行相应的业务处理模块的确定操作。
[0128]其中,以报文运行场景为例,所述场景可以细分为报文入口、出口、L7层处理等,本发明实施例对此不作任何限定。另外需要说明的是,所述处理器22还可以根据实际情况,对所述预先配置的业务处理模块与报文运行条件(和/或运行场景)的对应关系进行实时地调整设定,以便更为灵活地适应报文的业务处理过程,本发明实施例对此也不作任何限定。
[0129]再有需要说明的是,在本发明所述实施例中,任一报文队列中的各待处理报文通常可具备如图4所示的统一的报文格式。其中,所述统一的报文格式中可具备用于表示报文具体数据内容的报文数据字段、用于表示报文数据长度的报文数据长度字段、用于表示报文具体类型的报文类型字段、以及公共数据字段等,本发明实施例对此不作任何限定。进一步地,所述公共数据字段中可包括用于表示报文运行条件和/或运行场景的流表信息、当报文为首包时的首包标记、以及当报文为报文业务处理过程中产生的事件消息时的事件消息标记信息等,本发明实施例对此也不作任何限定。
[0130]本发明实施例三提供了一种报文处理设备,通过将报文业务处理过程中产生的事件消息组装为与所述报文具备相同报文格式的伪报文,并按照所述事件消息的类型,将所述伪报文插入到所述报文所在报文队列的相应位置当中的方式,来实现报文与事件消息的统一管理,从而简化了报文与事件消息的处理逻辑,达到了提高报文与事件消息的处理效率与处理灵活性、并进而提高系统性能的目的;同时,由于针对报文队列中的任一报文,可根据预先配置的业务处理模块链对所述报文进行相应的业务处理,其中,所述业务处理模块链中的各业务模块可通过简单增删的方式来实现,从而进一步简化了报文与事件消息的处理逻辑,提高了报文与事件消息的处理效率与处理灵活性。 [0131]本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0132]本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的
>J-U ρ?α装直。
[0133]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0134]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0135]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0136]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种报文处理方法,其特征在于,包括: 网络设备从包括至少一个报文的报文队列中获取当前待处理报文,并确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序; 根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
2.如权利要求1所述的报文处理方法,其特征在于,确定对所述当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序,包括: 根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
3.如权利要求1所述的报文处理方法,其特征在于,在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,所述方法还包括: 若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文; 若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给报文接收设备。
4.如权利要求1 ~3任一所述的报文处理方法,其特征在于,根据所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,包括: 根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
5.如权利要求1~3任一所述的报文处理方法,其特征在于,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种; 所述将所述事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,并根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中,包括: 当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者, 当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
6.—种报文处理设备,其特征在于,包括: 报文获取单元,用于从包括至少一个报文的报文队列中获取当前待处理报文; 模块确定单元,用于确定对所述报文获取单元获取到的当前待处理报文进行业务处理所需的至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序; 报文处理单元,用于根据所述模块确定单元确定的所述至少一个业务处理模块以及所述至少一个业务处理模块相互之间的业务执行顺序对所述当前待处理报文进行业务处理,并将业务处理过程中产生的事件消息组装为与所述当前待处理报文具备相同报文格式的伪报文,以及,根据所述事件消息的类型,将所述伪报文插入到所述报文队列的相应位置当中。
7.如权利要求6所述的报文处理设备,其特征在于, 所述模块确定单元,具体用于根据预先配置的业务处理模块与报文运行条件的对应关系,或预先配置的业务处理模块与报文运行场景的对应关系,确定与所述当前待处理报文的运行条件或运行场景相对应的至少一个业务处理模块,并根据所述至少一个业务处理模块在所述当前待处理报文的运行条件或运行场景下的执行先后顺序,确定所述至少一个业务处理模块相互之间的业务执行顺序。
8.如权利要求6所述的报文处理设备,其特征在于,` 所述报文处理单元,还用于在确定对所述当前待处理报文进行的业务处理操作已执行完毕之后,若确定所述当前待处理报文为伪报文,则丢弃所述当前待处理报文,以及,若确定所述当前待处理报文为非伪报文,则将所述当前待处理报文发送给相应的报文接收设备。
9.如权利要求6~8任一所述的报文处理设备,其特征在于, 所述报文处理单元,具体用于根据所述至少一个业务处理模块相互之间的业务执行顺序,依次调度各业务处理模块,并根据调度的业务处理模块对所述当前待处理报文进行相应的业务处理。
10.如权利要求6~8任一所述的报文处理设备,其特征在于,所述事件消息包括建链事件消息、建链完成事件消息、断链事件消息、请求结束事件消息以及事务结束事件消息中的一种或多种; 所述报文处理单元,具体用于当所述事件消息为建链完成事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含建链完成事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报头位置处;或者,具体用于当所述事件消息为建链事件消息、请求结束事件消息或事务结束事件消息时,分别对所述当前待处理报文进行建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记,以得到与所述当前待处理报文具备相同报文格式且分别包含相应的建链事件消息标记、请求结束事件消息标记或事务结束事件消息标记的伪报文,并将所述伪报文插入到所述报文队列中的所述当前待处理报文所在位置处;或者,具体用于当所述事件消息为断链事件消息时,将所述事件消息组装为与所述当前待处理报文具备相同报文格式且包含断链事件消息标记的伪报文,并将所述伪报文插入到所述报文队列的报尾位置处。
【文档编号】H04L12/70GK103684886SQ201310753775
【公开日】2014年3月26日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】潘方敏, 刘赫伟 申请人:杭州华为数字技术有限公司