Decentralized distributed real-time editing method, system, equipment and medium

By deploying decentralized draft services and editing subservices in each node of the video editing system, the problem that the existing system does not support multiple users to edit the same project at the same time is solved, efficient and flexible multi-node collaborative editing is achieved, and the consistency of the system is ensured.

CN120186423APending Publication Date: 2025-06-20SHANGHAI BILIBILI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510243055.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

The existing video editing system does not support multiple users to edit the same editing project at the same time, resulting in low editing efficiency and poor editing flexibility.

Method used

The decentralized distributed real-time editing method is adopted to realize instant synchronization and collaborative work of editing operations by deploying decentralized draft services and editing subservices in each node.

Benefits of technology

Multiple nodes can efficiently and conveniently edit the same editing project, greatly improving editing efficiency and editing flexibility, and ensuring distributed consistency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120186423A_ABST
    Figure CN120186423A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a decentralized distributed real-time editing method, system and device and a medium, and the method comprises the steps: deploying a decentralized draft service and at least one editing sub-service in each node; according to an editing operation executed by any node for the editing item, processing corresponding business data in the editing draft data of the editing item by using an editing sub-service to which the editing operation belongs to obtain an operation result; and synchronizing the operation result to other nodes by using a decentralized draft service in the node, so that other nodes apply the operation result to the edited item thereof. According to the invention, based on the decentralized editing draft and the distributed editing architecture, the independence between the editing sub-services is maintained, the operation result of the node can be synchronized to other nodes in time, the same editing item is collaboratively edited by multiple nodes, and the editing efficiency and the editing flexibility are greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present application relate to the field of Internet technologies, and in particular, to a decentralized distributed real-time editing method, system, device, and medium. Background Art

[0002] In the field of video editing, users often use videos, music, subtitles, stickers, transitions, filters, etc. to enrich video content and enhance the expressiveness of videos during the video editing process. Existing video editing systems usually adopt a centralized architecture, where all editing draft data and all processing capabilities are concentrated on the local device of the same device. However, this architecture of video editing system often does not support multiple users to edit the same editing project simultaneously, thus limiting the editing efficiency and flexibility. Summary of the Invention

[0003] In view of the above problems, the present application proposes a decentralized distributed real-time editing method, system, device, and medium, which are used to solve the following problems: existing video editing systems do not support multiple users to edit the same editing project simultaneously, resulting in low editing efficiency and poor editing flexibility.

[0004] According to one aspect of the embodiments of the present application, a decentralized distributed real-time editing method is provided, including:

[0005] Deploying a decentralized draft service and at least one editing sub-service in each node;

[0006] According to the editing operation performed by any node on the editing project, using the editing sub-service to which the editing operation belongs to process the corresponding business data in the editing draft data of the editing project to obtain an operation result;

[0007] Using the decentralized draft service in the node to synchronize the operation result to other nodes for other nodes to apply the operation result to their editing projects.

[0008] Further, deploying a decentralized draft service and at least one editing sub-service in each node further includes:

[0009] Splitting the original central editing draft service into multiple editing sub-services according to business types, and constructing a decentralized draft service;

[0010] According to the editing requirements of each node, deploying a decentralized draft service and at least one editing sub-service that meets the editing requirements in the node, where the decentralized draft service calls at least one editing sub-service through the service.

[0011] Further, before obtaining an operation result by processing corresponding service data in the clip draft data of a clip project using a clip sub-service to which a clip operation belongs according to any node, the method further includes:

[0012] For each node, store the service data corresponding to at least one clip sub-service deployed by the node in the clip draft data of the clip project into the node, or store the clip draft data of the clip project into the node.

[0013] Further, obtaining an operation result by processing corresponding service data in the clip draft data of a clip project using a clip sub-service to which a clip operation belongs according to any node further includes:

[0014] According to a clip operation performed on a clip project by any node, process the corresponding service data in the clip draft data of the clip project using the clip sub-service to which the clip operation belongs, and display the clip effect of the clip operation in the node;

[0015] Determine a service object corresponding to the clip operation, and generate an operation object corresponding to the clip operation as the operation result;

[0016] Wherein, the operation result includes an operation identifier of the clip operation and information of the service object.

[0017] Further, synchronizing the operation result to other nodes by using a decentralized draft service in a node further includes:

[0018] The node serializes the operation result into an operation string in a preset format;

[0019] Using the decentralized draft service in the node, based on a subscription and push mechanism, broadcast the operation string to the neighbor nodes of the node through a clip protocol, and then broadcast the operation string to the neighbor nodes of the neighbor nodes through the neighbor nodes;

[0020] Wherein, the clip protocol is set based on a conflict-free replicated data type.

