[发明专利]支持并发的客户端与服务器端的文档操作同步方法有效

专利信息
申请号: 201310582305.3 申请日: 2013-11-18
公开(公告)号: CN103607451B 公开(公告)日: 2017-02-15
发明(设计)人: 黄君洲 申请(专利权)人: 上海爱数信息技术股份有限公司
主分类号: H04L29/08 分类号: H04L29/08
代理公司: 上海科盛知识产权代理有限公司31225 代理人: 赵志远
地址: 201112 上海市闵行*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种支持并发的客户端与服务器端的文档操作同步方法,包括以下步骤1)将文档操作命令队列按照类型分为三种普通命令队列NCQ、大数据上传队列BDQ和小数据上传队列SDQ,其中NCQ中包含所有待处理的文档操作命令,BDQ中包含所有的大数据量的文件的上传操作,SDQ中包含所有的小数据量的文件的上传操作;2)通过上传管理器Upload Manager来管理整个文档操作的上传,Upload Manager管理一个上传代理池Upload Agent Pool,上传代理池中包括NCQAgent、SDQ Agent和BDQ Agent,通过调用这些代理来完成一个控制命令或者数据上传命令。与现有技术相比,本发明具有提高传输效率、以避免大文件上传时间太长从而影响小文件的同步、解决队列堵塞的问题等优点。
搜索关键词: 支持 并发 客户端 服务器端 文档 操作 同步 方法
【主权项】:
一种支持并发的客户端与服务器端的文档操作同步方法,其特征在于,包括以下步骤:1)将文档操作命令队列按照类型分为三种:普通命令队列NCQ、大数据上传队列BDQ和小数据上传队列SDQ,其中NCQ中包含所有待处理的文档操作命令,BDQ中包含所有的大数据量的文件的上传操作,SDQ中包含所有的小数据量的文件的上传操作;2)通过上传管理器Upload Manager来管理整个文档操作的上传,Upload Manager管理一个上传代理池Upload Agent Pool,上传代理池中包括NCQ Agent、SDQ Agent和BDQ Agent,通过调用这些代理来完成一个控制命令或者数据上传命令;其中文档上传队列的管理包括以下步骤:(1)上传管理器Upload Manager进行初始化,包括初始化普通命令队列NCQ队列、大数据上传队列BDQ队列、小数据上传队列SDQ队列、NCQ Agent、SDQ Agent和BDQ Agent;(2)Upload Manager执行逻辑,包括检查是否有应用层的请求、轮询NCQ队列、轮询SDQ队列和轮询BDQ队列;所述的NCQ队列、BDQ队列和SDQ队列分别如下:其中大数据量及小数据量的定义根据用户环境设置,即文件大小大于阈值的设置为大数据量文件,小于或者等于阈值的设置为小数据量文件;客户端产生的所有的文档操作命令,首先添加到NCQ队列的末尾,若该命令为文件上传操作,则同时根据文件的大小,在相应的BDQ队列或者SDQ队列中添加一条文件上传命令,并建立和NCQ队列中相应命令的关联;所述的NCQ队列采用顺序执行方式,BDQ队列和SDQ队列采用并发执行方式;所述的NCQ Agent在NCQ队列中有命令需要执行时,执行队列中的命令;SDQ Agent和BDQ Agent分别用于执行SDQ队列和BDQ队列的数据上传,当SDQ队列中有命令等待执行时,分配处于空闲状态的SDQ Agent完成该同步指令,如果没有空闲的SDQ Agent,则需要等待正在工作的SDQ Agent变成空闲状态;当BDQ队列中有命令等待执行时,分配处于空闲状态的BDQ Agent完成该同步指令,如果没有空闲的BDQ Agent,则需要等待正在工作的BDQ Agent变成空闲状态;所述的Upload Manager检查是否有应用层的请求具体为:若有操作需要添加到同步队列,则首先将该命令添加到NCQ队列的末尾;若有操作需要取消,则将NCQ队列中该操作对应的命令删除;若为查询操作,则从队列中获取对应的命令的状态,回复给上层应用;所述的Upload Manager轮询NCQ队列具体为:1)获取当前NCQ队列的队首命令;2)判断队列是否为空,若为否,执行步骤3),否则结束;3)判断当前命令状态是否异常,若为否,执行步骤4),否则结束;4)判断是否为文件上传命令,若为是,执行步骤5),否则,执行步骤8);5)通过文件大小判断为大数据量文件还是小数据量文件,若为大数据量文件,执行步骤6),否则执行步骤7);6)在BDQ队列中添加文件上传命令,并将当前命令标记为异常,并返回步骤1);7)在SDQ队列中添加文件上传命令,并将当前命令标记为异常,并返回步骤1);8)调用NCQ Agent执行当前命令;9)判断执行同步是否正常完成,若为是,执行步骤10),否则,进入异常处理流程;10)判断当前命令是否被标记为异常,若为是,执行步骤11),否则返回步骤1);11)遍历整个NCQ队列,将所有标记为依赖于当前命令的命令的依赖标记删除;12)将当前命令从队列中移除,并将下一条命令设置为队首;所述的轮询SDQ队列具体流程如下:1)获取当前SDQ队列的队首命令;2)判断命令是否在执行中或队列为空,若均为否,执行步骤3),否则结束;3)判断是否有空闲的SDQ Agent,若为是,执行步骤4),否则等待空闲的SDQ Agent,并继续执行步骤3);4)将当前命令的状态设置为正在执行中,并移动到队列末尾;5)调用SDQ Agent执行当前命令;6)判断为完成或异常,若为异常,返回步骤5),否则,执行步骤7);7)释放SDQ Agent;8)将当前命令从SDQ队列中删除;9)将SDQ队列中关联的命令的异常标记去除,并返回步骤1);所述的轮询BDQ队列的流程同轮询SDQ队列,将SDQ队列改为BDQ队列,SDQ Agent改为BDQ Agent。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海爱数信息技术股份有限公司,未经上海爱数信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310582305.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top