一种媒体数据多径传输方法及其系统与流程

文档序号:15625114发布日期:2018-10-09 22:47阅读:255来源:国知局

本发明涉及数据处理技术,尤其涉及一种媒体数据多径传输方法及其系统。



背景技术:

即时消息(im,instantmessaging)是指一种基于互联网应用的实时交互消息,传递的内容不仅可以包括文本和数据,而且还可以包括图片、视频、音频等,能够为用户提供在线交流、互传文件、语音对话及视频会议等功能。现有即时消息系统的实现模式主要包括:page_mode模式、largemessage_mode模式和session_mode模式。这里,当传递的即时消息是纯文本消息,且大小不超过1300字节时,可以采用page_mode模式直接以基于会话初始协议(sip,sessioninitiationprotocol)的message方式发送该即时消息;当传递的消息的大小超过1300字节时,可以采用largemessage_mode模式通过消息会话中继协议(msrp,themessagesessionrelayprotocol)进行消息传递;而所述session_mode模式是指存在明确开始和结束的消息交互模式,适用于大数据量的消息传输,比如音频、视频等。

这里,在实际应用中,通常将上述largemessage_mode模式和session_mode模式的即时消息统称为大消息,该大消息通常会包括图片、音频、视频以及大数据量的文件等。目前针对于此类大消息业务,均是采用单径传输方式进行媒体数据的发送和接收的,因此,存在传输可靠性问题。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供了一种媒体数据多径传输方法及其系统,能至少改进现有技术中存在的上述问题。

本发明实施例的技术方案是这样实现的:

本发明实施例第一方面提供了一种媒体数据多径传输方法,所述方法包括:

获取到携带有媒体数据的描述信息的查询请求消息;所述查询请求消息用于查询能够用于发送所述媒体数据的多个服务器;

至少基于所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块;

控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有或者特定一部分数据块,控制每一目标服务器生成能获取到数据块中任一或者特定数据块的资源标识符,发送每一目标服务器所生成的资源标识符。

上述方案中,所述方法还包括:

获取多个服务器的第一特征信息,所述第一特征信息至少表征服务器对应的负载特征和存储能力;

获取发送端设备的网络位置信息;

对应地,所述至少基于所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器,包括:

基于所述发送端设备的网络位置信息、每一所述服务器第一特征信息所表征的负载特征和存储能力、以及所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器。

上述方案中,所述方法还包括:

获取每一所述目标服务器的第二特征信息,所述第二特征信息至少表征目标服务器对应的负载特征和存储能力;

基于第二特征信息所表征的负载特征和存储能力,确定出数据接收策略;

对应地,所述利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块,包括:

控制每一所述目标服务器利用所述数据接收策略来接收发送端设备对所述媒体数据进行分割处理后所得到的数据块;

其中,所述数据接收策略至少包括第一接收策略和第二接收策略;所述第一接收策略下,每一所述目标服务器基于预设数据量来接收数据块;所述第二接收策略下,每一所述目标服务器基于数据分配比例来接收与自身的负载特征和存储能力相匹配的数据块。

上述方案中,所述控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有或者特定一部分数据块,包括:

控制每一所述目标服务器向其他目标服务器发送数据块同步信息,所述数据块同步信息携带有当前目标服务器所存储的数据块的数据块标识;

控制每一所述目标服务器基于数据块同步信息所表征的数据块标识,向其他目标服务器去获取与自身对应的数据块标识不同的属于所述媒体数据的其他数据块,以使每一所述目标服务器存储有所述媒体数据的所有或者特定一部分数据块。

上述方案中,所述方法还包括:

获取到请求发送所述媒体数据的数据发送请求消息;所述数据发送请求消息至少携带有接收端设备的用户信息、以及所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符;

对应地,所述发送每一目标服务器所生成的资源标识符,包括:

基于所述数据发送请求消息所表征的用户信息,至少将所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符发送至所述接收端设备,以便于接收端设备能够利用资源标识符通过不同的目标服务器去获取所述媒体数据对应的数据块。