[0021] Further, applying the operation result to its clip project by other nodes further includes:

[0022] Construct an operation result according to the received operation string;

[0023] Parse the operation result to obtain an operation identifier of the clip operation;

[0024] Judge whether the operation history contains an operation record corresponding to the operation identifier;

[0025] Otherwise, apply the operation result to the local editing project.

[0026] According to another aspect of the embodiments of the present application, a decentralized distributed real-time editing system is provided, including:

[0027] A deployment unit, adapted to deploy a decentralized draft service and at least one editing sub-service in each node;

[0028] A processing unit, adapted to process the corresponding service data in the editing draft data of the editing project by using the editing sub-service to which the editing operation belongs according to the editing operation performed by any node on the editing project, and obtain an operation result;

[0029] A synchronization unit, adapted to synchronize the operation result to other nodes by using the decentralized draft service in the node, so that other nodes can apply the operation result to their editing projects.

[0030] According to yet another aspect of the embodiments of the present application, a computing device is provided, including: a processor, a memory, a communication interface, and a communication bus. The processor, the memory, and the communication interface complete communication with each other through the communication bus;

[0031] The memory is used to store at least one executable instruction, and the executable instruction causes the processor to perform the operations corresponding to the above-mentioned decentralized distributed real-time editing method.

[0032] According to still another aspect of the embodiments of the present application, a computer storage medium is provided, and at least one executable instruction is stored in the storage medium, and the executable instruction causes the processor to perform the operations corresponding to the above-mentioned decentralized distributed real-time editing method.

[0033] According to still another aspect of the embodiments of the present application, a computer program product is provided, including at least one executable instruction, and the executable instruction causes the processor to perform the operations corresponding to the above-mentioned decentralized distributed real-time editing method.

[0034] According to the technical solution provided by the embodiments of the present application, based on the decentralized editing draft and the distributed editing architecture, a decentralized draft service and an editing sub-service are deployed in each node, maintaining the independence between the editing sub-services and effectively reducing the coupling; moreover, a real-time editing mechanism is introduced. By using distributed technology and real-time communication technology, when any node performs an editing operation, the operation result of this node can be immediately synchronized to other nodes participating in the same editing project, realizing the immediate synchronization of editing operations, enabling multiple nodes to efficiently and conveniently collaborate on editing the same editing project, and greatly improving the editing efficiency and editing flexibility.

[0035] The above description is only an overview of the technical solution of the embodiments of the present application. In order to better understand the technical means of the embodiments of the present application, it can be implemented according to the content of the specification. And in order to make the above and other purposes, features and advantages of the embodiments of the present application more obvious and understandable, the following specifically describes the specific implementation manners of the embodiments of the present application. Brief Description of the Drawings

[0036] By reading the following detailed description of the preferred embodiments, various other advantages and benefits will become clear to those of ordinary skill in the art. The drawings are only for the purpose of showing the preferred embodiments and are not considered to be a limitation of the embodiments of the present application. Moreover, throughout the drawings, the same reference numerals are used to represent the same components. In the drawings:

[0037] Figure 1 A flowchart showing the decentralized distributed real-time editing method according to an embodiment of the present application is shown;

[0038] Figure 2a A flowchart showing the decentralized distributed real-time editing method according to another embodiment of the present application is shown;

[0039] Figure 2b A schematic diagram showing the relationship between the decentralized draft service and multiple editing sub-services is shown;

[0040] Figure 2c A schematic diagram showing the interaction between nodes is shown;

[0041] Figure 3 A block diagram showing the structure of the decentralized distributed real-time editing system according to an embodiment of the present application is shown;

[0042] Figure 4 A schematic diagram showing the structure of a computing device according to an embodiment of the present application is shown. Detailed Description of the Embodiments

[0043] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the drawings. Although the exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided so that the present disclosure can be more thoroughly understood and the scope of the present disclosure can be fully conveyed to those skilled in the art.

[0044] First, the noun terms related to one or more embodiments of the present application are explained.

[0045] Clip draft data: refers to a collection of temporary data generated during video editing, including but not limited to video clips, subtitle text, sticker elements, filter effects, transition animations, and background music, etc. Users can modify and edit the clip draft data according to their needs to further adjust and improve the video effect.

[0046] Decentralization: In this application, it means that each business module or node in the video editing solution does not rely on a central service or a single control point, but communicates and collaborates through protocols to achieve data sharing and update. The communication here not only supports local communication but also remote communication control.

[0047] Distributed: In this application, it refers to geographical distribution, supporting multiple devices to collaborate on editing the same clip draft data and synchronizing the clip data to other services that listen for clip events remotely through protocols.

