一种基于多级别锁的多人协同编辑方法及系统技术方案

技术编号:37813962 阅读:11 留言:0更新日期:2023-06-09 09:44
本发明专利技术公开一种基于多级别锁的多人协同编辑方法及系统,包括:接收当前操作者对协同编辑区域的编辑指令,同时触发对协同编辑区域的占用,以使得当前操作者对协同编辑区域进行编辑;接收非当前操作者对有占用协同编辑区域的编辑指令,判断有占用协同编辑区域是否已加锁;若未加锁,则触发对有占用协同编辑区域的强制占用;若有加锁,则反馈协同编辑区域已被加锁并占用,对非当前操作者拒绝编辑;接收当前操作者的解锁和/或解占用指令,以使得下一次操作者对协同编辑区域进行编辑。通过多级别锁实现多人协同编辑,减轻服务器压力,防止产生错误的项目资源数据,同时兼顾开发过程的管理需求和开发体验,避免锁的排他性降低开发的灵活度。灵活度。灵活度。

【技术实现步骤摘要】
一种基于多级别锁的多人协同编辑方法及系统


[0001]本专利技术涉及多人协同编辑
,特别是涉及一种基于多级别锁的多人协同编辑方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]针对传统的多人协同进行在线文档编辑和原型设计场景,目前主要采用集中式的实时算法Operational Transformation(OT)以及分布式算法Conflict

free Replicated Data Type(CRDT)。其中,OT算法依赖于与服务器长期保持连接、对服务器压力较大;而CRDT算法虽然在离散数学上表现良好、能够在不要求实时同步地前提下仅通过算法就能达成共识,但它并不能保证复杂数据的合并结果完全符合业务的预期,即只能保证最终一致性。
[0004]低代码开发平台(LCDP)是通过可视化编辑方式,并编写少量代码就可以快速生成应用程序的开发平台。低代码开发平台的可视化开发属于开发业务功能,具有较高的业务复杂度,和多人在线文档编辑的业务场景有很大差异。低代码开发平台设计的业务存在众多不同类型的独立资源,并不需要像在线文档编辑一样需要应对多人同时编写同一文档并实时修改回显的需求,只需要防止他人随意对正在开发的功能进行修改。对实时性要求不高,此外如果实时同步对服务器压力较大,因此OT不能满足需求。同时,可视化的业务开发不能容忍因为多人协同,产生不正确的资源数据,因此CRDT只保证最终一致性并不满足需求。
[0005]低代码平台多人协同编辑场景下,编辑的文件是复杂的多层树状结构资源,难以进行更细粒度的拆分,因此OT/CRDT等需要拆分细粒度操作的做法都不合适。
[0006]多种资源之间存在显式或隐式的网状引用关系,多人同时编辑时大量操作需要同时对引用者资源和被引用资源两者进行修改;因此单纯使用具有排他性的大粒度加锁方案,则会导致锁占用引起的复杂操作失败率上升,开发灵活性低、体验差;而如果不使用具有排他性质的锁,只使用非独占的锁,则不利于分模块开发的管理需求,容易产生误操作。

技术实现思路

[0007]为了解决上述问题,本专利技术提出了一种基于多级别锁的多人协同编辑方法及系统,通过“加锁