上述方案中,所述方法还包括:

确定每一所述目标服务器与所述接收端设备之间形成的路径的传输特征;

基于传输特征,对所述目标服务器与所述接收端设备之间形成的所有或者特定一部分路径进行优先级排序,得到优先级排序结果,发送优先级排序结果,以便于接收端设备能够利用资源标识符和所述优先级排序结果去获取所述媒体数据对应的数据块。

本发明实施例第二方面提供了一种媒体数据多径传输系统,所述系统包括:

获取单元,用于获取到携带有媒体数据的描述信息的查询请求消息;所述查询请求消息用于查询能够用于发送所述媒体数据的多个服务器;

处理单元,用于至少基于所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块;

控制单元,用于控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有或者特定一部分数据块,控制每一目标服务器生成能获取到数据块中任一或者特定数据块的资源标识符,发送每一目标服务器所生成的资源标识符。

上述方案中,所述获取单元,还用于获取多个服务器的第一特征信息,所述第一特征信息至少表征服务器对应的负载特征和存储能力;还用于获取发送端设备的网络位置信息;

所述处理单元,还用于基于所述发送端设备的网络位置信息、每一所述服务器第一特征信息所表征的负载特征和存储能力、以及所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器。

上述方案中,所述获取单元,还用于获取每一所述目标服务器的第二特征信息,所述第二特征信息至少表征目标服务器对应的负载特征和存储能力;

所述处理单元,还用于基于第二特征信息所表征的负载特征和存储能力,确定出数据接收策略,控制每一所述目标服务器利用所述数据接收策略来接收发送端设备对所述媒体数据进行分割处理后所得到的数据块;

其中,所述数据接收策略至少包括第一接收策略和第二接收策略;所述第一接收策略下,每一所述目标服务器基于预设数据量来接收数据块;所述第二接收策略下,每一所述目标服务器基于数据分配比例来接收与自身的负载特征和存储能力相匹配的数据块。

上述方案中,所述控制单元,还用于控制每一所述目标服务器向其他目标服务器发送数据块同步信息,所述数据块同步信息携带有当前目标服务器所存储的数据块的数据块标识;控制每一所述目标服务器基于数据块同步信息所表征的数据块标识,向其他目标服务器去获取与自身对应的数据块标识不同的属于所述媒体数据的其他数据块,以使每一所述目标服务器存储有所述媒体数据的所有或者特定一部分数据块。

上述方案中,所述获取单元,还用于获取到请求发送所述媒体数据的数据发送请求消息;所述数据发送请求消息至少携带有接收端设备的用户信息、以及所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符;

所述控制单元,还用于基于所述数据发送请求消息所表征的用户信息,至少将所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符发送至所述接收端设备,以便于接收端设备能够利用资源标识符通过不同的目标服务器去获取所述媒体数据对应的数据块。

上述方案中,还用于确定每一所述目标服务器与所述接收端设备之间形成的路径的传输特征,基于传输特征,对所述目标服务器与所述接收端设备之间形成的所有或者特定一部分路径进行优先级排序,得到优先级排序结果;

对应地,所述控制单元,还用于发送优先级排序结果,以便于接收端设备能够利用资源标识符和所述优先级排序结果去获取所述媒体数据对应的数据块。

本发明实施例所述的媒体数据多径传输方法及其系统,通过获取到携带有媒体数据的描述信息的查询请求消息,至少基于描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块,控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有或者特定一部分数据块,进而控制每一目标服务器生成能获取到数据块中任一或者特定数据块的资源标识符,发送每一目标服务器所生成的资源标识符;这里,由于发送端设备是通过至少两个目标服务器来进行媒体数据发送的,所以,与现有单径传输方式相比,本发明实施例改善了现有传输可靠性问题。而且,由于本发明实施例实现了多径传输,所以,所支持的传输的媒体数据的数据量更大。

附图说明

图1为本发明实施例一媒体数据多径传输方法的实现流程示意图;