[0048] Real-time editing: It means that users can instantaneously see the editing effect during video editing, and the editing operations can be instantaneously synchronized to the nodes of other participating users without waiting for processing or upload to complete.

[0049] Clip protocol: In this application, it refers to the rules or standards used to define how each business module or node communicates, shares data, and collaborates.

[0050] CRDT (Conflict-free Replicated Data Type): It is a data structure used to achieve data consistency in a distributed system. It allows concurrent updates in a distributed system without conflicts; it ensures that the operations of multiple users can be merged without conflicts through mathematical properties (such as commutativity, associativity, and idempotency), and finally reaches a consistent state.

[0051] Subscription push: It is a message passing mode in which the receivers of messages (subscribers) actively receive push messages from the publishers of messages by subscribing to specific topics or channels. This mode is widely used in real-time notifications, event-driven architectures, and distributed systems.

[0052] Figure 1 The flowchart of a decentralized distributed real-time editing method according to an embodiment of the present application is shown, as Figure 1 shown, the method includes the following steps:

[0053] Step S101, deploy a decentralized draft service and at least one clip sub-service in each node.

[0054] In the embodiments of the present application, based on decentralized clip drafts and a distributed clip architecture, multiple nodes are enabled to collaborate on clipping the same clip project, greatly improving the clip efficiency and clip flexibility.

[0055] Among them, the original clip draft central service of the video clip system with a centralized architecture in the prior art is split into multiple clip sub-services according to business types. The multiple clip sub-services are independent of each other, achieving decoupling. The business types may include basic clipping, sticker clipping, subtitles, music, etc. Then, the multiple clip sub-services obtained by splitting may include basic clipping services, sticker clipping services, subtitle services, music services, etc., and a decentralized draft service is constructed. The decentralized draft service is used to call at least one clip sub-service through the service to achieve decentralized clip drafts. In a specific application scenario, the decentralized draft service and at least one clip sub-service can be customized and deployed in each node according to the clip requirements of each node. Among them, a node refers to a device with processing capabilities and storage resources, specifically a device installed with local clip software for users to perform video clipping.

[0056] Step S102: According to the clip operation performed by any node on the clip project, use the clip sub-service to which the clip operation belongs to process the corresponding business data in the clip draft data of the clip project to obtain an operation result.

[0057] Each node can participate in the same clip project. Each node can work independently and interact with other nodes. Among them, each node can perform a clip operation on the clip project, and the clip operation can be instantaneously synchronized to other nodes participating in the clip project without waiting for processing or uploading to complete.

[0058] When any node performs a clip operation on the clip project, in this node, use the clip sub-service to which the clip operation belongs to process the corresponding business data in the clip draft data of the clip project to obtain an operation result. For example, when a user adds some subtitle text to the clip project, that is, a subtitle insertion operation is performed through the node corresponding to the user, and the subtitle insertion operation belongs to the processing capabilities provided by the subtitle service. Then, use the subtitle service deployed in this node to process the corresponding subtitle data in the clip draft data of the clip project to add subtitle text, thereby obtaining an operation result, and display the clip effect of the clip operation in this node, so that the user can instantaneously view the clip effect during the clipping process.

[0059] Step S103: Use the decentralized draft service in the node to synchronize the operation result to other nodes for other nodes to apply the operation result to their clip projects.

[0060] In the embodiments of the present application, a real-time editing mechanism is introduced. By using distributed technology and real-time communication technology, it can achieve instant synchronization of editing operations and effect display. When a certain node performs an editing operation, it can immediately use the decentralized draft service in that node to synchronize the operation results of that node to other nodes participating in the same editing project in a broadcast manner or the like, without waiting for processing or uploading to complete, thus realizing real-time editing and collaborative work.

[0061] According to the decentralized distributed real-time editing method provided by the embodiments of the present application, based on decentralized editing drafts and a distributed editing architecture, a decentralized draft service and an editing sub-service are deployed in each node, maintaining the independence between the editing sub-services and effectively reducing the coupling; moreover, a real-time editing mechanism is introduced. By using distributed technology and real-time communication technology, when any node performs an editing operation, it can immediately synchronize the operation results of that node to other nodes participating in the same editing project, achieving instant synchronization of editing operations, enabling multiple nodes to efficiently and conveniently collaborate on editing the same editing project, and greatly improving the editing efficiency and editing flexibility.

[0062] Figure 2a The flowchart of the decentralized distributed real-time editing method according to another embodiment of the present application is shown as Figure 2a shown, and the method includes the following steps:

[0063] Step S201, split the original editing draft central service into multiple editing sub-services according to the business type, and construct a decentralized draft service.

