数据协同处理的方法、装置和系统

文档序号:1242912 发布日期:2020-08-18 浏览:9次 >En<

阅读说明:本技术 数据协同处理的方法、装置和系统 (Data cooperative processing method, device and system ) 是由 翁泽展 于 2020-04-21 设计创作,主要内容包括:本发明公开了一种数据协同处理的方法、装置和系统。其中,该系统包括:参与目标文件的协同处理的多个客户端;即时通信服务器,用于接收至少一个第一客户端发送的对目标文件的修改数据,生成修改数据对应的序列标识,并将修改数据广播至第二客户端;在将修改数据广播至第二客户端的同时,即时通信服务器还用于向协同编辑服务器发送修改数据和修改数据对应的序列标识;协同编辑服务器,用于按照序列标识记录的顺序根据修改数据生成与序列标识对应的快照数据。本发明解决了现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。(The invention discloses a method, a device and a system for data cooperative processing. Wherein, this system includes: a plurality of clients participating in the cooperative processing of the target file; the instant messaging server is used for receiving modification data of the target file sent by at least one first client, generating a sequence identifier corresponding to the modification data and broadcasting the modification data to a second client; the instant messaging server is also used for sending the modified data and the sequence identification corresponding to the modified data to the collaborative editing server while broadcasting the modified data to the second client; and the collaborative editing server is used for generating snapshot data corresponding to the sequence identifier according to the sequence of the sequence identifier record and the modification data. The invention solves the technical problem that the client is easy to update untimely because the link from the client to the document displayed on the client is long when the document is cooperatively edited in the prior art.)

数据协同处理的方法、装置和系统

技术领域

本发明涉及数据处理领域,具体而言,涉及一种数据协同处理的方法、装置和系统。

背景技术

协同编辑用于表示可以多人同时在线对同一文档进行编辑,常常应用于多人会议等场景中。图1是现有技术中协同编辑文档的示意图。结合图1所示,客户端和即时通信服务器之间维持一个websocket的长链接,当客户端对文档进行修改时,实现方式如下:①客户端通过HTTP通道向协同编辑服务器上报增量改动信息;②协同编辑服务器对请求加上分布时序,异步按照顺序处理文档快照;③协同编辑服务器调用即时通信服务器的信令接口,将对文档的改动发送至即时通信服务器;④即时通信服务器通过长链接向其他客户端广播此次修改;⑤其他客户端接收到消息后合并改动,展示新的文档内容。

由此可见,一个客户端对文档的依次修改需要五个步骤才可以展示到其他客户端的页面上,导致反应时间过长,而由在多个用户协作编辑时,每个用户的网络状况不太一样,较长的链路将会放大这种缺陷,从而容易使得个别客户端显示的文档和其他客户端显示的文档存在差异,进而导致部分客户端的体验不佳。

针对现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种数据协同处理的方法、装置和系统,以至少解决现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。

根据本发明实施例的一个方面,提供了一种数据协同处理的系统,包括:参与目标文件的协同处理的多个客户端;即时通信服务器,与多个客户端通信,即时通信服务器用于接收至少一个第一客户端发送的对目标文件的修改数据,生成修改数据对应的序列标识,并将修改数据广播至第二客户端,其中,第二客户端为多个客户端中除第一客户端之外的其他客户端;在将修改数据广播至第二客户端的同时,即时通信服务器还用于向协同编辑服务器发送修改数据和修改数据对应的序列标识;协同编辑服务器,与即时通信服务器通信,协同编辑服务器用于按照序列标识记录的顺序根据修改数据生成与序列标识对应的快照数据。

进一步地,即时通信服务器用于按照接收修改数据的顺序生成递增的序列标识。

进一步地,上述系统还包括:待加入客户端,待加入客户端用于向协同编辑服务器发送快照数据获取请求;协同编辑服务器还用于根据快照数据获取请求,并向待加入客户端返回根据序列标识确定的最新的目标快照数据和目标快照数据对应的目标序列标识。

进一步地,待加入客户端用于通过任意一个已参与所述协同处理的客户端发送的分享信息,获取目标文件的文件标识,并基于文件标识向协同编辑服务器发送快照数据获取请求。