图2为本发明实施例媒体数据多径传输系统的组成结构示意图;

图3为本发明实施例即时消息系统的组成结构示意图。

具体实施方式

另外,现有技术中,针对于大消息业务主要是基于msrp协议来实现传递的。进一步地,所述msrp是基于文本的、面向连接和会话的协议,可以传输任意的mime内容,特别用于实现即时消息内容的传输交互过程。这里,由于msrp协议不是一个独立协议,需要与sip协议配合使用,通过sip协议的会话建立过程来协商msrpuri和msrp扩展的支持能力,并在协商完成后在媒体平面上建立msrp通道完成数据传递。因此,现有的即时消息系统传输大消息时还存在执行效率较低,不能很好地适用于群聊等业务模式的问题。具体地,基于sip+msrp协议的技术路线实现一对一即时消息及群聊消息时,需要建立一个或者多个会话以保证数据的传输,因此,消息会话双方存在一个紧密耦合的关系,执行效率不高,很难适应于业务突发量较大的应用场景;而且,在群聊实现中,基于sip+msrp协议的技术路线,需要每个客户端与交换机(switch)建立一个会话连接,然后再传输数据,因此,实现也较为复杂。为了解决上述问题,本发明实施例提供了一种媒体数据多径传输方法及其系统。为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

实施例一

本实施例提供了一种媒体数据多径传输方法,所述方法应用于媒体数据多径传输系统;具体地,图1为本发明实施例一媒体数据多径传输方法的实现流程示意图,如图1所示,所述方法包括:

步骤101:获取到携带有媒体数据的描述信息的查询请求消息;所述查询请求消息用于查询能够用于发送所述媒体数据的多个服务器;

这里,所述服务器可以具体为实施例三所述的媒体服务器。

在实际应用中,所述描述信息可以包括以下信息中的至少一种:媒体数据的类型和数据大小。

步骤102:至少基于所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块;

在一具体实施例中,所述系统可以采用如下方式去选中目标服务器,具体地,所述系统获取多个服务器的第一特征信息,所述第一特征信息至少表征服务器对应的负载特征和存储能力;并获取发送端设备的网络位置信息;进而基于所述发送端设备的网络位置信息、每一所述服务器第一特征信息所表征的负载特征和存储能力、以及所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器。

在另一具体实施例中,所述系统还会获取每一所述目标服务器的第二特征信息,所述第二特征信息至少表征目标服务器对应的负载特征和存储能力;基于第二特征信息所表征的负载特征和存储能力,确定出数据接收策略,进而控制每一所述目标服务器利用所述数据接收策略来接收发送端设备对所述媒体数据进行分割处理后所得到的数据块;这里,所述数据接收策略至少包括第一接收策略和第二接收策略;所述第一接收策略下,每一所述目标服务器基于预设数据量来接收数据块,也就是说,所述第一接收策略下,每一目标服务器接收到的数据块的大小相同;对应地,所述第二接收策略下,每一所述目标服务器基于数据分配比例来接收与自身的负载特征和存储能力相匹配的数据块。其中,所述数据分配比例是基于每一所述目标服务器的负载特征和存储能力而确定出的所有目标服务器与所述发送端设备所形成的至少两个传输路径对应的分配比例,也就是说,所述第二接收策略下,所述目标服务器接收到的数据块的大小与自身的负载特征、存储能力、自身与发送端设备的传输路径的路径情况等相关,也即,所述第二接收策略下,不同所述目标服务器接收到的数据块的大小相同或者不相同。