[0064] In the embodiments of the present application, according to the business type, the original editing draft central service of the video editing system with a centralized architecture in the prior art is split into multiple independent editing sub-services, where the business type may include types such as basic editing, sticker editing, subtitles, music, transitions, filters, etc.

[0065] In a specific application scenario, when splitting the original editing draft central service according to the business type, the multiple editing sub-services obtained may be as Figure 2b shown. The multiple editing sub-services include a basic editing service, a sticker editing service, a subtitle service, a music service, a transition service, a filter service, etc. Each editing sub-service contains a corresponding business module, and the business module is responsible for processing the business data of the corresponding business type in the editing draft data. For example, the business module in the subtitle service is the subtitle module, and the subtitle module is used to process the subtitle data in the editing draft data; the business module in the sticker service is the sticker module, and the sticker module is used to process the sticker data in the editing draft data; the business module in the basic editing service is the basic editing module, and the basic editing module is used to process the video data in the editing draft data.

[0066] Moreover, a decentralized draft service is constructed, and a set of clip protocols for inter-node communication, data sharing, and collaborative work is set based on Conflict-Free Replicated Data Types (CRDT). The clip protocols may specifically include the protocols of each business module itself, the interface protocols for push subscriptions, the protocols for data addition and deletion, etc. Through the clip protocols, each node can safely access and modify the data of other nodes, realizing real-time clipping and collaborative work.

[0067] The service identifiers (such as service IDs) of each clip sub-service are recorded in the decentralized draft service. The service IDs correspond one-to-one with the clip sub-services. According to the service ID, the corresponding clip sub-service can be mapped or determined. Then, the decentralized draft service can call the corresponding clip sub-service through the service according to the clip protocol and the service ID. Each node can also share and update the business data corresponding to the business module through the ID, realizing a decentralized clip draft, as Figure 2b shown.

[0068] Step S202: According to the clip requirements of each node, deploy a decentralized draft service and at least one clip sub-service that meets the clip requirements in the node.

[0069] Considering that the clip requirements of each node participating in the same clip project are different, according to the clip requirements of each node, only a decentralized draft service and at least one clip sub-service that meets the clip requirements can be deployed in the node, thus realizing the customized deployment of the clip sub-service and helping to avoid resource waste of the node.

[0070] For example, if the clip requirements of node 1 are basic clipping and sticker clipping, it means that node 1 is responsible for handling basic clipping and sticker clipping in the clip project. Then, a decentralized draft service, a basic clipping service, and a sticker clipping service are deployed in node 1. For other clip sub-services, there is no need to deploy them in node 1. The decentralized draft service in node 1 calls the basic clipping service and the sticker clipping service in node 1 through the service, enabling the user on the node 1 side to perform basic clipping and sticker clipping; if the clip requirements of node 2 are subtitle clipping, it means that node 2 is responsible for handling subtitles in the clip project. Then, a decentralized draft service and a subtitle service are deployed in node 2. For other clip sub-services, there is no need to deploy them in node 2. The decentralized draft service in node 2 calls the subtitle service in node 2 through the service, enabling the user on the node 2 side to perform subtitle processing.

[0071] Step S203: For each node, store the business data corresponding to at least one clip sub-service deployed in the node in the clip draft data of the clip project in the node, or store the clip draft data of the clip project in the node.

[0072] In order to enable each node participating in the editing project to perform editing operations on the editing project, for each node, it is necessary to store the business data corresponding to at least one editing sub-service deployed by the node in the editing draft data of the editing project into the node, or store the editing draft data of the editing project into the node.

[0073] In a specific application scenario, if the data volume of the editing draft data of the editing project is large, in order to reduce the unnecessary occupation of the node storage resources, only the business data corresponding to the editing sub-services deployed by the node in the editing draft data can be stored into the node. For example, if node 1 deploys a basic editing service and a sticker editing service, only the video data and sticker data in the editing draft data can be stored into node 1, realizing the decentralized editing draft data. If the data volume of the editing draft data of the editing project is small or each user participating in the editing project wants to view the editing effects of each business part of the editing project, the entire editing draft data of the editing project can be stored into the node.

[0074] Step S204, according to the editing operation performed by any node on the editing project, use the editing sub-service to which the editing operation belongs to process the corresponding business data in the editing draft data of the editing project to obtain an operation result.

[0075] The embodiment of the present application adopts a distributed editing architecture, which does not rely on a central server or a single control point, but realizes communication and cooperation between nodes through an editing protocol. Each node can work independently and interact with other nodes to realize multi-node collaborative editing of the same editing project.

