本发明实施例涉及统计技术领域,尤其涉及一种跨机房数据传输方法及服务器。
背景技术:
目前,随着互联网业务的不断扩容、以及互联业务复杂度的不断提高,经常会出现跨机房数据传输的需求,其中,不同机房中的服务器通常位于不同的子网中。
在跨机房数据传输的过程中,源机房中的第一服务器向目标机房中的第二服务器发送的请求消息首先会被发送至目标机房中的网络防护系统,该网络防护系统先对请求消息进行安全检测,在网络防护系统确定请求消息存在安全隐患时,拒绝向第二服务器发送该请求消息,在网络防护系统确定请求消息安全时,再将请求消息发送至第二服务器,以使第二服务器对该请求消息进行处理。由于跨机房数据传输的安全性要求较高,因此,网络防护系统对来自其它机房的请求消息的检测力度较高,进而导致正常的请求消息被网络防护系统拦截。在现有技术中,当第一服务器向第二服务器发送的请求消息被拦截时,第一服务器继续向第二服务器发送该请求消息,直到同一请求消息发送多次仍没有得到响应时,第一服务器放弃向第二服务器发送该请求消息,使得该请求消息无法得到正常处理,进而导致跨机房数据传输的可靠性较低。
技术实现要素:
本发明实施例提供一种跨机房数据传输方法及服务器,用于提高跨机房数据传输的可靠性。
第一方面,本发明实施例提供一种跨机房数据传输方法,应用于第一服务器,所述方法包括:
获取请求第二服务器处理的初始请求消息,所述第二服务器与所述第一服务器位于不同的机房;
将第一字符串添加至所述初始请求消息中,得到第一重组消息,对所述第一重组消息进行编码处理,得到第一编码消息,并向所述第二服务器对应的网络防护系统发送所述第一编码消息,以使所述网络防护系统判断所述第一编码消息安全时,向所述第二服务器发送所述第一编码消息;
若在预设时长内未接收到所述第二服务器发送的响应消息,则将第二字符串添加至所述初始请求消息中,得到第二重组消息,对所述第二重组消息进行编码处理,得到第二编码消息,并向所述网络防护系统发送所述第二编码消息;其中,所述第一编码消息和所述第二编码消息的相似度小于预设相似度。
在一种可能的实施方式中,对所述第一重组消息进行编码处理,包括:
对所述第一重组消息进行加密处理,和/或,对所述第一重组消息进行压缩处理;
对所述第二重组消息进行编码处理,包括:
对所述第二重组消息进行加密处理,和/或,对所述第二重组消息进行压缩处理。
在另一种可能的实施方式中,将第二字符串添加至所述初始请求消息中,得到第二重组消息之前,还包括:
获取对所述初始请求消息、及所述初始请求消息对应的重组消息的发送失败次数;
确定所述发送失败次数大于或等于预设次数。
在另一种可能的实施方式中,若确定所述发送失败次数小于所述预设次数,所述方法还包括:
向所述第二服务器发送所述第一重组消息。
第二方面,本发明实施例提供一种跨机房数据传输方法,应用于第二服务器,所述方法包括:
接收所述第二服务器对应的网络防护系统发送的第二编码消息,所述第二编码消息为所述第一服务器向所述网络防护系统发送的,所述第一服务器和所述第二服务器位于不同的机房;
对所述第二编码消息进行解码处理,得到第二重组消息;
对所述第二重组消息进行还原处理,得到初始请求消息,并对所述初始请求消息进行处理。
在一种可能的实施方式中,对所述第二编码消息进行解码处理,得到第二重组消息,包括:
对所述第二编码消息进行解码处理;
和/或,
对所述第二编码消息进行解压缩处理。
在另一种可能的实施方式中,对所述第二重组消息进行还原处理,得到初始请求消息,包括:
根据预设重组规则,确定所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置;
根据所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置,在所述第二重组消息中去除所述字符串,得到所述初始请求消息。
第三方面,本发明实施例提供一种第一服务器,包括:
第一获取模块,用于获取请求第二服务器处理的初始请求消息,所述第二服务器与所述第一服务器位于不同的机房;
重组模块,用于将第一字符串添加至所述初始请求消息中,得到第一重组消息;
编码模块,用于对所述第一重组消息进行编码处理,得到第一编码消息;
发送模块,用于向所述第二服务器对应的网络防护系统发送所述第一编码消息,以使所述网络防护系统判断所述第一编码消息安全时,向所述第二服务器发送所述第一编码消息;
所述重组模块还用于,当所述第一服务器在预设时长内未接收到所述第二服务器发送的响应消息时,将第二字符串添加至所述初始请求消息中,得到第二重组消息;
所述编码模块还用于,对所述第二重组消息进行编码处理,得到第二编码消息;其中,所述第一编码消息和所述第二编码消息的相似度小于预设相似度;
所述发送模块还用于,向所述网络防护系统发送所述第二编码消息。
在一种可能的实施方式中,所述编码模块具体用于:
对所述第一重组消息进行加密处理,和/或,对所述第一重组消息进行压缩处理;
对所述第二重组消息进行加密处理,和/或,对所述第二重组消息进行压缩处理。
在另一种可能的实施方式中,所述第一服务器还包括第二获取模块和确定模块,其中,
所述第二获取模块用于,在所述重组模块将第二字符串添加至所述初始请求消息中,得到第二重组消息之前,获取对所述初始请求消息、及所述初始请求消息对应的重组消息的发送失败次数;
所述确定模块用于,确定所述发送失败次数大于或等于预设次数。
在另一种可能的实施方式中,所述发送模块还用于,在所述确定模块确定所述发送失败次数小于所述预设次数时,向所述第二服务器发送所述第一重组消息。
第四方面,本发明实施例提供一种第二服务器,包括:
接收模块,用于接收所述第二服务器对应的网络防护系统发送的第二编码消息,所述第二编码消息为所述第一服务器向所述网络防护系统发送的,所述第一服务器和所述第二服务器位于不同的机房;
解码模块,用于对所述第二编码消息进行解码处理,得到第二重组消息;
还原模块,用于对所述第二重组消息进行还原处理,得到初始请求消息;
处理模块,用于对所述初始请求消息进行处理。
在一种可能的实施方式中,所述解码模块具体用于:
对所述第二编码消息进行解码处理;
和/或,
对所述第二编码消息进行解压缩处理。
在另一种可能的实施方式中,所述还原模块具体用于:
根据预设重组规则,确定所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置;
根据所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置,在所述第二重组消息中去除所述字符串,得到所述初始请求消息。
本发明实施例提供的跨机房数据传输方法及服务器,在第一服务器向第二服务器发送初始请求消息对应的第一编码消息之后,若第一服务器在预设时长内未接收到第二服务器发送的响应消息时,第一服务器认为该第一编码消息被拦截,第一服务器为了避免初始请求消息对应的编码消息被再次拦截,则第一服务器重新对初始请求消息进行重组和编码,得到第二编码消息,该第二编码消息和第一编码的相似度小于预设相似度,进而可以有效避免第二编码消息被拦截,以使第二服务器可以对第二编码消息对应的初始请求消息进行处理,进而提高了跨机房数据传输的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的跨机房数据传输方法的应用场景示意图;
图2为本发明提供的跨机房数据传输方法的流程示意图一;
图3为本发明提供的跨机房数据传输方法的流程示意图二;
图4为本发明提供的第一服务器的结构示意图一;
图5为本发明提供的第一服务器的结构示意图二;
图6为本发明提供的第二服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的跨机房数据传输方法的应用场景示意图,请参见图1,包括源机房101和目的机房102,源机房101中设置有第一服务器1011,目的机房102中设置有第二服务器1021和网络防护系统1022。其中,源机房101和目的机房102通常位于不同的子网、及不同的地理位置。需要说明的是,在实际应用过程中,源机房101中还可以设置其它服务器,目的机房102中也可以设置其它服务器,第一服务器1011中也可以设置有对应的网络防护系统。
在第一服务器1011向第二服务器1021发送请求消息时,先由第二服务器1021对应的网络防护系统1022对请求消息进行验证,当网络防护系统1022确定请求消息安全时,再向第二服务器1021发送该请求消息,当网络防护系统1022确定请求消息不安全时,对该请求消息进行拦截,并不再向第二服务器1021发送该请求消息。
在本申请中,在第一服务器1011判断发送给第二服务器1021的请求消息被拦截之后,第一服务器1011对请求消息进行重组,并向第二服务器1021发送重组后的请求消息,由于重组后的请求消息和请求消息的相似度较低,进而可以有效避免请求消息被再次拦截,进而提高了跨机房数据传输的可靠性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本发明提供的跨机房数据传输方法的流程示意图一,请参见图2,该方法可以包括:
S201、第一服务器获取请求第二服务器处理的初始请求消息,第二服务器与第一服务器位于不同的机房;
S202、第一服务器将第一字符串添加至初始请求消息中,得到第一重组消息,对第一重组消息进行编码处理,得到第一编码消息;
S203、第一服务器向第二服务器对应的网络防护系统发送第一编码消息;
S204、网络防护系统确定第一编码消息不安全时,拦截第一编码消息;
S205、若第一服务器在预设时长内未接收到第二服务器发送的响应消息,则将第二字符串添加至初始请求消息中,得到第二重组消息,对第二重组消息进行编码处理,得到第二编码消息;
S206、第一服务器向网络防护系统发送第二编码消息;
其中,第一编码消息和第二编码消息的相似度小于预设相似度;
S207、网络防护系统确定第二编码消息安全时,向第二服务器发送第二编码消息;
S208、第二服务器对第二编码消息进行解码处理,得到第二重组消息;
S209、第二服务器对第二重组消息进行还原处理,得到初始请求消息,并对初始请求消息进行处理;
S210、第二服务器向第一服务器发送响应消息。
在本申请中,在第一服务器接收到客户端发送的请求消息之后,第一服务器、及与第一服务器位于同一机房的其它服务器可能无法对该请求消息进行处理,若该请求消息需要由位于其它机房的第二服务器进行处理时,则第一服务器可以向第二服务器发送该请求消息,以请求第二服务器对该请求消息进行处理。
在本申请中,当第一服务器首次获取到初始请求消息之后,第一服务器可以执行图2所示的实施例实现向第二服务器发送该初始请求消息。在第一服务器第N(N为大于或等于1的正整数)次向第二服务器发送初始请求消息之后,若第一服务器没有接收到第二服务器发送的、该初始请求消息对应的响应消息时,第一服务器也可以执行图2所示的实施例再次向第二服务器发送该初始请求消息。在实际应用过程中,第一服务器重复执行图2所示的实施例,直到第一服务器接收到第二服务器发送的、该初始请求消息对应的相应消息。
需要说明的是,若第一服务器多次向第二服务器发送初始请求消息之后,才接收到第二服务器发送的、该初始请求消息对应的响应消息,则第一服务器每一次向第二服务器发送初始请求消息的过程相同,下面,以第一服务器任意两次向第二服务器发送初始请求消息的过程为例,对跨机房数据传输方法进行详细说明。
在实际应用过程中,当第一服务器首次获取到初始请求消息时,或者,第一服务器向第二服务器发送初始请求消息、且未接收到该初始请求消息对应的相应消息时,第一服务器生成随机的第一字符串,可选的,该第一字符串的长度可以为预设长度,并将该第一字符串添加至初始请求消息中,得到第一重组消息,可选的,可以将第一字符串添加至初始请求消息的头部或者尾部。
在第一服务器得到第一重组消息之后,第一服务器对第一重组消息进行编码处理,得到第一编码消息。可选的,第一服务器可以对第一重组消息进行加密处理,和/或,对第一重组消息进行压缩处理,进而得到第一编码消息。可选的,在第一服务器对第一重组消息进行编码处理之后,得到的第一编码消息为第一重组消息对应的二进制码流。需要说明的是,在实际应用过程中,第一服务器发送至第二服务器的大部分请求消息不会被拦截,因此,为了提高数据传输效率,在第一服务器首次向第二服务器发送初始请求消息时,第一服务器可以不对初始请求消息进行重组和编码处理;可选的,当第一服务器未对初始请求消息进行重组和编码处理时,可以在初始请求消息中携带预设标识,以指示第二服务器接收到的消息为未进行重组和编码处理的消息。
在第一服务器得到第一编码消息之后,当第一服务器需要向第二服务器发送第一编码消息时,第一服务器需要先将第一编码消息发送至第二服务器对应的网络防护系统,由网络防护系统对第一编码消息进行安全监测。当网络防护系统确定第一编码消息不安全时,网络防护系统拦截该第一编码消息,且不向第二服务器发送该第一编码消息;当网络防护系统确定第一编码消息安全时,网络防护系统将该第一编码消息发送至第二服务器,并由第二服务器对该第一编码消息进行处理。
假设网络防护系统确定第一编码消息不安全,则网络防护系统对该第一编码消息进行拦截,这样,第一服务器在预设时长内无法接收到第二服务器发送的响应消息。当第一服务器在预设时长内未接收到第二服务器发送的响应消息,则第一服务器可以推断第一编码消息被拦截,为了保证初始请求消息被正常处理,则第一服务器需要再次向第二服务器发送初始请求消息,为了避免初始请求消息再次被拦截,则第一服务器需要对初始请求消息进行重组,具体的:
第一服务器重新生成随机的第二字符串,该第二字符串和第一字符串不同,且第二字符串和第一字符串的长度相同,并将该第二字符串添加至初始请求消息中,得到第二重组消息,可选的,可以将该第二字符串添加至初始请求消息的头部或尾部。由于第一字符串和第二字符串不同,因此第一重组消息和第二重组消息不同。
在第一服务器得到第二重组消息之后,对第二重组消息进行编码处理,得到第二编码消息。可选的,第一服务器可以对第二重组消息进行加密处理,和/或,对第二重组消息进行压缩处理,以得到第二编码消息。可选的,该第二编码消息可以为第二重组消息对应的二进制码流;由于第一重组消息和第二重组消息不相同,由于第一编码消息是对第一重组消息的整体编码,第二编码消息是对第二重组消息的整体编码,当第一重组消息和第二重组消息中有细微的差异时,则第一重组消息和第二重组消息之间则有巨大的差异,因此,当第一重组消息中的第一字符串和第二重组新消息中的第二字符串不同时,则可以保证第一编码消息和第二编码消息的相似度小于预设相似度,可选的,该预设相似度可以为20%等。
在第一服务器得到第二编码消息之后,第一服务器向第二服务器对应的网络防护系统发送该第二编码消息,由于该第二编码消息和第一编码消息的相似度小于预设相似度,因此,网络防护系统对第二编码消息进行拦截的可能性很小。
当网络防护系统判断第二编码消息安全时,网络防护系统向第二服务器发送该第二编码消息。
在第二服务器接收到第二编码消息之后,第二服务器首先对第二编码消息进行解码处理,得到第二重组消息。其中,在第一服务器和第二服务器之间预设有同一的编码/解码规则,在第一服务器对重组消息进行编码时,第一服务器按照预设的编码规则,对重组消息进行编码;相应的,在第二服务器对编码消息进行解码时,第二服务器按照预设的解码规则,对编码消息进行解码。可选的,当第一服务器对重组消息进行加密处理时,第二服务器对编码消息进行解码处理,当第一服务器对重组消息进行压缩处理时,第二服务器对编码消息进行解压处理,当第一服务器对重组消息进行加密和压缩处理时,第二服务器对编码消息进行解密和解压处理。
在第二服务器得到第二重组消息之后,第二服务器对第二重组消息进行还原处理,得到初始请求消息。其中,在第一服务器和第二服务器之间设置有预设重组规则,该预设重组规则规定了字符串的长度、及字符串在初始请求消息中的位置;在第一服务器对初始请求消息进行重组时,第一服务器根据重组规则生成预设长度的字符串,并将生成的字符串添加至初始请求消息中、预设重组规则中规定的位置,在第二服务器对重组字符串进行还原时,第二服务器根据预设重组规则,确定第二重组消息中的字符串的长度、及字符串在第二重组消息中的位置,并根据第二重组消息中的字符串的长度、及字符串在第二重组消息中的位置,在第二重组消息中去除字符串,得到初始请求消息。
在第二服务器得到初始请求消息之后,第二服务器对初始请求消息进行处理,并向第一服务器反馈对应的响应消息。
本发明实施例提供的跨机房数据传输方法,在第一服务器向第二服务器发送初始请求消息对应的第一编码消息之后,若第一服务器在预设时长内未接收到第二服务器发送的响应消息时,第一服务器认为该第一编码消息被拦截,第一服务器为了避免初始请求消息对应的编码消息被再次拦截,则第一服务器重新对初始请求消息进行重组和编码,得到第二编码消息,该第二编码消息和第一编码的相似度小于预设相似度,进而可以有效避免第二编码消息被拦截,以使第二服务器可以对第二编码消息对应的初始请求消息进行处理,进而提高了跨机房数据传输的可靠性。
在图2所示实施例的基础上,在第一服务器向第二服务器发送第一编码消息之后,若第一服务器未接收到第二服务器发送的响应消息时,在第一服务器对初始请求消息进行再次重组之前,为了提高数据处理效率,第一服务器可以先确定未收到第二服务器的响应消息的原因,并根据未收到第二服务器的响应消息的原因确定是否对初始请求消息进行再次重组,具体的,请参见图3所示的实施例。
图3为本发明提供的跨机房数据传输方法的流程示意图二,请参见图3,该方法可以包括:
S301、第一服务器获取请求第二服务器处理的初始请求消息,第二服务器与第一服务器位于不同的机房;
S302、第一服务器将第一字符串添加至初始请求消息中,得到第一重组消息,对第一重组消息进行编码处理,得到第一编码消息;
S303、第一服务器向第二服务器对应的网络防护系统发送第一编码消息;
S304、网络防护系统确定第一编码消息不安全时,拦截第一编码消息;
S305、若第一服务器在预设时长内未接收到第二服务器发送的响应消息,获取对初始请求消息、及初始请求消息对应的重组消息的发送失败次数;
S306、第一服务器判断发送失败次数大于或等于预设次数;
若否,则执行S307;
若是,则执行S308;
S307、第一服务器重新向第二服务器发送第一重组消息;
S308、第一服务器将第二字符串添加至初始请求消息中,得到第二重组消息,对第二重组消息进行编码处理,得到第二编码消息;
S309、第一服务器向网络防护系统发送第二编码消息;
其中,第一编码消息和第二编码消息的相似度小于预设相似度;
S310、网络防护系统确定第二编码消息安全时,向第二服务器发送第二编码消息;
S311、第二服务器对第二编码消息进行解码处理,得到第二重组消息;
S312、第二服务器对第二重组消息进行还原处理,得到初始请求消息,并对初始请求消息进行处理;
S313、第二服务器向第一服务器发送响应消息。
需要说明的是,S301-S304的执行过程可以参见图2所示实施例中的S201-S204,S308-S313的执行过程可以参见图2所示实施例中的S205-S210,此处不再进行赘述。
在S305中,在第一服务器向第二服务器发送第一编码消息之后,若第一服务器在预设时长内未接收到第二服务器发送的响应消息,第一服务器获取第一服务器对初始请求消息、及对初始请求消息对应的重组消息的发送失败次数,其中,该发送失败次数是指第一服务器发送初始请求消息或初始请求消息对应的重组消息、且未收到第二服务器发送的响应消息的次数。
若该失败次数大于或等于预设次数,则说明第一服务器向第二服务器发送的初始请求消息或初始请求消息对应的重组消息被拦截,则第一服务器重新对初始请求消息进行重组和编码处理。
若该失败次数小于预设次数,则说明可能是由于其它原因(例如网络原因、负载原因)等使得第二服务器未向第一服务器发送响应消息,则为了提高处理效率,第一服务器不再对初始请求消息进行重新重组和编码处理,而是重新向第二服务器发送第一重组消息。这样,可以避免第一服务器进行不必要的重组和编码处理,进而提高了对数据进行处理的效率。
图4为本发明提供的第一服务器的结构示意图一,请参见图4,该第一服务器可以包括:
第一获取模块401,用于获取请求第二服务器处理的初始请求消息,所述第二服务器与所述第一服务器位于不同的机房;
重组模块402,用于将第一字符串添加至所述初始请求消息中,得到第一重组消息;
编码模块403,用于对所述第一重组消息进行编码处理,得到第一编码消息;
发送模块404,用于向所述第二服务器对应的网络防护系统发送所述第一编码消息,以使所述网络防护系统判断所述第一编码消息安全时,向所述第二服务器发送所述第一编码消息;
所述重组模块402还用于,当所述第一服务器在预设时长内未接收到所述第二服务器发送的响应消息时,将第二字符串添加至所述初始请求消息中,得到第二重组消息;
所述编码模块403还用于,对所述第二重组消息进行编码处理,得到第二编码消息;其中,所述第一编码消息和所述第二编码消息的相似度小于预设相似度;
所述发送模块404还用于,向所述网络防护系统发送所述第二编码消息。
本发明实施例提供的第一服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述编码模块403用于:
对所述第一重组消息进行加密处理,和/或,对所述第一重组消息进行压缩处理;
对所述第二重组消息进行加密处理,和/或,对所述第二重组消息进行压缩处理。
图5为本发明提供的第一服务器的结构示意图二,在图4所示实施例的基础上,请参见图5,所述第一服务器还包括第二获取模块405和确定模块406,其中,
所述第二获取模块405用于,在所述重组模块将第二字符串添加至所述初始请求消息中,得到第二重组消息之前,获取对所述初始请求消息、及所述初始请求消息对应的重组消息的发送失败次数;
所述确定模块406用于,确定所述发送失败次数大于或等于预设次数。
在另一种可能的实施方式中,所述发送模块404还用于,在所述确定模块406确定所述发送失败次数小于所述预设次数时,向所述第二服务器发送所述第一重组消息。
本发明实施例提供的第一服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图6为本发明提供的第二服务器的结构示意图,请参见图6,该第二服务器可以包括:
接收模块601,用于接收所述第二服务器对应的网络防护系统发送的第二编码消息,所述第二编码消息为所述第一服务器向所述网络防护系统发送的,所述第一服务器和所述第二服务器位于不同的机房;
解码模块602,用于对所述第二编码消息进行解码处理,得到第二重组消息;
还原模块603,用于对所述第二重组消息进行还原处理,得到初始请求消息;
处理模块604,用于对所述初始请求消息进行处理。
本发明实施例提供的第二服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述解码模块602具体用于:
对所述第二编码消息进行解码处理;
和/或,
对所述第二编码消息进行解压缩处理。
在另一种可能的实施方式中,所述还原模块603具体用于:
根据预设重组规则,确定所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置;
根据所述第二重组消息中的字符串的长度、及所述字符串在所述第二重组消息中的位置,在所述第二重组消息中去除所述字符串,得到所述初始请求消息。
本发明实施例提供的第二服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。