这里,在实际应用中,还可以通过发送端设备来确定向某一目标服务器发送的数据块的数据大小,也就是说,发送端设备在对媒体数据进行分割处理之前,首先会基于目标服务器的负载特征和存储能力来确定数据分发策略,进而基于数据分发策略对媒体数据进行分割处理;其中,所述数据分发策略也可以至少包括第一策略和第二策略;具体地,在第一策略下,所述发送端设备将待发送的媒体数据划分成大小相同的数据块,并根据自身与各目标服务器之间的负载特征(例如,路径传输质量,负载处理能力等),以及各目标服务器的存储能力对划分得到的数据块进行轮询分发。在第二策略下,所述发送端设备根据各个目标服务器的存储能力设计路径负载分配比例,并按照该路径负载分配比例将待发送的媒体数据划分成大小不等的数据块,进而基于路径负载分配比例将划分得到的数据块分别发送至与数据块的数据特征(如数据大小等特征)相对应的目标服务器。

步骤103:控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有数据块,控制每一目标服务器生成能获取到所有数据块中任一数据块的资源标识符,发送每一目标服务器所生成的资源标识符。在一些不同的实施例中,每一目标服务器可以存储有所述媒体数据所需的特定一部分数据块,不一定必须是所有数据块;控制每一目标服务器生成可以获取到数据块中所需的特定数据块的资源标识符,不一定必须是任一数据块的资源标识符。

在一具体实施例中,所述系统可以采用如下方式控制目标服务器之间进行数据同步,即控制每一所述目标服务器向其他目标服务器发送数据块同步信息,所述数据块同步信息携带有当前目标服务器所存储的数据块的数据块标识;控制每一所述目标服务器基于数据块同步信息所表征的数据块标识,向其他目标服务器去获取与自身对应的数据块标识不同的属于所述媒体数据的其他数据块,以使每一所述目标服务器存储有所述媒体数据的所有数据块。

在另一具体实施例中,多路径发送媒体数据的具备步骤包括:获取到请求发送所述媒体数据的数据发送请求消息;所述数据发送请求消息至少携带有(一个或多个)接收端设备的用户信息、以及所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符(如,所述数据发送请求消息中携带有每一所述数据块在所有目标服务器所对应的资源标识符,这样,便于接收端设备基于目标服务器的负载特征和存储能力等,从多个目标服务器中去选择出某一目标服务器来下载数据块);进一步地,基于所述数据发送请求消息所表征的用户信息,至少将所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符发送至所述接收端设备,以便于接收端设备能够利用资源标识符通过不同的目标服务器去获取所述媒体数据对应的数据块。这里,当接收端设备为多个时,能够便于多个设备从不同的目标服务器去获取媒体数据。

本实施例中,所述系统还可以确定每一所述目标服务器与所述接收端设备之间形成的路径的传输特征,进而基于传输特征,对所述目标服务器与所述接收端设备之间形成的所有路径进行优先级排序,得到优先级排序结果,发送优先级排序结果,这样,便于接收端设备能够利用资源标识符和所述优先级排序结果去获取所述媒体数据对应的数据块。当然,在实际应用中,还可以是接收端设备对自身与多个目标服务器所形成的路径进行优先级排序,进而基于自身的排序结果去向特定目标服务器下载特定数据块,进而完成下载媒体数据的过程。

这样,本发明实施例所述的方法,通过获取到携带有媒体数据的描述信息的查询请求消息,至少基于描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块,控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有数据块,进而控制每一目标服务器生成能获取到所有数据块中任一数据块的资源标识符,发送每一目标服务器所生成的资源标识符;这里,由于发送端设备是通过至少两个目标服务器来进行数据发送的,所以,与现有单径传输方式相比,本发明实施例改善了现有传输可靠性问题。而且,由于本发明实施例实现了多径传输,所以,所支持的传输的媒体数据的数据量较大。

实施例二

本实施例提供了一种媒体数据多径传输系统,具体地,如图2所示,所述系统包括:

获取单元21,用于获取到携带有媒体数据的描述信息的查询请求消息;所述查询请求消息用于查询能够用于发送所述媒体数据的多个服务器;

处理单元22,用于至少基于所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器,并利用所述至少两个目标服务器接收发送端设备对所述媒体数据进行分割处理后所得到的至少两个数据块;

