大对象传输方法及系统的制作方法

文档序号:7942232阅读:118来源:国知局
专利名称:大对象传输方法及系统的制作方法
技术领域
本发明涉及通讯领域中基于0MA(0pen Mobile Alliance,开放移动联盟) SyncML(Synchronization Markup Language,数据同步协议)的传输技术,更尤其涉及一种大对象传输方法及系统。
背景技术
OMA SyncML协议支持对象的传输,当对象大小大于客户端支持的最大消息字节数时,该对象被称为大对象,即传输对象的大小(SyncML消息中用Size元素标识)大于客户端支持的最大消息字节数(SyncML消息中用MaxMsgSize元素标识),所述对象为大对象。对于大对象的传输,OMA SyncML协议中规定的处理办法通常是将大对象拆分成数据块传输, 通过SyncML消息,将数据块发送给客户端,每一个数据块的大小等于或小于客户端支持的最大消息字节数,大对象的传输是基于OMA SyncML协议中基本会话完成的。OMA SyncML协议中基本的会话过程包括会话建立和会话管理两个阶段。会话建立阶段既可由服务器端触发,也可由客户端触发,双方建立会话后,进入会话管理阶段。客户端与服务器在会话管理阶段交互,完成整个大对象的传输。OMA SyncML协议中规定了的大对象传输方式。现有的基于OMA SyncML协议的大对象传输过程主要包括以下几个部分一 服务器与客户端建立会话,服务器得知客户端的MaxMsgSize ;二 服务器发出大对象的传输命令,并把所述大对象数据按照给定的MaxMsgSize 进行分块,将所述大对象的大小(SyncML消息中用MaxMsgSize元素标识)和第一个数据块发送给客户端;三客户端保存大对象的大小和第一个数据块,并通知服务器继续发送下一个数据块;四服务器继续发送下一个数据块,直到数据全部传输完毕(SyncML消息中用 Final元素标识);五客户端收到大对象传输完毕的命令后,将所有的数据块组合起来,并计算出其总大小,再与保存的所述大对象的大小进行比较,来检查大对象是否传输成功。从上面的流程可以看出,这种传输方式存在一定的缺陷,就是只有在大对象的所有数据块全部传输完毕后,才能知道大对象的传输是否成功,即由于服务器没有给出各数据块的大小,所以即使客户端接收到的数据块出错,客户端也不会知道,还是通知服务器继续发送下一个数据块,这样就造成了交互时间和带宽资源的浪费。