[0076] When any node performs an editing operation on the editing project, use the editing sub-service to which the editing operation belongs to process the corresponding business data in the editing draft data of the editing project, and display the editing effect of the editing operation in the node, so that the user on the node side can view the editing effect immediately during the editing process; and determine the business object corresponding to the editing operation, and generate an operation object corresponding to the editing operation as the operation result. Among them, the operation result contains the operation identifier (such as operation id) of the editing operation and the information of the business object. The operation identifier is the unique identifier of the editing operation and can be used to distinguish different editing operations.

[0077] Taking the business object as the caption object (CaptionInfo) as an example, the protocol provided externally can be:

[0078] data class CaptionInfo(

[0079] val id:String, / / unique identifier

[0080] var text: String, / / Subtitle text

[0081] var inPoint: Double, / / Start time (seconds)

[0082] var outPoint: Double, / / End time (seconds)

[0083] val tmpPath: String / / Associated file path

[0084] val color: Int / / Text color )

[0086] sealed class Operation {

[0087] data class Insert(val position: Int, val subtitle: CaptionInfo) : Operation()

[0088] data class Delete(val id: String) : Operation()

[0089] data class Update(val id: String, val subtitle: CaptionInfo) : Operation()

[0090] }

[0091] In the above protocol, a subtitle object (i.e., CaptionInfo) for managing subtitle information is defined, and an operation object (i.e., Operation) is encapsulated. The operation object is used to represent operations on subtitles, including insertion (Insert), deletion (Delete), and update (Update). Among them, the subtitle object CaptionInfo is a data class that contains the following properties: subtitle object id, subtitle text (text), start time (inPoint), end time (outPoint), associated file path (tmpPath), and text color (color).

[0092] For example, when a user modifies the color of the text, an operation object Operation corresponding to this clip operation will be generated. The operation object Operation contains information about the text, operation id, etc. This operation object is used as the operation result for synchronization between nodes. Another example is that when a user adds a local video, the local video of the user can be uploaded first to obtain a video address. The video address is placed into its corresponding business object, that is, a video object (such as VideoInfo), and an operation object Operation corresponding to this clip operation will be generated, and then it is synchronized to other nodes. After receiving it, other nodes will download and use it according to the video address in it. Similarly, the processing methods for adding local materials such as local music and local stickers are similar and will not be elaborated here.

[0093] Step S205: Use the decentralized draft service in the node to synchronize the operation result to other nodes for other nodes to apply the operation result to their clip projects.

[0094] Figure 2c Shows the interaction schematic diagram between nodes. For example, Figure 2c As shown, the local clip software is installed in each node. User 1 can perform clip operations on the clip project through the local clip software in its corresponding node, and User 2 can also perform clip operations on the clip project through the local clip software in its corresponding node. When any user performs a clip operation, the decentralized draft service in the node corresponding to this user is used to establish a connection for the clip service with other nodes and synchronize the operation result. Specifically, the connection for the clip service between nodes can be achieved through a decentralized clip protocol and real-time clip service subscription push. Among them, the clip protocol is set based on CRDT. The core principle of CRDT is to use the commutative law, associative law, and idempotency in mathematics to ensure that operations on data in a distributed environment can be executed in any order, and the final result remains the same.

[0095] Based on the distributed design of drafts and the subscription push mechanism, when a change occurs in a certain business module of a node, it is only necessary to trigger this business module to push an update message to other remote collaborators who are listening for changes in the business data corresponding to this business module. Here, the remote collaborator refers to other nodes that subscribe to listen for changes in this business data and receive push messages when changes occur.

[0096] Among them, the node can serialize the operation result into an operation string in a preset format. Using the decentralized draft service in the node, based on the subscription push mechanism, the operation string is broadcast to the neighbor nodes of this node through the clip protocol, and then through the neighbor nodes, the operation string is broadcast to the neighbor nodes of the neighbor nodes, and so on, until it can be broadcast to all other nodes of this node.

[0097] Specifically, the preset format can be the JSON format. The JSON format is a common data format that supports multiple programming languages and platforms. Serializing the operation result into an operation string in the JSON format can facilitate data transfer between nodes in different languages, has high cross-platform compatibility, and transmitting the operation string to other nodes via the broadcast method can achieve synchronous operations in a distributed environment, ensuring that all nodes execute the same operation and ultimately reaching a consistent state, thereby ensuring distributed consistency.

[0098] In the embodiment of the present application, since it is based on a decentralized clip draft and a distributed clip architecture, this node may not know which other nodes are participating in the same clip project with it. Then this node can broadcast the JSON-serialized operation object Operation to the known neighbor nodes, where the JSON-serialized operation object Operation is specifically an operation string in the JSON format. After receiving this broadcast operation string in the JSON format, the neighbor nodes of this node construct the corresponding operation object Operation according to the received operation string and then can apply it to their own local clip projects. At the same time, this neighbor node will synchronously broadcast it to the neighbor nodes it knows. Eventually, all other nodes of this node can receive this operation result.