控制单元23,用于控制所述至少两个目标服务器进行数据块同步处理,以使每一目标服务器存储有所述媒体数据的所有数据块,控制每一目标服务器生成能获取到所有数据块中任一数据块的资源标识符,发送每一目标服务器所生成的资源标识符。

在一实施例中,所述获取单元21,还用于获取多个服务器的第一特征信息,所述第一特征信息至少表征服务器对应的负载特征和存储能力;还用于获取发送端设备的网络位置信息;

所述处理单元22,还用于基于所述发送端设备的网络位置信息、每一所述服务器第一特征信息所表征的负载特征和存储能力、以及所述查询请求消息所携带的描述信息,从多个服务器中选取出至少两个目标服务器。

在另一实施例中,所述获取单元21,还用于获取每一所述目标服务器的第二特征信息,所述第二特征信息至少表征目标服务器对应的负载特征和存储能力;

所述处理单元22,还用于基于第二特征信息所表征的负载特征和存储能力,确定出数据接收策略,控制每一所述目标服务器利用所述数据接收策略来接收发送端设备对所述媒体数据进行分割处理后所得到的数据块;

其中,所述数据接收策略至少包括第一接收策略和第二接收策略;所述第一接收策略下,每一所述目标服务器基于预设数据量来接收数据块;所述第二接收策略下,每一所述目标服务器基于数据分配比例来接收与自身的负载特征和存储能力相匹配的数据块。

在另一实施例中,所述控制单元23,还用于控制每一所述目标服务器向其他目标服务器发送数据块同步信息,所述数据块同步信息携带有当前目标服务器所存储的数据块的数据块标识;控制每一所述目标服务器基于数据块同步信息所表征的数据块标识,向其他目标服务器去获取与自身对应的数据块标识不同的属于所述媒体数据的其他数据块,以使每一所述目标服务器存储有所述媒体数据的所有数据块。

在另一实施例中,所述获取单元21,还用于获取到请求发送所述媒体数据的数据发送请求消息;所述数据发送请求消息至少携带有接收端设备的用户信息、以及所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符;

所述控制单元23,还用于基于所述数据发送请求消息所表征的用户信息,至少将所述媒体数据中每一所述数据块在所述至少两个目标服务器对应的资源标识符发送至所述接收端设备,以便于接收端设备能够利用资源标识符通过不同的目标服务器去获取所述媒体数据对应的数据块。

在另一实施例中,所述处理单元22,还用于确定每一所述目标服务器与所述接收端设备之间形成的路径的传输特征,基于传输特征,对所述目标服务器与所述接收端设备之间形成的所有路径进行优先级排序,得到优先级排序结果;

对应地,所述控制单元23,还用于发送优先级排序结果,以便于接收端设备能够利用资源标识符和所述优先级排序结果去获取所述媒体数据对应的数据块。

这里需要指出的是:以上系统实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明系统实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。

这里,在本申请所提供的实施例二中,应该理解到,所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。基于此,本发明实施例还提供了另外一种具体划分方式,如下述实施例三所述,通过下述实施例三所述的系统,同样能够实现本发明实施例所述的媒体数据多径传输方法。

实施例三

本实施例提供了一种以上实施例所述的媒体数据多径传输方法的具体应用示例,该具体应用示例中,可以将以上实施例所述的系统具体应用于即时消息系统;即本实施例提供了一种基于即时消息系统的媒体数据多径传输方法,如图3所示,所述即时消息系统主要包括两个功能实体,分别为即时消息客户端(imclient)和即时消息服务器(imserver);在一具体实施例中,所述即时消息客户端可以具体包括即时消息发送端(imsender)和即时消息接收端(imreceiver);所述即时消息服务器可以具体包括信令服务器(ss,signalingserver)和媒体服务器(ms)。这里,本实施例一或实施例二所述的媒体数据多径传输系统可以具体通过本实施例所述的信令服务器和媒体服务器实现,也就是说,所述媒体数据多径传输系统可以具体包括至少一个媒体服务器以及至少一个信令服务器,例如,如图3所示,所述媒体数据多径传输系统包括一个ss和三个ms(即ms1、ms2和ms3)。