进一步地,即时通信服务器还用于保存预设时间段内的修改数据和修改数据对应的序列标识;待加入客户端还用于将目标序列标识和即时通信服务器中的序列标识进行比对,获取大于目标序列标识的其他序列标识,并基于其他序列标识对应的修改数据对目标快照数据进行补偿。

进一步地,待加入客户端还用于展示补偿后的目标快照数据。

根据本发明实施例的一个方面,提供了一种数据协同处理的方法,包括:即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,并生成修改数据对应的序列标识;即时通信服务器将修改数据广播至第二客户端,第二客户端为参与目标文件的协同处理的客户端中除第一客户端之外的其他客户端;其中,在将修改数据广播至第二客户端的同时,即时通信服务器向协同编辑服务器发送修改数据和修改数据对应的序列标识,协同编辑服务器按照序列标识记录的顺序根据修改数据生成目标文件的快照数据。

进一步地,生成修改数据对应的序列标识,包括:即时通信服务器按照接收修改数据的顺序生成递增的序列标识。

进一步地,上述方法还包括:即时通信服务器向待加入客户端返回其他序列标识对应的修改数据;其中,待加入客户端从协同编辑服务器处获取协同编辑服务器中最新的目标快照数据和对应的目标序列标识,并将目标序列标识与即时通信服务器中的序列标识进行比对,确定大于目标序列标识的序列标识为其他序列标识。

根据本发明实施例的一个方面,提供了一种数据协同处理的方法,包括:根据分享信息加入目标文件的协同处理,其中,分享信息中包括目标文件的文件标识;根据文件标识获取协同编辑服务器中目标文件最新的目标快照数据和目标快照数据对应的目标序列标识,其中,协同编辑服务器根据即时通信服务器发送的修改数据和对应的序列标识,生成与序列标识对应的快照数据;根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,其中,即时通信服务器接收至少一个客户端发送的修改数据并生成对应的序列标识,将修改数据广播至其他客户端,并同时将修改数据和对应的序列标识发送至协同编辑服务器;根据获取的修改数据对目标快照数据进行补偿。

进一步地,根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,包括:将目标序列标识与即时通信服务器中的序列标识进行比对;获取即时通信服务器中大于目标序列标识的序列标识,其中,即时通信服务器按照接收修改数据的顺序生成递增的序列标识;确定获取的修改数据为晚于目标快照数据生成时间的修改数据。

根据本发明实施例的一个方面,提供了一种数据协同处理的装置,包括:接收模块,用于即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,并生成修改数据对应的序列标识;广播模块,用于即时通信服务器将修改数据广播至第二客户端,第二客户端为参与目标文件的协同处理的客户端中除第一客户端之外的其他客户端;其中,在将修改数据广播至第二客户端的同时,即时通信服务器向协同编辑服务器发送修改数据和修改数据对应的序列标识,协同编辑服务器按照序列标识记录的顺序根据修改数据生成目标文件的快照数据。

根据本发明实施例的一个方面,提供了一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。

根据本发明实施例的一个方面,提供了一种电子设备,包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。

在本发明实施例中,通过即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,生成修改数据对应的序列标识,并将修改数据广播至第二客户端,第二客户端为多个客户端中除第一客户端之外的其他客户端;在将修改数据广播至第二客户端的同时,通过即时通信服务器还向协同编辑服务器发送修改数据和修改数据对应的序列标识,并通过协同编辑服务器按照序列标识记录的顺序根据修改数据生成与序列标识对应的快照数据。上述方案将原本较长的、同步阻塞的协同处理流程拆分成两个异步的短流程,达到了生提升实时性的目的,从而解决了现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是现有技术中协同编辑文档的示意图;

图2是根据本申请实施例的一种数据协同处理的系统的结构图;

图3是根据本申请实施例的一种数据协同处理的示意图;

图4是根据本申请实施例的一种待加入客户端进行数据补偿的示意图;

图5是根据本申请实施例的一种数据协同处理的方法;

图6是根据本申请实施例的一种数据协同处理的方法的流程图;

图7是根据本申请实施例的一种数据协同处理的装置的示意图;以及