发明内容
本发明的目的在于,提供一种大对象的传输方法及系统,以优化现有的大对象传输方法。本发明提供了一种大对象传输方法,上述方法在服务器与客户端建立会话后,
上述服务器将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给上述客户端;上述客户端判断收到的数据块是否传输成功,若是,则保存上述数据块,并返回当前数据块传输成功消息给上述服务器;否则,返回结束会话请求消息或重传当前数据块请求消息给上述服务器;上述服务器根据收到的消息,发送相应数据块及其大小或者结束会话。优选地,上述客户端通过以下方式判断收到的数据块是否传输成功计算上述数据块的实际大小;与收到的上述数据块的大小比较,若一致,则上述数据块传输成功;否则,上述数据块传输失败。优选地,若当前发送的数据块为上述大对象的第一个数据块,则上述服务器还将上述大对象的大小发送给上述客户端;上述客户端保存收到的大对象的大小。优选地,若当前发送的数据块为上述大对象的最后一个数据块,则上述服务器还发送传输结束标识发送给上述客户端;上述客户端在收到传输结束标识且当前数据块传输成功后,执行以下步骤按顺序合并保存的数据块并计算上述数据块的总大小;与保存的大对象的大小比较,若一致,则返回大对象传输成功消息给上述服务器; 否则,返回大对象传输失败消息给上述服务器。优选地,上述服务器根据收到的请求,发送相应数据块及其大小或者结束会话步骤具体为上述服务器在收到当前数据块传输成功消息且还有数据块时,将下一个数据块及其大小发送给上述客户端;上述服务器在收到重传当前数据块请求消息时,继续发送当前数据块及其大小给上述客户端;上述服务器在收到结束会话请求消息、大对象传输成功消息或大对象传输失败消息时,结束当前会话。优选地,上述服务器通过扩展的SyncML消息将上述数据块及其大小、大对象的大小、传输结束标识发送给上述客户端;上述扩展的SyncML消息包括Size元素、Data元素、BlockSize元素、Final元素, 其中,Size元素的值为大对象的大小、Data元素的值为当前传输的数据块、BlockSize元素的值为当前传输的数据块的大小、Final元素的值为传输结束标识。本发明进一步提供了一种大对象传输系统,上述系统包括服务器和客户端,上述服务器,用于将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给上述客户端;以及根据上述客户端返回的消息,发送相应数据块及其大小或者结束会话;上述客户端,用于判断收到的数据块是否传输成功,并在数据块传输成功时,保存上述数据块,并返回当前数据块传输成功消息给上述服务器;在数据块传输失败时,返回结束会话请求消息或重传当前数据块请求消息给上述服务器。
优选地,上述服务器,用于在发送第一个数据块及其大小时,将上述大对象的大小发送给上述客户端;在发送最后一个数据块及其大小时,将传输结束标识发送给上述客户端;上述客户端,用于保存收到的大对象的大小;并在收到传输结束标识且当前数据块传输成功时,按顺序合并保存的数据块并计算上述数据块的总大小,与保存的大对象的大小进行比较,在二者一致时,返回大对象传输成功消息给上述服务器;在二者不一致时, 返回大对象传输失败消息给上述服务器。优选地,上述服务器,用于在收到当前数据块传输成功消息且还有数据块时,将下一个数据块及其大小发送给上述客户端;在收到重传当前数据块请求消息时,继续发送当前数据块及其大小给上述客户端;以及在收到结束会话请求消息、大对象传输成功消息或大对象传输失败消息时, 结束当前会话;上述客户端,用于计算数据块的实际大小,并与收到的上述数据块的大小进行比较。优选地,上述服务器通过扩展的SyncML消息将上述数据块及其大小、大对象的大小、传输结束标识发送给上述客户端。本发明在传输数据块的同时,将上述数据块的大小一起发送给客户端,客户端每收到一个数据块,即判断其是否传输成功,并在数据块传输失败时,要么主动要求结束会话,要么请求重传;也就是说,本发明在大对象的数据块传输出错时,提前进行了处理,节省了带宽资源。