[0099] Specifically, after an other node receives the broadcast operation string, this other node constructs an operation result according to the received operation string, parses the operation result to obtain the operation identifier of the clip operation, and then by comparing this operation identifier with the operation history record stored in itself, determines whether the operation history record contains the operation record corresponding to the operation identifier. If not, it means that this other node has not applied this operation result, and then this operation result is applied to the local clip project of this other node. If so, it means that this other node has already applied this operation result and there is no need to apply it again, so this operation result can be discarded. According to the principle of CRDT, the priorities will be sorted according to the timing of the broadcast operations, and the ones earlier in time will be applied first to avoid conflicts.

[0100] According to the decentralized distributed real-time editing method provided by the embodiments of the present application, based on the decentralized editing drafts, distributed editing architectures, and decentralized editing protocols, a decentralized draft service and editing sub-services are deployed in each node to achieve multi-node collaborative editing, and the independence between the editing sub-services is maintained, effectively reducing the coupling, improving the scalability and reliability, and greatly enhancing the editing efficiency and flexibility; moreover, real-time editing effects are achieved. When any node performs an editing operation, the user on the node side can instantaneously view the editing effects during the editing process, and the operation results of the node are instantaneously broadcast to other nodes through the editing protocol to keep in sync with other nodes, realizing the instant synchronization of editing operations; in addition, the editing protocol is set based on conflict-free replicated data types, effectively ensuring distributed consistency, avoiding conflicts, and facilitating better collaborative work among multi-nodes.

[0101] Figure 3 FIG. shows a structural block diagram of a decentralized distributed real-time editing system according to an embodiment of the present application, as Figure 3 shown, the system includes: a deployment unit 310, a processing unit 320, and a synchronization unit 330.

[0102] The deployment unit 310 is adapted to: deploy a decentralized draft service and at least one editing sub-service in each node.

[0103] The processing unit 320 is adapted to: according to the editing operation performed by any node on the editing project, use the editing sub-service to which the editing operation belongs to process the corresponding service data in the editing draft data of the editing project to obtain an operation result.

[0104] The synchronization unit 330 is adapted to: use the decentralized draft service in the node to synchronize the operation result to other nodes for other nodes to apply the operation result to their editing projects.

[0105] Optionally, the deployment unit 310 is further adapted to: split the original central editing draft service into multiple editing sub-services according to service types, and construct a decentralized draft service; according to the editing requirements of each node, deploy a decentralized draft service and at least one editing sub-service that meets the editing requirements in the node, where the decentralized draft service invokes at least one editing sub-service through the service.

[0106] Optionally, the deployment unit 310 is further adapted to: for each node, store the service data corresponding to at least one editing sub-service deployed in the node in the editing draft data of the editing project in the node, or store the editing draft data of the editing project in the node.

[0107] Optionally, the processing unit 320 is further adapted to: process the corresponding service data in the clip draft data of the clip item by using the clip sub-service to which the clip operation belongs according to the clip operation performed by any node on the clip item, and display the clip effect of the clip operation in the node; determine the service object corresponding to the clip operation, and generate an operation object corresponding to the clip operation as the operation result; wherein, the operation result includes the operation identifier of the clip operation and the information of the service object.

[0108] Optionally, the synchronization unit 330 is further adapted to: serialize the operation result into an operation string in a preset format by the node; use the decentralized draft service in the node, based on the subscription push mechanism, broadcast the operation string to the neighbor nodes of the node through the clip protocol, and then broadcast the operation string to the neighbor nodes of the neighbor nodes through the neighbor nodes; wherein, the clip protocol is set based on the conflict-free replicated data type.

[0109] Optionally, the synchronization unit 330 is further adapted to: construct an operation result according to the received operation string; parse the operation result to obtain the operation identifier of the clip operation; determine whether the operation history contains an operation record corresponding to the operation identifier; if not, apply the operation result to the local clip item.

[0110] The descriptions of the above units refer to the corresponding descriptions in the method embodiments and will not be repeated here.

