协同编辑过程中的数据处理方法、装置及电子设备与流程

文档序号:36292242发布日期:2023-12-07 03:20阅读:44来源:国知局
协同编辑过程中的数据处理方法与流程

本发明涉及计算机处理,尤其涉及一种协同编辑过程中的数据处理方法、装置、电子设备及计算机可读存储介质。


背景技术:

1、协同编辑是近年来兴起的一种操作方式,主要应用于在线文档,编辑对象主要是文本类型的字符。目前的协同编辑系统主要应用操作转换(operation transformation,简称ot)算法或无冲突的复制数据类型(conflict-free replicated data type,简称crdt)算法,目的是保留所有用户的操作(operation)(如新增、删除、更新等)和过程数据,并解决多用户编辑时的冲突问题。

2、其中,ot算法通过第三方中心服务器解决冲突问题来保证多端用户的一致性,主要的应用例如为google doc、腾讯文档等产品。crdt算法通过双向链表的数据结构来保证并发冲突数据的最终一致性。具体地,基于crdt算法为在文档中创建的每个字符分配一个唯一的标识符,并在删除字符时保留元数据;双向链表中的每一项都唯一地记录了每次用户操作所更新的数据,从而将用户的所有操作最终全部转化为链表结构的变换,并将链表中记录的内容进行序列化编码后分发到各个客户端,从而使各个客户端重建出的文档保持完全一致的状态。较为成熟的、开源的web应用例如为yjs、automerge、和teletype-crdt等。

3、从上述的说明可见,无论是ot算法还是crdt算法,都需要保留所有的历史操作和数据,因而,随着历史编辑次数的增多,需要过滤的数据变多,导致效率降低,出现明显的卡顿现象。目前的解决方案之一是基于下次编辑可能与上一个编辑位置非常接近的假设减少需要过滤的数据,虽然该方案解决了效率低的问题,但是不能满足任意位置编辑的需求。对于crdt算法,由于其在链表中采用指针关联不同的操作及内容,从而导致结构碎片化,处理器在处理这样的数据结构时必须为每个处理对象(如操作和/或内容)分配不同的内存地址,导致开辟内存速度慢;垃圾收集器(garbage collector,简称gc)需要额外的数据来跟踪所有的处理对象,导致gc开销大、回收速度慢;处理器在读取链表中的数据时,由于数据存储在不同的内存地址空间,因而处理器需要切换主内存和缓存,导致计算速度慢且命中率低。

4、元宇宙是一种集合了信息技术、通信技术、ar、vr等技术的一种开放与共享的线上平台,元宇宙系统通常包括客户端设备和服务端设备,用户利用客户端设备上的摄像机采集当前空间环境图像并利用设备上的定位设备定位自身所在的空间位置,包括高度、方位、地理坐标等等,将这些信息发送给服务端设备。服务端设备中存储与客户端设备所在空间成1:1比例的数字空间(也称为元宇宙场景),基于客户端设备的环境图像及空间位置定位该客户端设备在数字空间的位置,而后将当前数字空间中叠加的处于用户视野(用户客户端设备上摄像机的视觉采集范围)的数字内容推送给用户的客户端,在用户的客户端设备上显示出数字内容,从而使用户通过客户端设备屏幕看到现实空间中没有的内容。从而可见,元宇宙系统需要提供与现实1:1比例的数字空间及能够叠加在数字空间中的数字内容。无论是数字空间还是数字内容,都具有三维属性,在编辑该数字空间、数字内容时无法应用前述对在线文档进行协同编辑的方法,因而目前在构建元宇宙系统中的数字空间、数字内容时,只能单用户操作,创建周期长、效率低。


技术实现思路

1、有鉴于此,本发明实施例提供一种协同编辑过程中的数据处理方法、装置、电子设备及计算机可读存储介质,用以实现多用户协同编辑元宇宙场景。

2、第一方面,本发明实施例提供一种协同编辑过程中的数据处理方法,其应用于终端设备,包括以下步骤:

3、获取用户编辑的元宇宙场景id;

4、响应于检测到用户对所述元宇宙场景中的数字内容的编辑指定操作,锁定所述数字内容,并获取所述数字内容在所述元宇宙场景中的空间id;

5、在所述数字内容的锁定状态,获取用户对所述数字内容进行一次或多次编辑时产生的对象数据;

6、按照用户编辑的时间顺序将每次编辑产生的对象数据顺次存储到提交队列中;

7、响应于满足提交条件,按照先进先出方式将所述提交队列中的多个对象数据逐个序列化并组成结构化的内容数据;以及

8、将所述结构化的内容数据及场景id、空间id和用户id组合在一起作为编辑数据发送给服务端。

9、第二方面,本发明实施例提供一种协同编辑过程中的数据处理方法,其应用于服务器,第一用户与多个第二用户协同编辑一个元宇宙场景,所述方法包括以下步骤:

