一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文本协同编辑方法和协同编辑装置、电子设备及存储介质与流程

2022-12-10 11:10:57 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种文本协同编辑方法和协同编辑装置、电子设备及存储介质。


背景技术:

2.目前的实时协同编辑系统,当大量用户同时对同一数据进行操作时,现有的协同编辑方法是通过对全量文本数据进行同步编辑,使得服务端需要存储记录大量多版本的并发数据,降低了对文本数据进行协同编辑的效率。


技术实现要素:

3.本技术实施例的主要目的在于提出一种文本协同编辑方法和协同编辑装置、电子设备及存储介质,旨在提高对文本数据进行协同编辑的效率。
4.为实现上述目的,本技术实施例的第一方面提出了一种文本协同编辑方法,所述方法包括:
5.建立与多个初始用户端的通信连接,并根据所述通信连接获取每个所述初始用户端对基础文本数据的查询请求;
6.根据所述查询请求从预存储的文档数据库中匹配所述基础文本数据,并将所述基础文本数据的版本标识设置为第一版本号;
7.获取在预设的增量时间区间内对所述基础文本数据进行编辑的多个文本增量日志,每个所述文本增量日志包括所述基础文本数据的编号、所述第一版本号、增量动作信息、所述初始用户端的编号、动作时间戳;
8.根据所述基础文本数据的编号和所述增量动作信息对多个所述文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集;其中,所述第一增量日志集用于表征需要进行数据冲突比较的所述文本增量日志的集合,所述第二增量日志集用于表征不需要进行数据冲突比较的所述文本增量日志的集合;
9.根据所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到第一文本增量数据;
10.对所述第二增量日志集中的每个所述文本增量日志进行数据回放,得到第二文本增量数据;
11.对所述第一文本增量数据和所述第二文本增量数据进行数据合并,得到目标文本增量数据;
12.将所述目标文本增量数据发送至每个所述初始用户端进行数据变更。
13.在一些实施例,在所述获取在预设的增量时间区间内对所述基础文本数据进行编辑的多个文本增量日志之后,所述方法还包括:
14.将经过编辑后的所述基础文本数据的版本标识修改为第二版本号;
15.将所述第二版本号与当前全部所述初始用户端的版本标识进行数值比较,并将版
本标识小于所述第二版本号的所述初始用户端作为候选用户端;
16.将所述第二版本号的所述文本增量日志同步至每个所述候选用户端。
17.在一些实施例,所述根据所述基础文本数据的编号和所述增量动作信息对多个所述文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集,包括:
18.根据所述增量动作信息确定每个所述文本增量日志的增量操作行和数据操作类型;
19.根据所述基础文本数据的编号、所述增量操作行和所述数据操作类型,对多个所述文本增量日志进行数据冲突比较,当比较的结果表示至少两个所述文本增量日志采用相同的所述数据操作类型对同一所述增量操作行进行编辑,将所述文本增量日志添加到第一增量日志集;
20.当比较的结果表示至少两个所述文本增量日志采用不同的所述数据操作类型对同一所述增量操作行进行编辑,或至少两个所述文本增量日志采用相同的所述数据操作类型对不同的所述增量操作行进行编辑,将所述文本增量日志添加到第二增量日志集。
21.在一些实施例,所述数据操作类型包括删除操作类型、新增操作类型和修改操作类型,所述根据所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到第一文本增量数据,包括:
22.若所述文本增量日志的所述数据操作类型为所述删除操作类型,根据所述增量操作行对每个所述文本增量日志进行合并判断,并根据判断的结果对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到第一文本增量数据;
23.若所述文本增量日志的所述数据操作类型为所述新增操作类型,根据预规定的新增数据行规则、所述基础文本数据的编号、所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到所述第一文本增量数据;
24.若所述文本增量日志的所述数据操作类型为所述修改操作类型,根据预规定的修改数据行规则、所述基础文本数据的编号、所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到所述第一文本增量数据。
25.在一些实施例,所述根据所述增量操作行对每个所述文本增量日志进行合并判断,并根据判断的结果对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到第一文本增量数据,包括:
26.获取所述第一增量日志集中所述数据操作类型为所述删除操作类型的所述文本增量日志,得到第一增量日志子集;
27.根据所述增量操作行对所述第一增量日志子集中的每个所述文本增量日志进行合并判断;
28.当判断的结果表示至少两个所述文本增量日志删除同一所述增量操作行,对删除同一所述增量操作行的所述文本增量日志进行日志合并,得到合并增量日志,并将所述合并增量日志添加到所述第一增量日志子集中;
29.对所述第一增量日志子集中的每个所述文本增量日志和每个所述合并增量日志进行数据回放,得到第一文本增量数据。
30.在一些实施例,所述根据预规定的新增数据行规则、所述基础文本数据的编号、所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到所述第一文本增量数据,包括:
31.获取所述第一增量日志集中所述数据操作类型为所述新增操作类型的所述文本增量日志,得到第二增量日志子集;
32.根据所述动作时间戳将所述第二增量日志子集中对应于同一所述增量操作行的所述文本增量日志进行降序排列,得到第一列表;
33.根据所述基础文本数据的编号、所述初始用户端的编号和所述第一列表,对每个所述文本增量日志进行数据回放,得到所述第一文本增量数据。
34.在一些实施例,所述若所述文本增量日志的所述数据操作类型为所述修改操作类型,根据预规定的修改数据行规则、所述基础文本数据的编号、所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到所述第一文本增量数据,包括:
35.获取所述第一增量日志集中所述数据操作类型为所述修改操作类型的所述文本增量日志,得到第三增量日志子集;
36.根据所述动作时间戳将所述第三增量日志子集中对应于同一所述增量操作行的所述文本增量日志进行升序排列,得到第二列表;
37.根据所述基础文本数据的编号、所述初始用户端的编号和所述第二列表,对每个所述文本增量日志进行数据回放,得到所述第一文本增量数据。
38.为实现上述目的,本技术实施例的第二方面提出了一种文本协同编辑装置,所述装置包括:
39.连接建立模块,用于建立与多个初始用户端的通信连接,并根据所述通信连接获取每个所述初始用户端对基础文本数据的查询请求;
40.基础文本匹配模块,用于根据所述查询请求从预存储的文档数据库中匹配所述基础文本数据,并将所述基础文本数据的版本标识设置为第一版本号;
41.文本增量日志获取模块,用于获取在预设的增量时间区间内对所述基础文本数据进行编辑的多个文本增量日志,每个所述文本增量日志包括所述基础文本数据的编号、所述第一版本号、增量动作信息、所述初始用户端的编号、动作时间戳;
42.数据冲突比较模块,用于根据所述基础文本数据的编号和所述增量动作信息对多个所述文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集;其中,所述第一增量日志集用于表征需要进行数据冲突比较的所述文本增量日志的集合,所述第二增量日志集用于表征不需要进行数据冲突比较的所述文本增量日志的集合;
43.第一数据回放模块,用于根据所述初始用户端的编号和所述动作时间戳,对所述第一增量日志集中的每个所述文本增量日志进行数据回放,得到第一文本增量数据;
44.第二数据回放模块,用于对所述第二增量日志集中的每个所述文本增量日志进行数据回放,得到第二文本增量数据;
45.数据合并模块,用于对所述第一文本增量数据和所述第二文本增量数据进行数据合并,得到目标文本增量数据;
46.数据变更模块,用于将所述目标文本增量数据发送至每个所述初始用户端进行数
据变更。
47.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
48.为实现上述目的,本技术实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
49.本技术提出的一种文本协同编辑方法和协同编辑装置、电子设备及存储介质,其通过建立与多个初始用户端的通信连接,并根据通信连接获取每个初始用户端对基础文本数据的查询请求,从而根据该查询请求从预存储的文档数据库中匹配基础文本数据,并将该基础文本数据的版本标识设置为第一版本号。然后,获取在预设的增量时间区间内对基础文本数据进行编辑的多个文本增量日志,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳。根据基础文本数据的编号和增量动作信息对多个文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集,第一增量日志集用于表征需要进行数据冲突比较的文本增量日志的集合,第二增量日志集用于表征不需要进行数据冲突比较的文本增量日志的集合。根据初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据。对第二增量日志集中的每个文本增量日志进行数据回放,得到第二文本增量数据。之后,对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据,并将目标文本增量数据发送至每个初始用户端进行数据变更。本技术实施例能够提高对文本数据进行协同编辑的效率。
附图说明
50.图1是本技术实施例提供的文本协同编辑方法的第一流程图;
51.图2是本技术实施例提供的文本协同编辑方法的第二流程图;
52.图3是图1中的步骤s140的流程图;
53.图4是本技术实施例提供的文本协同编辑方法的第三流程图;
54.图5是本技术实施例提供的文本协同编辑方法的第四流程图;
55.图6是本技术实施例提供的文本协同编辑方法的第五流程图;
56.图7是本技术实施例提供的文本协同编辑装置的结构示意图;
57.图8是本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
58.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
59.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别
类似的对象,而不必用于描述特定的顺序或先后次序。
60.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
61.首先,对本技术中涉及的若干名词进行解析:
62.websocket通信协议:是一种在单个传输控制协议(transmission control protocol,tcp)连接上进行全双工通信的协议。在websocket api中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,使得用户端设备和服务端设备之间的数据交换变得更加简单,允许服务端设备主动向用户端设备推送数据。
63.可扩展通讯和表示协议(extensible messaging and presence protocol,xmpp):可用于服务类实时通讯、表示和需求响应服务中的xml数据元流式传输。
64.消息队列遥测传输(message queuing telemetry transport,mqtt):是iso标准(iso/iec prf 20922)下基于发布/订阅范式的消息协议,是一个基于客户端-服务器的消息发布/订阅传输协议。
65.传统编辑方法在解决多终端的数据编辑、数据阅读、以及对文档数据进行管理操作后,能够保证数据内容的一致性。但实时协同编辑在并发性与高吞吐上的要求较高,传统的分布编辑方法并不能满足。
66.目前,实时协同编辑系统在操作时,不仅需要面对格式复杂且冗长的数据,还需要同时面对不同终端用户对同一数据对象在同一时间节点的数据竞争操作。当大量用户同时对同一数据进行操作时,现有的协同编辑方法通过对全量文本数据进行同步编辑,使得服务端需要存储记录大量多版本的并发数据,降低了对文本数据进行协同编辑的效率。
67.基于此,本技术实施例提供了一种文本协同编辑方法和协同编辑装置、电子设备及存储介质,旨在提高对文本数据进行协同编辑的效率。
68.本技术实施例提供的文本协同编辑方法和协同编辑装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本技术实施例中的文本协同编辑方法。
69.本技术实施例提供的文本协同编辑方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现文本协同编辑方法的应用等,但并不局限于以上形式。
70.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布
式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
71.需要说明的是,在本技术的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本技术实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本技术实施例能够正常运行的必要的用户相关数据。
72.请参阅图1,图1是本技术实施例提供的文本协同编辑方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s110至步骤s180:
73.步骤s110,建立与多个初始用户端的通信连接,并根据通信连接获取每个初始用户端对基础文本数据的查询请求;
74.步骤s120,根据查询请求从预存储的文档数据库中匹配基础文本数据,并将基础文本数据的版本标识设置为第一版本号;
75.步骤s130,获取在预设的增量时间区间内对基础文本数据进行编辑的多个文本增量日志,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳;
76.步骤s140,根据基础文本数据的编号和增量动作信息对多个文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集;
77.步骤s150,根据初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据;
78.步骤s160,对第二增量日志集中的每个文本增量日志进行数据回放,得到第二文本增量数据;
79.步骤s170,对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据;
80.步骤s180,将目标文本增量数据发送至每个初始用户端进行数据变更。
81.本技术实施例所示意的步骤s110至步骤s180,通过建立与多个初始用户端的通信连接,并根据通信连接获取每个初始用户端对基础文本数据的查询请求,从而根据该查询请求从预存储的文档数据库中匹配基础文本数据,并将该基础文本数据的版本标识设置为第一版本号。然后,获取在预设的增量时间区间内对基础文本数据进行编辑的多个文本增量日志,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳。根据基础文本数据的编号和增量动作信息对多个文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集,第一增量日志集用于表征需要进行数据冲突比较的文本增量日志的集合,第二增量日志集用于表征不需要进行数据冲突比较的文本增量日志的集合。根据初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据。对第二增量日志集中的每个文本增量日志进行数据回放,得到第二文本增量数据。之后,对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据,并将目标文本增量数据发送至每个
初始用户端进行数据变更。本技术实施例能够提高对文本数据进行协同编辑的效率。
82.需要说明的是,本技术实施例的应用场景可以包括用户端设备和服务端设备,用户端设备用于将对基础文本数据的查询请求发送到服务端设备,服务端设备用于执行本技术实施例提供的文本协同编辑方法,在获取到用户端设备发送的对基础文本数据的查询请求后,执行本技术的文本协同编辑方法。
83.在一些实施例的步骤s110中,若以服务端设备作为本技术实施例提供的文本协同编辑方法的执行主体,首先,建立服务端与多个初始用户端的通信连接,并根据该通信连接获取每个初始用户端对基础文本数据的查询请求。
84.需要说明的是,当用户a登陆编辑系统后,可以通过websocket通信协议建立用户a对应的初始用户端与服务端的通信连接,以得到连接会话p1。例如,当用户a在初始用户端进入文档目录d选择基础文本数据w1,以进入对基础文本数据w1的编辑模式。此时,初始用户端会根据该操作形成对基础文本数据w1的查询请求,并将该查询请求发送到服务端,以使服务端根据通信连接的连接会话s1获取每个初始用户端对基础文本数据的查询请求。
85.需要说明的是,服务端设备可以与至少一个初始用户端通信连接,则可以同时建立多个websocket通信连接和其对应的连接会话。
86.需要说明的是,服务端设备与初始用户端设备的通信连接方式也可以为基于xmpp、mqtt协议等,在此不作具体限定。
87.需要说明的是,也可以用一个用户端设备作为本技术实施例提供的文本协同编辑方法的执行主体,在此不作具体说明。
88.在一些实施例的步骤s120中,服务端设备中预存储了文档数据库,该文档数据库用于存储可以在用户端进行实时编辑的所有文档数据,则当接收到查询请求后,根据查询请求可以从预存储的文档数据库中匹配得到基础文本数据,并将该基础文本数据的版本标识设置为第一版本号,可以记为v1。需要说明的是,第一版本号v1用于表示当前与服务端连接的初始用户端在当前进行编辑时以基础文本数据为基础版本,即该基础文本数据可以为文档的初始版本,也可以为已经变更后的版本。当所有初始都已经进行了变更,则将变更后版本的文档数据作为下一次编辑的基础文本数据。
89.需要说明的是,例如,当用户a在一个初始用户端进入文档目录d选择基础文本数据w1,则服务端会查询当前的基础文本数据w1的全量数据。且服务端会记录用户a的基础文本数据w1的第一版本号v1。
90.在一些实施例的步骤s130中,为了实现将编辑的增量数据实时以日志的形式发送到客户端以进行变更,服务端预设了一个增量时间区间,即在该增量时间区间内获取多个对基础文本数据进行编辑的文本增量日志,每个文本增量日志表示某一初始用户端对基础文本数据的那一工行进行了变更,以生成一个文本增量日志。其中,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳。本技术实施例通过将变更的文本增量日志发送到服务端进行数据变更,减少调用的时间消耗,能够有效地提高对文本数据进行协同编辑的效率。
91.需要说明的是,每个初始用户端进行操作的增删改段落会打上对应的用户令牌(即用户标记),同时会记录动作的发生时间,即动作时间戳。
92.需要说明的是,文本增量日志的形式可以记录为“基础文本数据的编号:第一版本
号:增量动作信息:初始用户端的编号:动作时间戳”,其中,文本增量日志的形式用于表示,哪个初始用户端在什么动作时间戳以什么基础文本数据的第一版本号执行了哪一种增量动作信息。例如,一个文本增量日志的形式为“w1:v1:addl1c33:s1:userid1:t1”,其中,addl1c33:s1用于表示在第一行第33个字符后新增字符串s1,则该文本增量日志的形式用于表示:编号为userid1的初始用户端在t1动作时间戳,将基础文本数据w1的v1版本在第一行第33个字符后新增字符串s1。又如,一个文本增量日志的形式为“w1:v1:dell1c3c10:userid2:t2”,其中,dell1c3c10用于表示从第1行第3个字符后删除字符直到第十个字符,则该文本增量日志的形式用于表示:编号为userid2的初始用户端在t2动作时间戳,将基础文本数据w1的v1版本从第1行第3个字符后删除字符直到第十个字符。还如,一个文本增量日志的形式为“w1:v1:newl1:userid3:t3”,其中,newl1用于表示在第1行后新增一行,则该文本增量日志的形式用于表示:编号为userid3的初始用户端在t3动作时间戳,将基础文本数据w1的v1版本在第1行后新增一行。
93.需要说明的是,服务端可以在一个初始用户端获取多个文本增量日志,且获取的形式可以初始用户端生成一条文本增量日志则传到服务端一条,也可以在所有变更完成后,将生成的多条文本增量日志一起传到服务端,在此不作具体限定。
94.请参阅图2,图2是本技术实施例提供的文本协同编辑方法的另一个可选的流程图。在一些实施例中,在步骤s130之后,本技术实施例提供的方法具体还可以包括但不限于步骤s210至步骤s230:
95.步骤s210,将经过编辑后的基础文本数据的版本标识修改为第二版本号;
96.步骤s220,将第二版本号与当前全部初始用户端的版本标识进行数值比较,并将版本标识小于第二版本号的初始用户端作为候选用户端;
97.步骤s230,将第二版本号的文本增量日志同步至每个候选用户端。
98.在一些实施例的步骤s210中,当服务端记录基础文本数据被某一初始用户端进行了编辑后,则将该初始用户端当前进行编辑的基础文本数据的版本表示修改为第二版本号,该第二版本号能够便于区分此时编辑后的文本数据和第一版本号的基础文本数据。
99.在一些实施例的步骤s220至步骤s230中,将第二版本号与当前全部初始用户端的版本标识进行数值比较,即在服务端对当前进行会话的所有初始用户端进行筛选,找出当前处于阅读相同的基础文本数据且版本标识小于第二版本号的初始用户端,并将这些初始用户端作为候选用户端。同时,将该第二版本号的文本增量日志同步至每个候选用户端,以实现将对基础文本数据变更后的增量数据的回放同步至所有的候选用户端。例如,当用户a对v1版本的基础文本数据w1进行某些字符的增删改,将修改后的增量文本数据的版本标识修改为v2,则将该v2版本下生成的关于对基础文本数据w1的文本增量日志发送到所有的候选用户端进行数据回放,以保证与服务端相连的所有用户端的实时同步。
100.请参阅图3,在一些实施例中,步骤s140具体可以包括但不限于步骤s310至步骤s330:
101.步骤s310,根据增量动作信息确定每个文本增量日志的增量操作行和数据操作类型;
102.步骤s320,根据基础文本数据的编号、增量操作行和数据操作类型,对多个文本增量日志进行数据冲突比较,当比较的结果表示至少两个文本增量日志采用相同的数据操作
类型对同一增量操作行进行编辑,将文本增量日志添加到第一增量日志集;
103.步骤s330,当比较的结果表示至少两个文本增量日志采用不同的数据操作类型对同一增量操作行进行编辑,或至少两个文本增量日志采用相同的数据操作类型对不同的增量操作行进行编辑,将文本增量日志添加到第二增量日志集。
104.在一些实施例的步骤s310中,由于同一个服务器所连接的多个初始用户端的一次操作都是基于版本标识为v1的基础文本数据,则服务端会在同一时间存在多个用户端的多个操作,从而在对文本增量日志的数据回放时产生数据冲突,则需要对产生的多个冲突进行冲突仲裁,以提高对文本数据进行协同编辑的效率。具体地,根据增量动作信息确定每个文本增量日志的增量操作行和数据操作类型,增量操作行用于确认多个用户端是否是对同一行数据进行操作,数据操作类型用于确认多个用户端是否进行了相同的操作。
105.在一些实施例的步骤s320中,第一增量日志集用于表征需要进行数据冲突比较的文本增量日志的集合。
106.需要说明的是,第一增量日志集中包括多组第一增量日志组合,每组第一增量日志组合表示采用相同的数据操作类型对同一增量操作行进行编辑的文本增量日志。
107.在一些实施例的步骤s330中,第二增量日志集用于表征不需要进行数据冲突比较的文本增量日志的集合。
108.在一些实施例中,数据操作类型包括删除操作类型、新增操作类型和修改操作类型,则步骤s150具体可以包括但不限于以下至少一种情况:
109.若文本增量日志的数据操作类型为删除操作类型,根据增量操作行对每个文本增量日志进行合并判断,并根据判断的结果对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据;
110.若文本增量日志的数据操作类型为新增操作类型,根据预规定的新增数据行规则、基础文本数据的编号、初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据;
111.若文本增量日志的数据操作类型为修改操作类型,根据预规定的修改数据行规则、基础文本数据的编号、初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据。
112.请参阅图4,在一些实施例中,若文本增量日志的数据操作类型为删除操作类型,本技术实施例提供的方法具体还可以包括但不限于包括步骤s410至步骤s440:
113.步骤s410,获取第一增量日志集中数据操作类型为删除操作类型的文本增量日志,得到第一增量日志子集;
114.步骤s420,根据增量操作行对第一增量日志子集中的每个文本增量日志进行合并判断;
115.步骤s430,当判断的结果表示至少两个文本增量日志删除同一增量操作行,对删除同一增量操作行的文本增量日志进行日志合并,得到合并增量日志,并将合并增量日志添加到第一增量日志子集中;
116.步骤s440,对第一增量日志子集中的每个文本增量日志和每个合并增量日志进行数据回放,得到第一文本增量数据。
117.在一些实施例的步骤s410至步骤s440中,若文本增量日志的数据操作类型为删除
操作类型,首先获取第一增量日志集中数据操作类型为删除操作类型的文本增量日志,得到第一增量日志子集。然后,根据增量操作行对第一增量日志子集中的每个文本增量日志进行合并判断,即先判断第一增量日志子集中的每个文本增量日志文本是否删除的是同一增量操作行。当判断的结果表示至少两个文本增量日志删除同一增量操作行,对删除同一增量操作行的文本增量日志进行日志合并,得到合并增量日志,并将合并增量日志添加到第一增量日志子集中,同时将合并增量日志对应的单个文本增量日志在第一增量日志子集中删除,以避免重复操作降低对数据回放的效率。最后,对第一增量日志子集中的每个文本增量日志和每个合并增量日志进行数据回放,即根据动作时间戳对第一增量日志子集中的每个文本增量日志和每个合并增量日志进行数据删除得到第一文本增量数据。
118.需要说明的是,当判断的结果表示每个文本增量日志都删除的不是同一增量操作行,则该文本增量日志在第一增量日志子集中保持不变。
119.需要说明的是,对基础文本数据的删除操作在经过数据回放后,在用户端界面可以显示为将文本的中间加上删除线,并标记初始用户端对应的用户令牌,用户令牌可以为设定的用户头像或自定义图像等;也可以不显示删除后的文本数据,只标记初始用户端的用户令牌,在此不做具体限定。
120.需要说明的是,在初始用户端显示的删除操作、新增操作或修改操作的标记只会显示一段时间,即在下一次操作时会将之前的标记清除。
121.请参阅图5,在一些实施例中,若文本增量日志的数据操作类型为新增操作类型,本技术实施例提供的方法具体还可以包括但不限于包括步骤s510至步骤s530:
122.步骤s510,获取第一增量日志集中数据操作类型为新增操作类型的文本增量日志,得到第二增量日志子集;
123.步骤s520,根据动作时间戳将第二增量日志子集中对应于同一增量操作行的文本增量日志进行降序排列,得到第一列表;
124.步骤s530,根据基础文本数据的编号、初始用户端的编号和第一列表,对每个文本增量日志进行数据回放,得到第一文本增量数据。
125.在一些实施例的步骤s510至步骤s530中,若文本增量日志的数据操作类型为新增操作类型,首先,获取第一增量日志集中数据操作类型为新增操作类型的文本增量日志,得到第二增量日志子集。对第二增量日志子集中每个文本增量日志进行操作的增量数据行进行判断,确定第二增量日志子集中对应于同一增量操作行的文本增量日志的日志组合。预规定的新增数据行规则为对于同一增量操作行的文本增量日志,最后时间修改的在显示的时候先添加。具体地,根据动作时间戳将得到的对应于同一增量操作行的日志组合进行降序排列,得到第一列表,即该第一列表的第一个为新增操作时间最晚的文本增量日志。根据基础文本数据的编号、初始用户端的编号和第一列表,对每个文本增量日志进行数据回放,即将时间最晚的文本增量日志的增量数据添加到最前面,依此类推,以得到第一文本增量数据。例如,原增量操作行为a,在a后面新增数据,t1新增时间的文本增量日志对应增量数据b,t2新增时间的文本增量日志对应增量数据c,t1时间晚于t2时间,则得到的第一文本增量数据为abc。本技术实施例根据预规定的新增数据行规则进行数据新增,提高了对文本数据进行协同编辑的效率。
126.请参阅图6,在一些实施例中,若文本增量日志的数据操作类型为修改操作类型,
本技术实施例提供的方法具体还可以包括但不限于包括步骤s610至步骤s630:
127.步骤s610,获取第一增量日志集中数据操作类型为修改操作类型的文本增量日志,得到第三增量日志子集;
128.步骤s620,根据动作时间戳将第三增量日志子集中对应于同一增量操作行的文本增量日志进行升序排列,得到第二列表;
129.步骤s630,根据基础文本数据的编号、初始用户端的编号和第二列表,对每个文本增量日志进行数据回放,得到第一文本增量数据。
130.在一些实施例的步骤s510至步骤s530中,若文本增量日志的数据操作类型为修改操作类型,首先,获取第一增量日志集中数据操作类型为修改操作类型的文本增量日志,得到第三增量日志子集。对第三增量日志子集中每个文本增量日志进行操作的增量数据的字符进行判断,确定第三增量日志子集中对应于同一增量操作行的同一起始字符的文本增量日志的日志组合。预规定的修改数据行规则为对于同一增量操作行的同一起始字符的文本增量日志,先修改的先变化。具体地,根据动作时间戳将第三增量日志子集中对应于同一增量操作行的文本增量日志进行升序排列,得到第二列表,即该第二列表的第一个为修改操作时间最早的文本增量日志。根据基础文本数据的编号、初始用户端的编号和第二列表,对每个文本增量日志进行数据回放,即将时间最早的文本增量日志的增量数据先对原数据行进行修改,依此类推,以得到第一文本增量数据。例如,原增量操作行为a,对a进行修改,t1时间的文本增量日志将a修改为a1,t2时间的文本增量日志将a修改为a2,t1时间晚于t2时间,则得到的第一文本增量数据为a1,a2。
131.需要说明的是,动作时间戳前的初始用户端对同一增量操作行的同一起始字符修改完成后,下一个初始用户端的相同位置的修改就无效了,则可以不显示,或者在上一个初始用户端修改后的记录后面加上二次修改的记录,保留了每个初始用户端的修改记录。
132.在一些实施例的步骤s160中,第二增量日志集中存储的文本增量日志之间不存在数据冲突,则根据动作时间戳对每个文本增量日志进行数据回放,得到第二文本增量数据。
133.需要说明的是,第二增量日志集中存储的文本增量日志可以为采用不同的数据操作类型,或者删除的不是同一增量数据行,或者不是在同一增量数据行后新增,或者是对同一增量数据行的不同字符的修改。
134.在一些实施例的步骤s170中,对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据。
135.在一些实施例的步骤s180中,将目标文本增量数据发送至每个初始用户端进行数据变更,即将其合并成一个目标文本增量数据发送到每个初始用户端进行显示。
136.需要说明的是,数据回放操作生成的行或者字符串本身会带上进行操作的初始用户端的用户令牌,在页面呈现阶段会以不同颜色的背景单独标记出来。
137.请参阅图7,本技术实施例还提供了一种文本协同编辑装置,可以实现上述文本协同编辑方法,该装置包括:
138.连接建立模块710,用于建立与多个初始用户端的通信连接,并根据通信连接获取每个初始用户端对基础文本数据的查询请求;
139.基础文本匹配模块720,用于根据查询请求从预存储的文档数据库中匹配基础文本数据,并将基础文本数据的版本标识设置为第一版本号;
140.文本增量日志获取模块730,用于获取在预设的增量时间区间内对基础文本数据进行编辑的多个文本增量日志,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳;
141.数据冲突比较模块740,用于根据基础文本数据的编号和增量动作信息对多个文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集;其中,第一增量日志集用于表征需要进行数据冲突比较的文本增量日志的集合,第二增量日志集用于表征不需要进行数据冲突比较的文本增量日志的集合;
142.第一数据回放模块750,用于根据初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据;
143.第二数据回放模块760,用于对第二增量日志集中的每个文本增量日志进行数据回放,得到第二文本增量数据;
144.数据合并模块770,用于对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据;
145.数据变更模块780,用于将目标文本增量数据发送至每个初始用户端进行数据变更。
146.该文本协同编辑装置的具体实施方式与上述文本协同编辑方法的具体实施例基本相同,在此不再赘述。
147.本技术实施例还提供了一种电子设备,电子设备包括括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述文本协同编辑方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
148.请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:
149.处理器810,可以采用通用的中央处理器(central processing unit,cpu)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
150.存储器820,可以采用只读存储器(read only memory,rom)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,ram)等形式实现。存储器820可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行本技术实施例的文本协同编辑方法;
151.输入/输出接口830,用于实现信息输入及输出;
152.通信接口840,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;
153.总线850,在设备的各个组件(例如处理器810、存储器820、输入/输出接口830和通信接口840)之间传输信息;
154.其中处理器810、存储器820、输入/输出接口830和通信接口840通过总线850实现彼此之间在设备内部的通信连接。
155.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述文本协同编辑方法。
156.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非
暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
157.本技术实施例提供的一种文本协同编辑方法和协同编辑装置、电子设备及存储介质,其通过建立与多个初始用户端的通信连接,并根据通信连接获取每个初始用户端对基础文本数据的查询请求,从而根据该查询请求从预存储的文档数据库中匹配基础文本数据,并将该基础文本数据的版本标识设置为第一版本号。然后,获取在预设的增量时间区间内对基础文本数据进行编辑的多个文本增量日志,每个文本增量日志包括基础文本数据的编号、第一版本号、增量动作信息、初始用户端的编号、动作时间戳。将经过编辑后的基础文本数据的版本标识修改为第二版本号,将第二版本号与当前全部初始用户端的版本标识进行数值比较,并将版本标识小于第二版本号的初始用户端作为候选用户端,并将第二版本号的文本增量日志同步至每个候选用户端,以保证与服务端相连的所有用户端的实时同步。根据基础文本数据的编号和增量动作信息对多个文本增量日志进行数据冲突比较,确定第一增量日志集和第二增量日志集,第一增量日志集用于表征需要进行数据冲突比较的文本增量日志的集合,第二增量日志集用于表征不需要进行数据冲突比较的文本增量日志的集合。根据初始用户端的编号和动作时间戳,对第一增量日志集中的每个文本增量日志进行数据回放,得到第一文本增量数据。对第二增量日志集中的每个文本增量日志进行数据回放,得到第二文本增量数据。之后,对第一文本增量数据和第二文本增量数据进行数据合并,得到目标文本增量数据,并将目标文本增量数据发送至每个初始用户端进行数据变更,在用户端的页面呈现阶段根据操作用户端的不同以不同颜色的背景单独标记出来。本技术实施例采用多模方式,即包括对存在数据冲突比较和不存在数据冲突比较的文本增量日志的处理,采用多模仲裁机制,避免了传统协同系统的全量新增的弊端。本技术实施例在并发修改同一数据甚至同一行的场景中,会根据用户动作时间戳与初始用户端的编号id进行回放先后仲裁,以增量日志方式记录数据变更,同时避免了服务端用大量存储记录多版本并发数据的问题,提高对文本数据进行协同编辑的效率。本技术实施例在表现层,即进行回放日志的时候,能够根据userid将不同用户的操作结果打上可视化标签,避免了用户端无法规避重复对同一数据修改的情况。
158.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
159.本领域技术人员可以理解的是,图中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
160.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
161.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
162.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
163.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
164.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
165.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
166.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
167.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
168.以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献