[0111] According to the decentralized distributed real-time clip system provided by the embodiments of the present application, based on the decentralized clip draft, the distributed clip architecture, and the decentralized clip protocol, the decentralized draft service and the clip sub-service are deployed in each node to realize multi-node collaborative clip, and maintain the independence between the clip sub-services, effectively reducing the coupling, improving the scalability and reliability, and greatly improving the clip efficiency and clip flexibility; moreover, the real-time clip effect is realized. When any node performs a clip operation, the user on the node side can instantaneously view the clip effect during the clip process, and broadcast the operation result of the node to other nodes through the clip protocol instantaneously to keep synchronized with other nodes, realizing the instant synchronization of the clip operation; in addition, the clip protocol is set based on the conflict-free replicated data type, effectively ensuring the distributed consistency, avoiding conflicts, and helping multi-nodes to work together better.

[0112] The embodiments of the present application provide a non-volatile computer storage medium, and the computer storage medium stores at least one executable instruction or computer program, and the executable instruction or computer program can enable the processor to execute the operations corresponding to the decentralized distributed real-time clip method in any of the above method embodiments.

[0113] An embodiment of the present application provides a computer program product, which includes at least one executable instruction or computer program. The executable instruction or computer program enables a processor to execute operations corresponding to the decentralized distributed real-time editing method in any of the above method embodiments.

[0114] Figure 4 FIG. shows a schematic structural diagram of a computing device according to an embodiment of the present application. The specific embodiments of the present application do not limit the specific implementation of the computing device.

[0115] As Figure 4 shown, the computing device may include: a processor 402, a communication interface 404, a memory 406, and a communication bus 408.

[0116] Among them: the processor 402, the communication interface 404, and the memory 406 communicate with each other through the communication bus 408. The communication interface 404 is used to communicate with network elements of other devices such as clients or other servers. The processor 402 is used to execute the program 410, and specifically can execute relevant steps in the above embodiments of the decentralized distributed real-time editing method for the computing device.

[0117] Specifically, the program 410 may include program code, and the program code includes computer operation instructions.

[0118] The processor 402 may be a central processing unit CPU, or a specific integrated circuit ASIC (Application Specific Integrated Circuit), or one or more integrated circuits configured to implement the embodiments of the present application. One or more processors included in the computing device may be of the same type of processor, such as one or more CPUs; or may be of different types of processors, such as one or more CPUs and one or more ASICs.

[0119] The memory 406 is used to store the program 410. The memory 406 may include a high-speed RAM memory, and may also include a non-volatile memory, such as at least one disk memory.

[0120] The program 410 can specifically be used to cause the processor 402 to execute the decentralized distributed real-time editing method in any of the above method embodiments. For the specific implementation of each step in the program 410, reference can be made to the corresponding steps and descriptions in the corresponding units in the above decentralized distributed real-time editing embodiments, which will not be elaborated here. Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the above-described devices and modules can refer to the corresponding process descriptions in the foregoing method embodiments, which will not be repeated here.

[0121] The algorithms and displays provided herein are not inherently related to any particular computer, virtual system, or other device. Various general-purpose systems can also be used in conjunction with the teachings provided herein. The structure required to construct such systems will be apparent from the above description. In addition, the embodiments of the present application are not directed to any specific programming language. It should be understood that the content of the embodiments of the present application described herein can be implemented using various programming languages, and the descriptions made above regarding specific languages are for the purpose of disclosing the best mode of the embodiments of the present application.

[0122] In the specification provided herein, a large number of specific details are set forth. However, it can be understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and technologies have not been shown in detail so as not to obscure the understanding of this specification.

[0123] Similarly, it should be understood that in order to streamline this disclosure and assist in understanding one or more of the various inventive aspects, in the above description of the exemplary embodiments of the present application, the various features of the embodiments of the present application are sometimes grouped together into a single embodiment, figure, or description thereof. However, the disclosed method should not be construed as reflecting an intention that the claimed embodiments of the present application require more features than are expressly recited in each claim. Rather, as reflected in the following claims, the inventive aspects lie in less than all the features of the single foregoing embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of the present application.

[0124] Those skilled in the art can understand that the modules in the devices in the embodiments can be adaptively changed and set in one or more devices different from the embodiments. The modules or units or components in the embodiments can be combined into one module or unit or component, and in addition, they can be divided into multiple sub-modules or sub-units or sub-components. Except that at least some of such features and / or processes or units are mutually exclusive, any combination can be used to combine all the features disclosed in this specification (including the accompanying claims, abstract and drawings), and all the processes or units of any method or device so disclosed. Unless otherwise clearly stated, each feature disclosed in this specification (including the accompanying claims, abstract and drawings) can be replaced by an alternative feature that provides the same, equivalent or similar purpose.

[0125] In addition, those skilled in the art can understand that although some of the embodiments described herein include certain features included in other embodiments rather than other features, the combination of the features of different embodiments means that it is within the scope of the embodiments of the present application and forms different embodiments. For example, in the following claims, any one of the claimed embodiments can be used in any combination.