图8是根据本申请实施例的一种数据协同处理的装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种数据协同处理的系统实施例,图2是根据本申请实施例的一种数据协同处理的系统的结构图,如图2所示,该系统包括:

参与目标文件的协同处理的多个客户端20;

即时通信服务器21,与多个客户端20通信,即时通信服务器21用于接收至少一个第一客户端201发送的对目标文件的修改数据,生成修改数据对应的序列标识,并将修改数据广播至第二客户端202,其中,第二客户端202为多个客户端20中除第一客户端201之外的其他客户端;

在将修改数据广播至第二客户端202的同时,即时通信服务器21还用于向编辑服务器22发送修改数据和修改数据对应的序列标识;

协同编辑服务器22,与即时通信服务器21通信,协同编辑服务器22用于按照序列标识记录的顺序根据修改数据生成与序列标识对应的快照数据。

具体的,上述对目标文件的协同处理指的是允许多个用户同时对同一个文件(即目标文件)共同进行编辑处理,而参与到该协同处理中的客户端即为客户端。

对于文件的协同处理,底层会建立一个与之唯一对应的群聊房间,而加入目标文件对应的群聊房间的客户端即为上述多个客户端。每个客户端允许对目标文件进行编辑处理,每个客户端对文档的改动,相当于向该聊天房间里发送消息,该消息即为上述修改数据。

上述修改数据表示用于对目标文件进行编辑的数据。修改数据可以是客户端根据预设的编码协议,基于对目标文件的修改操作进行编码而得到,其可以包括修改类型(添加、删除、格式改动等)、修改内容(添加的内容、删除内容等)以及修改时间等参数。即时通信服务器在获得修改数据后,根据与编码协议对应的解码协议,即可解析出修改数据中的具体内容。

上述第一客户端用于表示客户端中,向即时通信服务器发送修改数据的客户端,第二客户端表示客户端中除第一客户端之外的其他客户端。图3是根据本申请实施例的一种数据协同处理的示意图,结合图3所示,当客户端1向即时通信服务器发送修改数据时,客户端2、客户端3和客户端4均为第二客户端,同理的,当客户端2向即时通信服务器发送修改数据时,客户端1、客户端3和客户端4均为第二客户端。

即时通信服务器用于接收任意一个第一客户端发送的修改数据后,为修改数据生成对应的序列标识(seq-id),通过该序列标识即可识别出修改数据到达即时通信服务器的顺序。即时通信服务器还将修改数据广播至其他的第二客户端,第二客户端在接收到修改数据后,基于修改数据对当前的目标文件进行修改,从而能够完成多个客户端对目标文件的协同处理。

在即时通信服务器向第二客户端广播修改数据的同时,即时通信服务器还向协同编辑服务器发送修改数据和修改数据对应的序列标识,以使协同编辑服务器能够根据修改数据对目标文件进行修改后生成目标文件的快照数据,该快照数据也与修改数据的序列标识相对应。在一种可选的实施例中,多个客户端与即时通信服务器之间通过WebSocket通信,即时通信服务器与协同编辑服务器之间通过RabbitMQ等MQ(Message Queue,消息队列)系列的协议进行通信,从而能够实现即时通信服务器与协同编辑服务器之间的解耦。

下面结合图3说明,在本申请上述实施例提供的方案中,多个客户端对目标文件的处理仅需要三个步骤即可完成。下面以客户端1发送修改数据为例进行说明。①当用户在通过客户端1对目标文档进行修改操作时,客户端1向即时通信服务器发送修改数据,即时通信服务器生成修改数据对应的序列标识,并将修改数据进行保存;②即时通信服务器将修改数据广播至客户端2、客户端3和客户端4,客户端2、客户端3和客户端4即可根据修改数据对目标文件进行修改后展示在客户端中;③在即时通信服务器执行步骤②的同时,还将修改数据与其对应的序列标识发送至协同编辑服务器,由协同编辑服务器根据序列标识所表示的修改数据的顺序,依次生成目标文件的快照数据。