10、在多个用户协同编辑一个元宇宙场景过程中,响应于接收到第一用户发送的编辑数据,从所述编辑数据中提取出内容数据,并确定所述元宇宙的场景id、内容数据的空间id及所述第一用户的用户id;

11、基于场景id、空间id及所述第一用户的用户id查询数据存储树结构以确定目标叶子节点;

12、按照时间顺序在所述目标叶子节点中记录对应当前编辑数据的编辑记录及基于前一编辑记录中的数据存储地址确定当前内容数据的存储地址;

13、将所述当前内容数据存储在所述存储地址对应的存储区域;

14、更新所述目标叶子节点、作为所述目标叶子节点的父节点的中间节点和根节点中存储的编辑记录数量;

15、基于所述内容数据实现第一用户对数字内容的编辑,并向多个第二用户同步第一用户编辑完成的数字内容;

16、其中,所述数据存储树结构包括一个根节点、一个或多个中间节点以及一个或多个叶子节点,所述根节点为所述一个或多个中间节点的父节点,一个根节点对应一个元宇宙场景;每个所述中间节点对应于所述元宇宙场景中的一个子空间;每个叶子节点用于存储一个用户编辑一个子空间内的数字内容时产生的编辑记录及内容数据,与所述子空间对应的中间节点所述叶子节点的父节点;每个节点具有对应的节点id。

17、第三方面,本发明实施例提供一种协同编辑过程中的数据处理装置,其应用于终端设备,包括对象数据获取模块、标识数据获取模块、编码模块和提交模块,所述对象数据获取模块经配置以响应于用户对元宇宙场景中的数字内容的编辑指定操作,锁定所述数字内容,并获取用户对所述数字内容进行一次或多次编辑时产生的对象数据,并按照编辑时间顺序将一个或多个对象数据顺次存储到提交队列中;所述标识数据获取模块经配置以获取用户编辑的元宇宙场景id和用户id,基于锁定的所述数字内容获取其在所述元宇宙场景中的空间id;所述编码模块与所述对象数据获取模块相连接,经配置以响应于满足提交条件,按照先进先出方式将所述提交队列中的一个或多个对象数据逐个序列化,并组成结构化的内容数据;所述提交模块与所述编码模块和所述标识数据获取模块相连接,经配置以将所述结构化的内容数据及场景id、空间id和用户id组合在一起作为编辑数据发送给服务端。

18、第四方面,本发明实施例提供一种协同编辑过程中的数据处理装置,其应用于服务器,第一用户与多个第二用户协同编辑生成一个元宇宙场景,所述装置包括数据提取模块、查询模块、记录模块、存储模块、编辑模块和同步模块,其中,所述数据提取模块经配置以在多个用户协同编辑一个元宇宙场景过程中,响应于接收到第一用户发送的编辑数据,从所述编辑数据中提取出内容数据,并确定所述元宇宙的场景id、内容数据的空间id及所述第一用户的用户id;所述查询模块经配置以基于所述场景id、空间id及所述第一用户的用户id查询数据存储树结构以确定目标叶子节点;所述记录模块经配置以按照时间顺序在所述目标叶子节点中记录对应当前编辑数据的编辑记录及基于前一编辑记录中的数据存储地址确定当前内容数据的存储地址,更新所述目标叶子节点及其父节点的中间节点和根节点中存储的编辑记录数量;所述存储模块经配置将所述当前内容数据存储在所述存储地址对应的存储区域;所述编辑模块,经配置基于所述内容数据实现第一用户对数字内容的编辑;所述同步模块经配置以并向多个第二用户同步第一用户编辑完成的数字内容;其中,所述数据存储树结构包括一个根节点、一个或多个中间节点以及一个或多个叶子节点,所述根节点为所述一个或多个中间节点的父节点,一个根节点对应一个元宇宙场景;每个所述中间节点对应于所述元宇宙场景中的一个子空间;每个叶子节点用于存储一个用户编辑一个子空间内的数字内容时产生的编辑记录及内容数据,与所述子空间对应的中间节点所述叶子节点的父节点;每个节点具有对应的节点id。

19、第五方面,本发明实施例提供一种电子设备,所述电子设备包括处理器以及存储有计算机程序指令的存储器;所述电子设备执行所述计算机程序指令时实现前述的应用于终端设备的协同编辑过程中的数据处理方法,或实现前述的应用于服务器的协同编辑过程中的数据处理方法。

20、第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实前述的应用于终端设备的协同编辑过程中的数据处理方法,或实现前述的应用于服务器的协同编辑过程中的数据处理方法。

21、第七方面,本发明实施例提供一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令被处理器执行时实现前述的应用于终端设备的协同编辑过程中的数据处理方法,或实现前述的应用于服务器的协同编辑过程中的数据处理方法。

22、本发明实现了基于ar、vr等多种类型的元宇宙场景的多人协同编辑,能够满足元宇宙场景中在任意空间位置进行编辑的需求。

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