此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是本发明大对象传输方法第一优选实施例的流程图;图2是本发明大对象传输方法第二优选实施例的流程图;图3是本发明大对象传输系统优选实施例的原理框图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图1所示,是本发明大对象传输方法第一优选实施例的流程图,本实施例中,客户端对于传输失败的数据块,采用请求服务器重传机制处理,本实施例包括以下步骤步骤SOOl 服务器与客户端建立会话;步骤S002 根据会话建立过程中得知的上述客户端支持的最大消息字节数,拆分当前传输的大对象,将上述大对象拆分成数据块并开始传输;本步骤将大对象拆分成小于等于客户端支持的最大消息字节数的数据块进行传输。
步骤S003 判断当前数据块是否是第一个数据块或者最后一个数据块,若为第一个数据块,则执行步骤S004 ;若为最后一个数据块,则执行步骤S005 ;否则,执行步骤 S006 ;步骤S004 将当前传输的大对象的大小作为扩展的SyncML消息的Size元素的值,执行步骤S006 ;本发明中,扩展的SyncML消息包括Size元素、Data元素、BlockSize元素、Final 元素,其中,BlockSize元素为本发明新增元素,用以携带数据块的大小;Size元素的值表示当前传输的大对象的大小、Data元素的值表示当前传输的数据块、BlockSize元素的值表示当前传输的数据块的大小、Final元素的值表示传输结束标识。步骤S005 将传输结束标识作为扩展的SyncML消息的Final元素的值;步骤S006 将当前数据块及其大小分别作为上述扩展的SyncML消息的Data元素、BlockSize元素的值;步骤S007 将上述扩展的SyncML消息发送给上述客户端;本步骤中,在当前传输的数据块为大对象的第一个数据块时,扩展的SyncML消息的Size元素的值不为空;在当前传输的数据块为大对象的最后一个数据块时,扩展的 SyncML消息的Final元素的值不为空,其他情况下及重传时,扩展的SyncML消息的Size元素、Final元素为空。步骤S008 客户端收到扩展的SyncML消息;步骤S009 判断上述消息的Size元素是否为空,若是,则执行步骤SOlO ;否则, 执行步骤SOll ;步骤SOlO 保存Size元素的值;本步骤即保存大对象的大小,用于在后续步骤中作为判断大对象是否传输成功的依据。步骤SOll 计算收到的数据块的实际大小;步骤S012 与BlockSize元素的值比较,若一致,则执行步骤S013 ;否则,执行步骤 SO14 ;步骤S013 保存当前数据块,并返回当前数据块传输成功消息给上述服务器,执行步骤S015 ;步骤S014 丢弃当前数据块,返回重传当前数据块请求消息给上述服务器;步骤S015 判断上述消息的Final元素的值是否为空,若是,则表明当前传输的数据块为最后一个数据块,执行步骤S016 ;否则,执行步骤S008 ;步骤S016 合并保存的所有数据块并计算合并后的数据块的大小;步骤S017 与保存的Size元素的值比较,若一致,则执行步骤S018 ;否则,执行步骤 SO19 ;本步骤可判断出数据块在传输过程中出现丢包现象。步骤S018 返回大对象传输成功消息给上述服务器,执行步骤S020 ;步骤S019 返回大对象传输失败消息给上述服务器;步骤S020 服务器收到客户端返回的消息;步骤S021 判断客户端返回的消息类型,若为当前数据块传输成功消息,则执行步骤S022 ;若为重传当前数据块请求消息,则执行步骤S006 ;若为大对象传输成功/失败消息,则执行步骤S025 ;步骤S022 判断是否还有数据块,若是,则执行步骤S023 ;否则,执行步骤SOM ;步骤S023 指向下一个数据块,执行步骤S003 ;步骤SOM 等待客户端返回大对象传输结果消息,执行步骤S020 ;步骤S025 结束当前会话。如图2所示,是本发明大对象传输方法第二优选实施例的流程图,本实施例中, 客户端对于传输失败的数据块,采用请求服务器结束对话机制处理,本实施例包括以下步骤步骤SlOl 服务器与客户端建立会话;步骤S102 根据会话建立过程中得知的上述客户端能够支持的最大消息字节数, 拆分当前传输的大对象,将上述大对象拆分成数据块并开始传输;步骤S103 判断当前数据块是否是第一个数据块或者最后一个数据块,若为第一个数据块,则执行步骤S104 ;若为最后一个数据块,则执行步骤S105 ;否则,执行步骤 S106 ;步骤S104 将当前传输的大对象的大小作为扩展的SyncML消息的Size元素的值,执行步骤S106 ;步骤S105 将传输结束标识作为扩展的SyncML消息的Final元素的值;步骤S106 将当前数据块及其大小分别作为上述扩展的SyncML消息的Data元素、BlockSize元素的值;步骤S107 将上述扩展的SyncML消息发送给上述客户端;步骤S108 客户端收到扩展的SyncML消息;步骤S109 判断上述消息的Size元素是否为空,若是,则执行步骤SllO ;否则, 执行步骤Slll ;步骤SllO 保存Size元素的值;步骤Slll 计算收到的数据块的大小;步骤Sl 12 与BlockSize元素的值比较,若一致,则执行步骤Sl 13 ;否则,执行步骤 Sl14 ;步骤S113 保存当前数据块,并返回当前数据块传输成功消息给上述服务器,执行步骤Sl 15 ;步骤S114 丢弃当前数据块,返回结束会话请求消息给上述服务器;步骤S115 判断上述消息的Final元素的值是否为空,若是,则表明当前传输的数据块为最后一个数据块,执行步骤S116 ;否则,执行步骤S108 ;步骤S116 合并保存的所有数据块并计算合并后的数据块的大小;步骤S117 与保存的Size元素的值比较,若一致,则执行步骤S118 ;否则,执行步骤 Sl19 ;步骤S118 返回大对象传输成功消息给上述服务器,执行步骤S120 ;步骤S119 返回大对象传输失败消息给上述服务器;步骤S120 服务器收到客户端返回的消息;
步骤S121 判断客户端返回的消息类型,若为当前数据块传输成功消息,则执行步骤S122 ;若为结束会话请求消息,则执行步骤S125 ;若为大对象传输成功/失败消息,则执行步骤S125 ;步骤S122 判断是否还有数据块,若是,则执行步骤S123 ;否则,执行步骤SlM ;步骤S123 指向下一个数据块,执行步骤S103 ;步骤SlM 等待客户端返回大对象传输结果消息,执行步骤S120 ;步骤S125 结束当前会话。如图3所示,是本发明大对象传输系统优选实施例的原理框图,本实施例包括服务器和客户端,服务器,用于根据客户端支持的最大消息字节数,将预传输的大对象拆分成等于或小于上述最大消息字节数的数据块,并将得到的数据块及其大小通过扩展的SyncML消息,按顺序逐个发送给上述客户端;并在发送第一个数据块及其大小时,将上述大对象的大小发送给上述客户端;在发送最后一个数据块及其大小时,将传输结束标识发送给上述客户端;以及在上述客户端返回的消息为当前数据块传输成功消息,且还有数据块时,将下一个数据块及其大小发送给上述客户端;在上述客户端返回的消息为重传当前数据块请求消息时,继续发送当前数据块及其大小给上述客户端;在上述客户端返回的消息为结束会话请求消息、大对象传输成功消息或大对象传输失败消息时,结束当前会话;客户端,用于计算收到的数据块的实际大小,并与收到的上述数据块的大小进行比较,判断收到的数据块是否传输成功,并在数据块传输成功时,保存上述数据块,并返回当前数据块传输成功消息给上述服务器;在数据块传输失败时,返回结束会话请求消息或重传当前数据块请求消息给上述服务器;以及保存收到的大对象的大小;并在收到传输结束标识且当前数据块传输成功时,按顺序合并保存的数据块并计算上述数据块的总大小, 与保存的大对象的大小进行比较,在二者一致时,返回大对象传输成功消息给上述服务器; 在二者不一致时,返回大对象传输失败消息给上述服务器。上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种大对象传输方法,其特征在于,所述方法在服务器与客户端建立会话后,所述服务器将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给所述客户端;所述客户端判断收到的数据块是否传输成功,若是,则保存所述数据块,并返回当前数据块传输成功消息给所述服务器;否则,返回结束会话请求消息或重传当前数据块请求消息给所述服务器;所述服务器根据收到的消息,发送相应数据块及其大小或者结束会话。
2.根据权利要求1所述的方法,其特征在于,所述客户端通过以下方式判断收到的数据块是否传输成功计算所述数据块的实际大小;与收到的所述数据块的大小比较,若一致,则所述数据块传输成功;否则,所述数据块传输失败。
3.根据权利要求2所述的方法,其特征在于,若当前发送的数据块为所述大对象的第一个数据块,则所述服务器还将所述大对象的大小发送给所述客户端;所述客户端保存收到的大对象的大小。
4.根据权利要求3所述的方法,其特征在于,若当前发送的数据块为所述大对象的最后一个数据块,则所述服务器还发送传输结束标识发送给所述客户端;所述客户端在收到传输结束标识且当前数据块传输成功后,执行以下步骤按顺序合并保存的数据块并计算所述数据块的总大小;与保存的大对象的大小比较,若一致,则返回大对象传输成功消息给所述服务器;否则,返回大对象传输失败消息给所述服务器。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述服务器根据收到的请求,发送相应数据块及其大小或者结束会话步骤具体为所述服务器在收到当前数据块传输成功消息且还有数据块时,将下一个数据块及其大小发送给所述客户端;所述服务器在收到重传当前数据块请求消息时,继续发送当前数据块及其大小给所述客户端;所述服务器在收到结束会话请求消息、大对象传输成功消息或大对象传输失败消息时,结束当前会话。
6.根据权利要求5所述的方法,其特征在于,所述服务器通过扩展的SyncML消息将所述数据块及其大小、大对象的大小、传输结束标识发送给所述客户端;所述扩展的SyncML消息包括Size元素、Data元素、BlockSize元素、Final元素,其中,Size元素的值为大对象的大小、Data元素的值为当前传输的数据块、BlockSize元素的值为当前传输的数据块的大小、Final元素的值为传输结束标识。
7.一种大对象传输系统,其特征在于,所述系统包括服务器和客户端,所述服务器,用于将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给所述客户端;以及根据所述客户端返回的消息,发送相应数据块及其大小或者结束会话;所述客户端,用于判断收到的数据块是否传输成功,并在数据块传输成功时,保存所述数据块,并返回当前数据块传输成功消息给所述服务器;在数据块传输失败时,返回结束会话请求消息或重传当前数据块请求消息给所述服务器。
8.根据权利要求7所述的系统,其特征在于,所述服务器,用于在发送第一个数据块及其大小时,将所述大对象的大小发送给所述客户端;在发送最后一个数据块及其大小时,将传输结束标识发送给所述客户端;所述客户端,用于保存收到的大对象的大小;并在收到传输结束标识且当前数据块传输成功时,按顺序合并保存的数据块并计算所述数据块的总大小,与保存的大对象的大小进行比较,在二者一致时,返回大对象传输成功消息给所述服务器;在二者不一致时,返回大对象传输失败消息给所述服务器。
9.根据权利要求8所述的系统,其特征在于,所述服务器,用于在收到当前数据块传输成功消息且还有数据块时,将下一个数据块及其大小发送给所述客户端;在收到重传当前数据块请求消息时,继续发送当前数据块及其大小给所述客户端;以及在收到结束会话请求消息、大对象传输成功消息或大对象传输失败消息时,结束当前会话;所述客户端,用于计算数据块的实际大小,并与收到的所述数据块的大小进行比较。
10.根据权利要求7-9任一项所述的系统,其特征在于,所述服务器通过扩展的SyncML 消息将所述数据块及其大小、大对象的大小、传输结束标识发送给所述客户端。
全文摘要
本发明公开了一种大对象传输方法,上述方法在服务器与客户端建立会话后,服务器将预传输的大对象拆分成数据块,并将得到的数据块及其大小按顺序逐个发送给上述客户端;客户端判断收到的数据块是否传输成功,若是,则保存上述数据块,并返回当前数据块传输成功消息给上述服务器;否则,返回结束会话请求消息或重传当前数据块请求消息给上述服务器;服务器根据收到的消息,发送相应数据块及其大小或者结束会话;本发明还进一步公开了一种大对象传输系统。本发明在大对象的数据块传输出错时,提前进行了处理,节省了带宽资源。
文档编号H04L29/08GK102340507SQ201110316789
公开日2012年2月1日 申请日期2011年10月18日 优先权日2011年10月18日
发明者刘星, 双建平, 徐禄勇, 陈波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1