[0126] Each component embodiment of the embodiments of the present application can be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art should understand that a microprocessor or a digital signal processor (DSP) can be used in practice to implement some or all of the functions of some or all of the components according to the embodiments of the present application. The embodiments of the present application can also be implemented as a device or apparatus program (for example, a computer program and a computer program product) for executing part or all of the methods described herein. Such a program implementing the embodiments of the present application can be stored on a computer-readable medium, or can be in the form of one or more signals. Such signals can be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.

[0127] It should be noted that the above embodiments illustrate the embodiments of the present application rather than limit the embodiments of the present application, and those skilled in the art can design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in the claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The embodiments of the present application can be implemented by means of hardware including several different elements and by means of a suitably programmed computer. In the unit claims listing several devices, several of these devices may be embodied by the same item of hardware. The use of the words first, second, and third, etc. does not denote any order. These words may be interpreted as names.

Claims

1. A decentralized distributed real-time editing method, comprising: Deploy a decentralized draft service and at least one clipping sub-service in each node; According to the editing operation performed by any node on the editing project, the corresponding business data in the editing draft data of the editing project is processed by using the editing sub-service to which the editing operation belongs to obtain the operation result; The decentralized draft service in the node is used to synchronize the operation result to other nodes so that other nodes can apply the operation result to their editing projects.

2. The method according to claim 1, wherein deploying a decentralized draft service and at least one clipping sub-service in each node further comprises: According to the business type, the original editing draft central service is split into multiple editing sub-services, and the decentralized draft service is constructed; According to the editing requirements of each node, the decentralized draft service and at least one editing sub-service that meets the editing requirements are deployed in the node, wherein the decentralized draft service calls at least one editing sub-service through a service.

3. The method according to claim 1, before the editing operation performed on the editing item by any node, using the editing sub-service to which the editing operation belongs to process the corresponding business data in the editing draft data of the editing item to obtain the operation result, the method further comprises: For each node, the business data corresponding to at least one clip sub-service deployed by the node in the clip draft data of the clip project is stored in the node, or the clip draft data of the clip project is stored in the node.

4. The method according to any one of claims 1 to 3, wherein the step of processing the corresponding business data in the editing draft data of the editing project using the editing sub-service to which the editing operation belongs according to the editing operation performed on the editing project by any node to obtain the operation result further comprises: According to the editing operation performed by any node on the editing project, the corresponding business data in the editing draft data of the editing project is processed by using the editing sub-service to which the editing operation belongs, and the editing effect of the editing operation is displayed in the node; Determine a business object corresponding to the clipping operation, and generate an operation object corresponding to the clipping operation as the operation result; The operation result includes the operation identifier of the clipping operation and the information of the business object.

5. According to the method according to any one of claims 1 to 4, the step of synchronizing the operation result to other nodes by using the decentralized draft service in the node further comprises: The node serializes the operation result into an operation string in a preset format; Using the decentralized draft service in the node, based on a subscription push mechanism, broadcasting the operation string to neighboring nodes of the node through a clipping protocol, and then broadcasting the operation string to neighboring nodes of the neighboring nodes through the neighboring nodes; The editing protocol is set based on a conflict-free replication data type.

6. The method according to claim 5, wherein the other node applies the operation result to its clipping project further comprises: Constructing the operation result according to the received operation character string; Parsing the operation result to obtain an operation identifier of the clipping operation; Determine whether the operation history records contain the operation record corresponding to the operation identifier; If not, the operation result is applied to the local editing project.

7. A decentralized distributed real-time editing system, comprising: A deployment unit, adapted to deploy a decentralized draft service and at least one clipping sub-service in each node; A processing unit, adapted to process corresponding business data in the editing draft data of the editing project using the editing sub-service to which the editing operation belongs according to the editing operation performed by any node on the editing project, and obtain an operation result; A synchronization unit is adapted to utilize the decentralized draft service in the node to synchronize the operation result to other nodes, so that other nodes can apply the operation result to their editing projects.

8. A computing device comprising: A processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface communicate with each other via the communication bus; The memory is used to store at least one executable instruction, and the executable instruction enables the processor to perform operations corresponding to the decentralized distributed real-time editing method as described in any one of claims 1-6.

9. A computer storage medium, wherein at least one executable instruction is stored in the storage medium, and the executable instruction enables a processor to perform operations corresponding to the decentralized distributed real-time editing method as described in any one of claims 1-6.

10. A computer program product, comprising at least one executable instruction, wherein the executable instruction enables a processor to perform operations corresponding to the decentralized distributed real-time editing method as described in any one of claims 1-6.