由此可知,本申请上述实施例通过即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,生成修改数据对应的序列标识,并将修改数据广播至第二客户端,第二客户端为多个客户端中除第一客户端之外的其他客户端;在将修改数据广播至第二客户端的同时,通过即时通信服务器还向协同编辑服务器发送修改数据和修改数据对应的序列标识,并通过协同编辑服务器按照序列标识记录的顺序根据修改数据生成与序列标识对应的快照数据。上述方案将原本较长的、同步阻塞的协同处理流程拆分成两个异步的短流程,达到了生提升实时性的目的,从而解决了现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。

作为一种可选的实施例,即时通信服务器用于按照接收修改数据的顺序生成递增的序列标识。

在上述方案中,即时通信服务器在生成修改数据的序列标识时,按照其接收到修改数据的先后顺序,生成递增的序列标识。也即,先达到即时通信服务器的修改数据的序列标识小于后达到即时通信服务器的修改数据的序列标识。

通过上述方案生成修改数据的序列标识,即可根据序列标识的大小来确定修改数据达到即时通信服务器的顺序。

需要说明的是,上述序列标识是按照即时通信服务器接收到修改数据的顺序来生成的,即根据修改数据达到即时通信服务器的顺序来生成的。存在一种情况,客户端1比客户端2先向即时通信服务器发送修改数据,但由于客户端1与即时通信服务器之间的通信链路卡顿或其他原因,导致客户端1发送的修改数据达到即时通信服务器的时间晚于客户端2发送的修改数据,在这种情况下,虽然客户端1发送修改数据的时间早于客户端2,但由于客户端2发送端修改数据优先到达即时通信服务器,因此即时通信服务器为客户端2生成的序列标识仍小于为客户端1生成的序列标识。

作为一种可选的实施例,上述系统还包括:待加入客户端,待加入客户端用于向协同编辑服务器发送快照数据获取请求;协同编辑服务器还用于根据快照数据获取请求,并向待加入客户端返回根据序列标识确定的最新的目标快照数据和目标快照数据对应的目标序列标识。

上述待加入客户端为需要对目标文件进行协同处理的客户端,待加入客户端向协同编辑服务器发送快照数据获取请求,以从协同编辑服务器处获取协同编辑服务器中最新的快照数据,即上述目标快照数据。

仍结合图3所示,待加入客户端先执行步骤a2,向协同编辑服务器发送快照数据获取请求,然后协同编辑服务器执行步骤b2,向待加入客户端返回其最新的快照数据及其序列标识,即目标快照数据及其序列标识。通过该方式,使得待加入客户端获取了最新的目标文件。

作为一种可选的实施例,待加入客户端用于通过任意一个已参与所述协同处理的客户端发送的分享信息,获取目标文件的文件标识,并基于文件标识向协同编辑服务器发送快照数据获取请求。

具体的,上述分享信息可以是包含分享链接的文本、包含分享链接的二维码或其他形式的分享信息,该分享信息中至少包括目标文件的文件标识,即docId,文件标识与文件本身一一对应,也即其为文件的唯一标识。待加入客户端通过该分享信息,即可进入到目标文件的群聊房间,参与到对目标文件的协同处理中。

在一种可选的实施例中,在对目标文件进行协同操作的过程中,还需要邀请其他客户端参与对该目标文件的协同处理。因此其中一个已经参与协同处理的客户端将链接通过即时通信软件分享至需要邀请的客户端,该客户端通过获得的链接即可获取到目标文件的文件标识,并能够根据文件标识加入对目标文件的协同处理,并向协同编辑服务器发送快照数据获取请求。

作为一种可选的实施例,即时通信服务器还用于保存预设时间段内的修改数据和修改数据对应的序列标识;待加入客户端还用于将目标序列标识和即时通信服务器中的序列标识进行比对,获取大于目标序列标识的其他序列标识,并基于其他序列标识对应的修改数据对目标快照数据进行补偿。

在上述方案中,即时通信服务器会保存预设时间段内的修改数据及其序列标识,例如,可以保存七天内的修改数据及其序列标识。