进一步地,基于如图3所述的系统框架,所述媒体数据多径传输方法的主要工作流程包括:

步骤301:imsender向ss发送ms列表查询请求消息,以获取可用的ms列表信息。

这里,在一具体实施例中,步骤301具备包括:

步骤301-1:imsender向ss发送ms列表查询请求消息,该ms列表查询请求消息携带有待发送的媒体数据的描述信息,例如,该描述信息包括媒体数据的类型和数据大小等;

步骤301-2:所述ss接收到该ms列表查询请求消息之后,获取imsender的网络位置信息,并从ms列表查询请求消息中提取出待发送的媒体数据的描述信息;

步骤301-3:所述ss根据imsender的网络位置信息和待发送的媒体数据的描述信息,选择多个ms,并向选定的所述多个ms发送存储服务请求消息;

步骤301-4:所述多个ms中的每一所述ms接收到存储服务请求消息之后,根据自身可用存储空间和处理负载,决定是否为本次请求提供服务;若是,向所述ss发送存储服务成功响应消息,该存储服务成功响应消息中携带ms的ip地址和端口号、存储位置和存储空间大小等信息,否则,向所述ss发送存储服务失败响应消息;

步骤301-5:所述ss在接收到所有选定所述ms回送的存储服务响应消息(即存储服务成功响应消息或存储服务失败响应消息)之后,根据所接收到的存储服务响应消息中的存储服务成功响应消息创建ms列表,这里,所述ms列表中包含ms的ip地址和端口号、存储位置和存储空间大小等信息;

步骤301-6:所述ss将创建的所述ms列表通知给该ms列表中的各个ms,并向所述imsender发送ms列表查询响应消息,这里,所述ms列表查询响应消息中携带有所述ms列表;

步骤301-7:所述imsender接收到ms列表查询响应消息,从所述ms列表查询响应消息中提取出ms列表。

在实际应用中,所述imsender提取出ms列表后,向所述ss反馈接收确认消息。进一步地,当所述ms列表中的每一ms接收到ms列表信息后,也会向所述ss反馈接收确认消息。

步骤302:所述imsender接收到ms列表查询响应消息,从所述ms列表查询响应消息中提取出ms列表,并将待发送的媒体数据进行分割处理,分割成多个数据块,将多个数据块发送至所述ms列表中的多个ms。

当然,在实际应用中,所述imsender在获取到ms列表后,可以直接将待发送的媒体数据发送至所述ms列表中的每一ms,或者还可以从所述ms列表中选取出多个ms,将待发送的媒体数据发送至选取出的多个ms。本实施例以imsender将待发送的媒体数据发送至所述ms列表中的每一ms为例对媒体数据多径传输方法进行详细说明。在一具体实施例中,步骤302具备包括:

步骤302-1:所述imsender根据数据分发策略对待发送的媒体数据进行数据分割处理。这里,在实际应用中,imsender可以基于不同的数据分发策略选取出不同的分割方式来对待发送的媒体数据进行分割处理。例如,所述数据分发策略至少包括第一策略和第二策略,进一步地,若采用第一策略,则执行步骤302-2;若采用第二策略,则执行步骤302-3;

步骤302-2:所述imsender将待发送的媒体数据划分成大小相同的数据块,并为每个数据块创建唯一的数据块标识符media_id;并根据所述imsender与所述ms列表中的各ms之间的路径传输质量,以及各ms的存储能力对划分得到的数据块进行轮询分发,进入步骤302-4;

步骤302-3:所述imsender根据所述ms列表中的各个ms的存储能力设计路径负载分配比例,并按照该路径负载分配比例将待发送的媒体数据划分成大小不等的数据块,并为每个数据块创建唯一的数据块标识符media_id,进而基于路径负载分配比例将划分得到的数据块分别发送至相应的ms,也即发送至与数据块的数据特征(如数据大小等特征)相对应的ms;