占用”的多级别锁实现多人协同编辑,减轻服务器压力,防止产生错误的项目资源数据,同时兼顾开发过程的管理需求和开发体验,避免锁的排他性降低开发的灵活度。
[0008]为了实现上述目的,本专利技术采用如下技术方案:
[0009]第一方面,本专利技术提供一种基于多级别锁的多人协同编辑方法,包括:
[0010]接收当前操作者对协同编辑区域的编辑指令,同时触发对协同编辑区域的占用,以使得当前操作者对协同编辑区域进行编辑;
[0011]接收非当前操作者对有占用协同编辑区域的编辑指令,判断有占用协同编辑区域是否已加锁;若未加锁,则触发对有占用协同编辑区域的强制占用;若有加锁,则反馈协同编辑区域已被加锁并占用,对非当前操作者拒绝编辑;
[0012]接收当前操作者的解锁和/或解占用指令,以使得下一次操作者对协同编辑区域进行编辑。
[0013]作为可选择的实施方式,还包括:接收当前操作者的手动加锁指令,以对协同编辑区域进行加锁。
[0014]作为可选择的实施方式,所述加锁后,非当前操作者无法强制占用或强制加锁。
[0015]作为可选择的实施方式,所述加锁的优先级高于占用的优先级。
[0016]作为可选择的实施方式,所述非当前操作者对有占用协同编辑区域进行强制占用,并编辑修改后,反馈至当前操作者,以使当前操作者决定是否保存自己编辑修改的内容。
[0017]作为可选择的实施方式,若决定强制保存,则采用乐观锁的修订号机制进行保存。
[0018]作为可选择的实施方式,所述乐观锁的修订号机制,不限制编辑修改,为协同编辑区域设置修订号,以限制写入冲突内容。
[0019]第二方面,本专利技术提供一种基于多级别锁的多人协同编辑系统,包括:
[0020]占用模块,被配置为接收当前操作者对协同编辑区域的编辑指令,同时触发对协同编辑区域的占用,以使得当前操作者对协同编辑区域进行编辑;
[0021]协同模块,被配置为接收非当前操作者对有占用协同编辑区域的编辑指令,判断有占用协同编辑区域是否已加锁;若未加锁,则触发对有占用协同编辑区域的强制占用;若有加锁,则反馈协同编辑区域已被加锁并占用,对非当前操作者拒绝编辑;
[0022]解除模块,被配置为接收当前操作者的解锁和/或解占用指令,以使得下一次操作者对协同编辑区域进行编辑。
[0023]第三方面,本专利技术提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
[0024]第四方面,本专利技术提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
[0025]与现有技术相比,本专利技术的有益效果为:
[0026]本专利技术提出一种基于多级别锁的多人协同编辑方法及系统,在低代码开发平台可视化编辑的特定场景下,通过“加锁

占用”的多级别锁实现多人协同编辑,减轻服务器压力,防止产生错误的项目资源数据,同时兼顾开发过程的管理需求和开发体验,避免锁的排他性降低开发的灵活度。
[0027]本专利技术提出一种基于多级别锁的多人协同编辑方法及系统,实现了在低代码开发平台多人同时可视化开发同一项目的场景下,控制多人编辑的资源占用状态,避免了资源不一致或产生错误的数据,避免了CRDT只保证最终一致性而不保证正确性的问题。
[0028]本专利技术提出一种基于多级别锁的多人协同编辑方法及系统,避免了传统OT算法依赖于服务器实时同步,对低代码开发,对服务器产生较大压力的问题;此外,相比于传统的加锁方案,使用两级锁能够即兼顾开发过程的管理需求,也避免锁的排他性降低开发过程
的使用体验。
[0029]本专利技术附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
附图说明
[0030]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0031]图1(a)

图1(b)为本专利技术实施例1提供的“占用”机制流程图;
[0032]图2为本专利技术实施例1提供的“加锁”机制流程图;
[0033]图3为本专利技术实施例1提供的“加锁

占用”机制整体状态流程图。
具体实施方式
[0034]下面结合附图与实施例对本专利技术做进一步说明。
[0035]应该指出,以下详细说明都是示例性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多级别锁的多人协同编辑方法,其特征在于,包括:接收当前操作者对协同编辑区域的编辑指令,同时触发对协同编辑区域的占用,以使得当前操作者对协同编辑区域进行编辑;接收非当前操作者对有占用协同编辑区域的编辑指令,判断有占用协同编辑区域是否已加锁;若未加锁,则触发对有占用协同编辑区域的强制占用;若有加锁,则反馈协同编辑区域已被加锁并占用,对非当前操作者拒绝编辑;接收当前操作者的解锁和/或解占用指令,以使得下一次操作者对协同编辑区域进行编辑。2.如权利要求1所述的一种基于多级别锁的多人协同编辑方法,其特征在于,还包括:接收当前操作者的手动加锁指令,以对协同编辑区域进行加锁。3.如权利要求1所述的一种基于多级别锁的多人协同编辑方法,其特征在于,所述加锁后,非当前操作者无法强制占用或强制加锁。4.如权利要求1所述的一种基于多级别锁的多人协同编辑方法,其特征在于,所述加锁的优先级高于占用的优先级。5.如权利要求1所述的一种基于多级别锁的多人协同编辑方法,其特征在于,所述非当前操作者对有占用协同编辑区域进行强制占用,并编辑修改后,反馈至当前操作者,以使当前操作者决定是否保存自己编辑修改的内容。6.如权利要求5所述的一种基于多级别锁的多人协同编辑方法,其特征在于...

【专利技术属性】
技术研发人员:胡士猛邵明腾谢玉鑫徐桂杰
申请(专利权)人:金现代信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1