结合图1所示,现有技术中,在需要新加入客户端时,待加入客户端通过步骤a1向协同编辑服务器中请求最新的快照数据,协同编辑服务器通过步骤b1向待加入服务器返回最新的快照数据,然后待加入服务器通过c1即可参与到对文件的协同处理中。但当新客户端加入时,其他的客户端可能还在持续的编辑,这部分改动信息协同编辑服务端可能来不及处理,那么协同编辑服务端的快照就是不完整的,从而会导致新客户端加入时拿到的快照数据也不完整。

同样的,在本实施例中,由于即时通信服务器向第二客户端广播修改数据和即时通信服务器向协同编辑服务器发送修改数据是同时进行的,因此难以确保协同编辑服务器中的目标快照数据记录的是最新的目标文件,也即难以确保待加入客户端从协同编辑服务器中能够获取到最新的目标文件对应的快照数据。

在这种情况下,上述方案采用了补偿的方式来解决上述问题。在上述方案中,在待加入客户端从协同编辑服务器中获取到目标快照数据及其序列标识后,再去访问即时通信服务器,通过将目标序列标识与即时通信服务器中的序列标识进行比较的方式,来确定是否存在晚于目标快照数据的修改数据。如果即时通信服务器中不存在大于目标序列标识的序列标识,则说明目标快照数据为最新的目标文件的快照数据,待加入客户端可以直接显示目标快照数据,而如果即时通信服务器中存在大于目标序列标识的序列标识,则说明在目标快照数据之后,目标文件还进行了其他修改,则待加入客户端需要使用这些在目标快照数据之后的修改数据,对目标快照数据进行补偿,以得到最新的目标文件。

仍结合图3所示,在执行步骤b2之后,待加入客户端还执行步骤c2访问即时通信客户端,将目标快照数据对应的序列标识与即时通信服务器中记录的序列标识进行比对,并获取大于目标快照数据对应的序列标识的其他标识,使用其他标识对应的修改数据对目标快照数据进行补偿,从而得到最新的目标文件。

由此,上述方案通过对从协同编辑服务器中获取的快照数据进行补偿的方案,从而能够保证待加入客户端能够获取到最完整的目标文件,解决了客户端加入时容易产生的部分数据丢失的情况。

图4是根据本申请实施例的一种待加入客户端进行数据补偿的示意图,结合图4所示,即时通信服务器中维护了递增的消息序列,该消息序列由接收到修改数据的序列标识构成。待加入客户端从协同编辑服务器处获取最新的目标快照数据及其seq-id后,向即时通信服务器的消息序列中进行查询,确定是否存在需要补偿的修改数据。在该实例中,客户端从协同编辑服务器中获取到快照数据的seq-id为100,而即时通信服务器的消息序列中的seq-id达到了110,因此,seq-id为101至110的修改数据为待加入客户端需要进行补偿的修改数据。

作为一种可选的实施例,待加入客户端还用于展示补偿后的目标快照数据。

在上述方案中,待加入客户端在加入目标文件的协同处理后,直接显示补偿后的目标快照数据,而可以不显示从协同编辑服务器处获取的快照数据,且不显示补偿的过程。

实施例2

根据本发明实施例,提供了一种数据协同处理的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图5是根据本申请实施例的一种数据协同处理的方法,如图5所示,该方法包括如下步骤:

步骤S502,即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,并生成修改数据对应的序列标识。

上述修改数据表示用于对目标文件进行编辑的数据。修改数据可以是客户端根据预设的编码协议,基于对目标文件的修改操作进行编码而得到,其可以包括修改类型(添加、删除、格式改动等)、修改内容(添加的内容、删除内容等)以及修改时间等参数。即时通信服务器在获得修改数据后,根据与编码协议对应的解码协议,即可解析出修改数据中的具体内容。

上述第一客户端用于表示客户端中,向即时通信服务器发送修改数据的客户端,第二客户端表示客户端中除第一客户端之外的其他客户端。图3是根据本申请实施例的一种数据协同处理的示意图,结合图3所示,当客户端1向即时通信服务器发送修改数据时,客户端2、客户端3和客户端4均为第二客户端,同理的,当客户端2向即时通信服务器发送修改数据时,客户端1、客户端3和客户端4均为第二客户端。