步骤302-4:所述ms接收到数据块之后,为当前上传的数据块创建媒体数据描述文件,并为该媒体数据描述文件创建唯一的文件标识符file_id,这里,所述媒体数据描述文件用于存储上传成功的数据块,以及该数据块的数据大小、media_id、存储位置等信息;

步骤302-5:所述ms向imsender反馈数据块上传响应消息;具体地,若数据块上传成功,则所述ms向所述imsender反馈数据块上传成功响应消息,该数据块上传成功响应消息中包含有数据块的media_id、file_id和发送状态信息等,进入步骤302-6;否则,所述ms向imsender反馈数据块上传失败响应消息,该数据块上传失败响应消息中包含有数据块上传失败原因、media_id和发送状态信息等,进入步骤302-6;

步骤302-6:当接收到数据块上传成功响应消息时,所述imsender将下一个未上传的数据块分配至最先到达数据块上传成功响应消息所对应的ms;当接收到数据块上传失败响应消息时,所述imsender将不再向发送数据块上传失败响应消息的ms上传数据块;

步骤302-7:所述imsender确定待发送的媒体数据上传完成时,停止上传。

这里,在实际应用中,所述imsender确定待发送的媒体数据的缓冲区为空时,意为媒体数据全部上传完成,则停止上传。

步骤303:所述ms列表中的每一ms接收到相应的数据块后,在所述ms列表中的ms之间进行数据块同步和备份,并根据表征数据块的数据特征的媒体数据描述文件生成统一资源标识符(uri,uniformresourceidentifier)并推送给imsender。

这里,在一具体实施例中,步骤303具备包括:

步骤303-1:所述ms列表中的ms基于ms列表,向所述ms列表中其他ms发送文件转发请求消息,该文件转发请求消息包括源ms网络位置信息、目标ms网络位置信息、file_id、媒体类型、文件大小及文件内容等信息;

步骤303-2:接收到文件转发请求消息之后,ms根据自身可用存储空间和处理负载(也即存储能力),决定是否可以为文件提供同步和备份服务,如果是,则执行步骤303-3,否则,执行步骤303-4;

步骤303-3:ms将来自同一file_id所标识文件中的数据块合并,并更新自身对应的媒体数据描述文件的数据列表,以将新增数据块的media_id、数据大小、存储位置等信息按序存储至媒体数据描述文件,向文件转发请求消息对应的ms反馈文件转发成功响应消息,进入步骤执行303-5;

步骤303-4:ms向文件转发请求消息对应的ms反馈文件转发失败响应消息;

步骤303-5:完成数据块同步和备份之后,所述ms列表中的每一ms为更新的媒体数据描述文件创建uri,该uri包含媒体数据描述文件所在ms的ip地址、端口号、file_id等存储信息,并将其推送给imsender;

步骤303-6:imsender接收到ms发送的uri之后,向ms回送接收确认消息。

至此,媒体数据上传、且同步以及备份完成;这里,同一个数据块对应多个uri,但是只有唯一的media_id。

步骤304:imsender将所述ms列表中每一ms推送的uri通过ss发送给imreceiver。

这里,在一具体实施例中,步骤304具备包括:

步骤304-1:imsender向ss发送媒体数据发送请求消息,该消息携带imsender和imreceiver的用户信息、以及媒体数据的多个下载地址uri;

步骤304-2:ss接收并解析该媒体数据请求消息,根据媒体数据请求消息中携带的imreceiver的用户信息,将该媒体数据请求消息转发至imreceiver;

步骤304-3:imreceiver接收到媒体数据请求消息后,如果imreceiver选择接收该媒体数据请求消息并下载媒体数据,则向imsender回送媒体数据接受响应消息,否则,回送媒体数据拒绝响应消息。

步骤305:imreceiver通过接收到的多个uri从多个ms下载媒体数据。

这里,在一具体实施例中,步骤305具备包括:

步骤305-1:imreceiver根据自身至每一ms之间路径的路径传输质量制定媒体数据下载策略,例如,根据与各ms之间路径的媒体数据下载速率决定路径优先级次序,并根据该优先级次序轮询下载媒体数据,以最终确保媒体数据以最快的下载速率到达接收端;

步骤305-2:imreceiver通过获得的媒体数据的多个下载地址uri,根据媒体数据下载策略,向指定ms发送媒体数据下载请求消息,该媒体数据下载消息包含imreceiver的网络位置信息、媒体数据下载地址uri和目的ms的网络位置信息;进一步地,该媒体数据下载消息至少还包含有待下载的数据块的media_id,这样,便于从指定的ms中去下载特定数据块。

这里,在实际应用中,所述imreceiver还获知有针对待下载的媒体数据的媒体数据描述文件,也就是说,所述imreceiver能够获取到待下载的媒体数据的数据分块状态,即能够获知对媒体数据分割处理后所得到的数据块的数据特征,如数据大小等,这样,便于所述imreceiver基于各数据块的数据特征,以及媒体数据下载速率等来确定出媒体数据下载策略,例如,确定出从某一指定ms下载某一具体数据块的数据下载策略。

步骤305-3:ms接收到媒体数据下载请求消息后,检测uri是否合法,如果是,则下载媒体数据下载请求消息所指定的数据块,并向imreceiver反馈媒体数据下载成功响应消息,否则反馈媒体数据下载失败响应消息;

步骤305-4:imreceiver接收到媒体数据下载成功响应消息后,根据数据块的media_id对媒体数据进行重组,并检查其完整性;

步骤305-5:当imreceiver检测到某个media_id的数据块未被下载,则根据媒体数据下载策略,向ms发送下载该media_id的数据块的下载请求消息;

步骤305-6:重复上述步骤305-3至步骤305-5,完成整个媒体数据的下载过程,进而得到重组后的媒体数据。

在实际应用中,本实施例所述的系统可以具体为即时消息系统,也就是说,本实施例所述的方法可以具体应用于即时消息系统中,且能够利用即时消息系统实现媒体数据多径传输的目的,例如,利用即时消息客户端通过多条路径上传和/或下载媒体数据,进而避免由于路径带宽的限制,或某条传输路径的突发拥塞造成的即时消息时延或丢包等问题。

进一步地,本实施例实现了媒体数据的分布式存储,将数据分散存储在多个独立的媒体服务器中,解决了数据存储瓶颈问题;同时,由于媒体服务器之间进行了数据同步操作,所以,本实施例还实现了媒体服务器中的媒体数据的备份,使得客户端可以从不同的媒体服务器中下载相同的媒体数据,避免了由于某条路径的拥塞或路径传输质量的限制,而无法下载对应媒体服务器中的媒体数据的问题。

在实际应用中,本实施例所述媒体数据多径传输方法还能够支持客户端下载离线媒体数据,例如,接收端离线,无法接收由信令服务器转发的媒体数据的uri信息,此时,该uri信息将会作为离线信息处理,当接收端重新上线,信令服务器将接收端离线期间的消息信息发送到接收端,接收端根据消息中的uri信息向相应的媒体服务器中去获取媒体数据。

进一步地,与现有基于sip+msrp的技术路线相比,本发明实施例还实现了媒体数据发送与接收的解耦,有效地提高执行效率;具体地,本发明实施例中发送端首先将媒体数据上传到媒体服务器中,然后将返回的uri信息发送到信令服务器中,由信令服务器转发到接收端,进一步地,接收端收到uri信息后根据该uri信息下载媒体数据,上述过程中,不要求消息会话双方知道对方的状态,同时会话双方不需要建立一个会话关系及同步关系,所以,本发明实施例实现了媒体数据会话双方在空间、时间及同步关系上的解耦,有效提高了执行效率。而且,在群聊实现中,本发明实施例所述方法对应的客户端根据uri信息主动去获取媒体数据,更易于实现。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1