即时通信服务器用于接收任意一个第一客户端发送的修改数据后,为修改数据生成对应的序列标识(seq-id),通过该序列标识即可识别出修改数据到达即时通信服务器的顺序。

步骤S504,即时通信服务器将修改数据广播至第二客户端,第二客户端为参与目标文件的协同处理的客户端中除第一客户端之外的其他客户端;其中,在将修改数据广播至第二客户端的同时,即时通信服务器向协同编辑服务器发送修改数据和修改数据对应的序列标识,协同编辑服务器按照序列标识记录的顺序根据修改数据生成目标文件的快照数据。

具体的,上述对目标文件的协同处理指的是允许多个用户同时对同一个文件(即目标文件)共同进行编辑处理,而参与到该协同处理中的客户端即为客户端

即时通信服务器还将修改数据广播至其他的第二客户端,第二客户端在接收到修改数据后,基于修改数据对当前的目标文件进行修改,从而能够完成多个客户端对目标文件的协同处理。

在即时通信服务器向第二客户端广播修改数据的同时,即时通信服务器还向协同编辑服务器发送修改数据和修改数据对应的序列标识,以使协同编辑服务器能够根据修改数据对目标文件进行修改后生成目标文件的快照数据,该快照数据也与修改数据的序列标识相对应。在一种可选的实施例中,客户端与即时通信服务器之间通过WebSocket通信,即时通信服务器与协同编辑服务器之间通过RabbitMQ等MQ(Message Queue,消息队列)系列的协议进行通信,从而能够实现即时通信服务器与协同编辑服务器之间的解耦。

由此可知,本申请上述实施例中,即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,并生成修改数据对应的序列标识;即时通信服务器将修改数据广播至第二客户端,第二客户端为参与目标文件的协同处理的客户端中除第一客户端之外的其他客户端;其中,在将修改数据广播至第二客户端的同时,即时通信服务器向协同编辑服务器发送修改数据和修改数据对应的序列标识,协同编辑服务器按照序列标识记录的顺序根据修改数据生成目标文件的快照数据。上述方案将原本较长的、同步阻塞的协同处理流程拆分成两个异步的短流程,达到了生提升实时性的目的,从而解决了现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。

作为一种可选的实施例,生成修改数据对应的序列标识,包括:即时通信服务器按照接收修改数据的顺序生成递增的序列标识。

在上述方案中,即时通信服务器在生成修改数据的序列标识时,按照其接收到修改数据的先后顺序,生成递增的序列标识。也即,先达到即时通信服务器的修改数据的序列标识小于后达到即时通信服务器的修改数据的序列标识。

通过上述方案生成修改数据的序列标识,即可根据序列标识的大小来确定修改数据达到即时通信服务器的顺序。

需要说明的是,上述序列标识是按照即时通信服务器接收到修改数据的顺序来生成的,即根据修改数据达到即时通信服务器的顺序来生成的。存在一种情况,客户端1比客户端2先向即时通信服务器发送修改数据,但由于客户端1与即时通信服务器之间的通信链路卡顿或其他原因,导致客户端1发送的修改数据达到即时通信服务器的时间晚于客户端2发送的修改数据,在这种情况下,虽然客户端1发送修改数据的时间早于客户端2,但由于客户端2发送端修改数据优先到达即时通信服务器,因此即时通信服务器为客户端2生成的序列标识仍小于为客户端1生成的序列标识。

作为一种可选的实施例,上述方法还包括:即时通信服务器向待加入客户端返回其他序列标识对应的修改数据;其中,待加入客户端从协同编辑服务器处获取协同编辑服务器中最新的目标快照数据和对应的目标序列标识,并将目标序列标识与即时通信服务器中的序列标识进行比对,确定大于目标序列标识的序列标识为其他序列标识。

上述待加入客户端为需要对目标文件进行协同处理的客户端,待加入客户端向协同编辑服务器发送快照数据获取请求,以从协同编辑服务器处获取协同编辑服务器中最新的快照数据,即上述目标快照数据。

在待加入客户端从协同编辑服务器中获取到目标快照数据及其序列标识后,再去访问即时通信服务器,通过将目标序列标识与即时通信服务器中的序列标识进行比较的方式,来确定是否存在晚于目标快照数据的修改数据。如果即时通信服务器中不存在大于目标序列标识的序列标识,则说明目标快照数据为最新的目标文件的快照数据,待加入客户端可以直接显示目标快照数据,而如果即时通信服务器中存在大于目标序列标识的序列标识,则说明在目标快照数据之后,目标文件还进行了其他修改,则待加入客户端从即时通信服务器处获取这些在目标快照数据之后的修改数据,对目标快照数据进行补偿,以得到最新的目标文件。

在即时通信服务器向待加入客户端返回其他序列标识对应的修改数据之后,待加入客户端换根据即时通信服务器返回的修改数据对目标快照数据进行补偿,从而能够得到最新最完整的目标文件。

需要说明的是,本实施例中的数据协同处理的方法可以基于实施例1中的数据协同处理的系统实现,此处不再赘述协同编辑服务器和即时通信服务器的其他实施例。

实施例3

根据本发明实施例,提供了一种数据协同处理的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图6是根据本申请实施例的一种数据协同处理的方法的流程图,如图6所示,该方法包括如下步骤:

步骤S602,根据分享信息加入目标文件的协同处理,其中,分享信息中包括目标文件的文件标识。

本实施例中的步骤可以有待加入客户端执行。

具体的,上述分享信息可以是包含分享链接的文本、包含分享链接的二维码或其他形式的分享信息,该分享信息中至少包括目标文件的文件标识,即docId,文件标识与文件本身一一对应,也即其为文件的唯一标识。待加入客户端通过该分享信息,即可进入到目标文件的群聊房间,参与到对目标文件的协同处理中。

在一种可选的实施例中,在对目标文件进行协同操作的过程中,还需要邀请其他客户端参与对该目标文件的协同处理。因此其中一个已经参与协同处理的客户端将链接通过即时通信软件分享至需要邀请的客户端,该客户端通过获得的链接即可获取到目标文件的文件标识,并能够根据文件标识加入对目标文件的协同处理,并向协同编辑服务器发送快照数据获取请求。

步骤S604,根据文件标识获取协同编辑服务器中目标文件最新的目标快照数据和目标快照数据对应的目标序列标识,其中,协同编辑服务器根据即时通信服务器发送的修改数据和对应的序列标识,生成与序列标识对应的快照数据。

上述待加入客户端为需要对目标文件进行协同处理的客户端,待加入客户端向协同编辑服务器发送快照数据获取请求,以从协同编辑服务器处获取协同编辑服务器中最新的快照数据,即上述目标快照数据。

步骤S606,根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,其中,即时通信服务器接收至少一个客户端发送的修改数据并生成对应的序列标识,将修改数据广播至其他客户端,并同时将修改数据和对应的序列标识发送至协同编辑服务器。

在本实施例中,由于即时通信服务器向第二客户端广播修改数据和即时通信服务器向协同编辑服务器发送修改数据是同时进行的,因此难以确保协同编辑服务器中的目标快照数据记录的是最新的目标文件,也即难以确保待加入客户端从协同编辑服务器中能够获取到最新的目标文件对应的快照数据。

在这种情况下,上述方案在从协同编辑服务器中获取到目标快照数据及其序列标识后,还访问了即时通信服务器,从而能够获取在目标快照数据之后的修改数据。

步骤S608,根据获取的修改数据对目标快照数据进行补偿。

待加入客户端需要使用上述在目标快照数据之后的修改数据,对目标快照数据进行补偿,以得到最新的目标文件。

由此可知,本申请上述实施例根据分享信息加入目标文件的协同处理,其中,分享信息中包括目标文件的文件标识;根据文件标识获取协同编辑服务器中目标文件最新的目标快照数据和目标快照数据对应的目标序列标识,其中,协同编辑服务器根据即时通信服务器发送的修改数据和对应的序列标识,生成与序列标识对应的快照数据;根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,其中,即时通信服务器接收至少一个客户端发送的修改数据并生成对应的序列标识,将修改数据广播至其他客户端,并同时将修改数据和对应的序列标识发送至协同编辑服务器;根据获取的修改数据对目标快照数据进行补偿。上述方案将原本较长的、同步阻塞的协同处理流程拆分成两个异步的短流程,达到了生提升实时性的目的,从而解决了现有技术中由于协同编辑文件时由客户端修改文档至文档显示于客户端之间的链路较长,导致客户端容易出现更新不及时的技术问题。

作为一种可选的实施例,根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,包括:将目标序列标识与即时通信服务器中的序列标识进行比对;获取即时通信服务器中大于目标序列标识的序列标识,其中,即时通信服务器按照接收修改数据的顺序生成递增的序列标识;确定获取的修改数据为晚于目标快照数据生成时间的修改数据。

在上述方案中,在待加入客户端从协同编辑服务器中获取到目标快照数据及其序列标识后,再去访问即时通信服务器,通过将目标序列标识与即时通信服务器中的序列标识进行比较的方式,来确定是否存在晚于目标快照数据的修改数据。如果即时通信服务器中不存在大于目标序列标识的序列标识,则说明目标快照数据为最新的目标文件的快照数据,待加入客户端可以直接显示目标快照数据,而如果即时通信服务器中存在大于目标序列标识的序列标识,则可以说明在目标快照数据之后,目标文件还进行了其他修改。

实施例4

根据本发明实施例,提供了一种用于实施上述实施例2的数据协同处理的装置的实施例,图7是根据本申请实施例的一种数据协同处理的装置的示意图,如图7所示,该装置包括:

接收模块70,用于即时通信服务器接收至少一个第一客户端发送的对目标文件的修改数据,并生成修改数据对应的序列标识;

广播模块72,用于即时通信服务器将修改数据广播至第二客户端,第二客户端为参与目标文件的协同处理的客户端中除第一客户端之外的其他客户端;

其中,在将修改数据广播至第二客户端的同时,即时通信服务器向协同编辑服务器发送修改数据和修改数据对应的序列标识,协同编辑服务器按照序列标识记录的顺序根据修改数据生成目标文件的快照数据。

作为一种可选的实施例,接收模块包括:生成子模块,用于即时通信服务器按照接收修改数据的顺序生成递增的序列标识。

作为一种可选的实施例,上述装置还包括:返回模块,用于即时通信服务器向待加入客户端返回其他序列标识对应的修改数据;其中,待加入客户端从协同编辑服务器处获取协同编辑服务器中最新的目标快照数据和对应的目标序列标识,并将目标序列标识与即时通信服务器中的序列标识进行比对,确定大于目标序列标识的序列标识为其他序列标识。

实施例5

根据本发明实施例,提供了一种用于实施上述实施例3的数据协同处理的装置的实施例,图8是根据本申请实施例的一种数据协同处理的装置的示意图,如图8所示,该装置包括:

加入模块80,用于根据分享信息加入目标文件的协同处理,其中,分享信息中包括目标文件的文件标识;

第一获取模块82,用于根据文件标识获取协同编辑服务器中目标文件最新的目标快照数据和目标快照数据对应的目标序列标识,其中,协同编辑服务器根据即时通信服务器发送的修改数据和对应的序列标识,生成与序列标识对应的快照数据;

第二获取模块84,用于根据目标序列标识,获取即时通信服务器中接收时间晚于目标快照数据生成时间的修改数据,其中,即时通信服务器接收至少一个客户端发送的修改数据并生成对应的序列标识,将修改数据广播至其他客户端,并同时将修改数据和对应的序列标识发送至协同编辑服务器;

补偿模块86,用于根据获取的修改数据对目标快照数据进行补偿。

作为一种可选的实施例,第二获取模块包括:比对子模块,用于将目标序列标识与即时通信服务器中的序列标识进行比对;获取子模块,用于获取即时通信服务器中大于目标序列标识的序列标识,其中,即时通信服务器按照接收修改数据的顺序生成递增的序列标识;确定子模块,用于确定获取的修改数据为晚于目标快照数据生成时间的修改数据。

实施例6

根据本发明实施例,提供了一种计算机存储介质,计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行实施例2中任意一项的方法步骤。

实施例7

根据本发明实施例,提供了一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行实施例3中的方法步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:报表生成方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!