CN108876275A - 协同工作方法以及使用该方法的系统 - Google Patents
协同工作方法以及使用该方法的系统 Download PDFInfo
- Publication number
- CN108876275A CN108876275A CN201710341859.2A CN201710341859A CN108876275A CN 108876275 A CN108876275 A CN 108876275A CN 201710341859 A CN201710341859 A CN 201710341859A CN 108876275 A CN108876275 A CN 108876275A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- value
- version counter
- edit commands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Abstract
本发明的实施例提出一种协同工作方法以及使用该方法的系统。协同工作方法由处理单元载入并执行客户端的程序码时实施,包含:透过人机界面接收使用者编辑电子文件的信号;产生并执行相应于信号的编辑命令;将客户端更版计数器加一;传送包含编辑命令的同步请求给服务器;从服务器接收认可信息,其中包含编辑命令及服务器更版计数器的值;以及当相应于编辑命令的客户端更版计数器的值与服务器更版计数器的值不相符时,判定发生命令冲突及执行冲突化解程序,用以让所有客户端间的编辑命令的执行顺序一致。
Description
技术领域
本发明关连于一种协同工作环境技术,特别是一种协同工作方法以及使用该方法的系统。
背景技术
协同工作环境(CWE,Collaborative Working Environment)用以支援多人(例如,网络专家)的协同作业。协同工作系统(CWS,Collaborative Working System)的成功因素包含群体合作技术或群体软件的可用性,包含可帮助群体存取及分享信息的硬件及软件工具。于协同工作环境中,当二或多个人编辑同一份电子文件时,可能发生命令冲突。为解决协同工作环境中发生的命令冲突,需要一种协同工作方法以及使用该方法的系统。
发明内容
本发明的实施例提出一种协同工作方法,由处理单元载入并执行客户端的程序码时实施,包含:透过人机界面接收使用者编辑电子文件的信号;产生并执行相应于信号的编辑命令;将客户端更版计数器加一;传送包含编辑命令的同步请求给服务器;从服务器接收认可信息,其中包含编辑命令及服务器更版计数器的值;以及当相应于编辑命令的客户端更版计数器的值与服务器更版计数器的值不相符时,判定发生命令冲突及执行冲突化解程序,用以让所有客户端间的编辑命令的执行顺序一致。
本发明的实施例提出一种协同工作方法,由处理单元载入并执行服务器的程序码时实施,包含:从第一客户端接收到第一同步请求,包含编辑命令;将服务器更版计数器加一;转送第二同步请求给第二客户端,包含编辑命令及服务器更版计数器的值;以及回复认可信息给第一客户端,包含编辑命令及服务器更版计数器的值。
本发明的实施例提出一种协同工作系统包含服务器装置及客户端装置。服务器装置包含第一记忆体及第一处理单元。第一记忆体存储服务器更版计数器的值。第一处理单元从第一客户端接收到第一同步请求,包含第一编辑命令;将服务器更版计数器加一;转送第二同步请求给第二客户端,包含第一编辑命令及服务器更版计数器的值;以及回复认可信息给第一客户端,包含第一编辑命令及服务器更版计数器的值。客户端装置包含第二记忆体及第二处理单元。第二记忆体存储客户端更版计数器的值。第二处理单元透过人机界面接收使用者编辑电子文件的信号;产生并执行相应于信号的第一编辑命令;将客户端更版计数器加一;传送第一同步请求给服务器装置,包含第一编辑命令;从服务器装置接收认可信息;以及当相应于第一编辑命令的客户端更版计数器的值与服务器更版计数器的值不相符时,判定发生命令冲突及执行冲突化解程序,用以让所有客户端间的编辑命令的执行顺序一致。
附图说明
图1是依据本发明实施例的协同工作系统的网络架构图;
图2是依据本发明实施例的网络附属存储的系统架构图;
图3是依据本发明实施例的计算机装置的系统架构图;
图4是依据本发明实施例的协同工作环境初始化的方法流程图;
图5A及图5B是依据本发明实施例的协同工作环境的编辑命令同步及执行的方法流程图;
图6是依据本发明实施例的信息交换图;
图7是依据本发明实施例的试算表画面的示意图;
图8A及图8B是依据本发明实施例的试算表画面的示意图。
【符号说明】
100 网络;
110 服务器;
120_1~120_n 客户端;
210 处理单元;
240 存储单元;
250 记忆体;
260 通信接口;
310 处理单元;
320 显示单元;
330 输入装置;
340 存储装置;
350 记忆体;
360 通信接口;
S411~S435 方法步骤;
S511~S555 方法步骤;
C1~C3 使用个案;
t1~t10 时间点;
700、810、820 试算表。
具体实施方式
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图1是依据本发明实施例的协同工作系统(CWS,Collaborative Working System)的网络架构图,包含一个服务器(server)110及多个客户端120_1至120_n,n为任意整数。服务器110可以服务多个客户端,而客户端120_1至120_n中的任一者可使用多个服务器。服务器110为一个计算机程序,用以为客户端120_1至120_n(亦即是计算机程序)提供所需的功能。服务器110可提供协同工作环境(CWE,Collaborative Working Environment)服务,例如,于客户端120_1至120_n之间存取及分享数据。详细来说,服务器110可协调客户端120_1至120_n对同一份电子文件的存取,例如,试算表(spreadsheet)、绘图(drawing)、行事历(schedule)等。客户端120_1至120_n中的任一者可透过网络100连接上服务器110,用以存取服务器110中的数据。网络100可为网际网络(Internet)、区域网络(Local AreaNetwork,LAN)、无线区域网络(wireless Local Area Network,WLAN)、无线电信网络(wireless telephony network),或以上的任意组合。虽然本发明实施例描述客户端120_1至120_n经由网络100连接服务器110,然而,熟悉此技艺人士亦可修改网络架构,使得服务器处理及至少一个客户端处理执行于相同电子装置,本发明并不因此受限。执行服务器110的装置可称为服务器装置,而执行客户端120_1至120_n中的至少一者的装置可称为客户端装置。
于一些实施例中,网络附属存储(NAS,Network-Attached Storage)系统可执行服务器110的程序码。图2是依据本发明实施例的网络附属存储的系统架构图。处理单元210可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。系统架构另包含记忆体250用以存储执行过程中需要的数据,例如,变量、数据表等。存储装置240可包含多个存储单元,例如硬盘(HD,Hard Disk)、固态硬盘(SSD,Solid State Disk)、非挥发性记忆装置等,组织为独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID),用以存储各式各样的电子文件,例如,网页、文件、音频文件、视频文件等。系统架构另包含通信接口260,让处理单元210可借以跟其他电子装置进行沟通。通信接口260可以是区域网络通信模块、无线区域网络通信模块等。
图3是依据本发明实施例的计算机装置的系统架构图。此系统架构可用以执行服务器110及客户端120_1至120_n中的任一者的程序码,可为手机、平板计算机、个人计算机、笔记型计算机,或其他具备运算能力的电子装置。处理单元310可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行程序码或软件时,提供之后所描述的功能。系统架构另包含记忆体350用以存储执行过程中需要的数据,例如,变量、数据表等,以及存储装置340,用以存储各式各样的电子文件,例如,网页、文件、音频文件、视频文件等。系统架构另包含通信接口360,让处理单元310可借以跟其他电子装置进行沟通。通信接口360可为区域网络通信模块、无线区域网络通信模块、2.xG、3.xG、4.xG、5.xG电信网络通信模块等。输入装置330可包含键盘、鼠标、触控面板等。使用者可按压键盘上的按键来输入字符,通过操作鼠标来控制光标,或者是在触控面板制造手势来控制执行中的应用程序。手势可包含单击、双击、单指拖曳、多指拖曳等,但不限定于此。显示单元320可包含显示面板(例如,薄膜液晶显示面板、有机发光二极管面板或其他具显示能力的面板),用以显示输入的字符、数字、符号、拖曳光标的移动轨迹、绘制的图案或应用程序所提供的画面,提供给使用者观看。
为了避免当二或多个人编辑同一份电子文件时可能发生的命令冲突,本发明实施例让服务器110及客户端120_1至120_n各自维护更版计数器(revision counter),使得客户端120_1至120_n中的任一者可通过检查自己及服务器110间的更版计数器来侦测是否发生命令冲突。当命令冲突发生时,客户端可执行冲突化解程序(conflict-resolvingprocedure),用以让此客户端的电子文件存取状态与其他客户端同步。
服务器110可运行于处理器210或310,客户端120_1至120_n可运行于处理器310。当服务器110初始化时,将更版计数器初始为0。每次接收到客户端120_1至120_n中的任一者的编辑命令后,服务器110将更版计数器(以下称为服务器更版计数器)加1。当客户端120_1至120_n中的任一者初始化时,从服务器110取得最新的更版计算器值,并将更版计数器(以下称为客户端更版计数器)设定为取得的值。图4是依据本发明实施例的协同工作环境初始化的方法流程图。此方法分为二个部分,由虚线隔开,左边由相应于客户端120_1至120_n中的任一者的处理单元执行,而右边由相应于服务器110的处理单元执行。当客户端120_1至120_n中的任一者初始化时(步骤S411),发出初始化请求给服务器110(步骤S413)。于一些实施例中,客户端120_1至120_n中的任一者可透过通信接口360发送初始化请求给服务器110。于另一些实施例中,客户端120_1至120_n中的任一者可透过处理间通信(IPC,Inter-Process Communication)发送初始化请求给服务器110。初始化请求至少包含识别信息,例如客户识别码、网际网络协议(IP,Internet Protocol)地址、媒体存取控制(MAC,Media Access Control)地址或其他,用以让服务器110识别发出请求的客户端。服务器110接收初始化请求后(步骤S431),取得服务器更版计数器的值(步骤S433)并回复取得的值给请求的客户端(步骤S435)。服务器更版计数器可维护于记忆体250或350。于一些实施例中,服务器110可透过通信接口260或360回复取得的值给相应于识别信息的客户端。于另一些实施例中,服务器110可透过处理间通信回复取得的值给相应于识别信息的客户端。客户端接收回复后(步骤S415),设定客户端更版计数器为取得的值(步骤S417)。客户端更版计数器可维护于记忆体350。
于运行时,同一份电子文件的编辑命令由客户端120_1至120_n乱序(out-of-order)产生,需要透过服务器110同步客户端120_1至120_n间的编辑命令执行顺序。图5A及图5B是依据本发明实施例的协同工作环境的编辑命令同步及执行的方法流程图。此方法分为三个部分,由虚线隔开,左边由相应于客户端120_1的处理单元执行,中间由相应于服务器110的处理单元执行,而右边由相应于客户端120_2至120_n中的任一者的处理单元执行。
客户端120_1提供人机界面(MMI,Man Machine Interface),用以让使用者编辑电子文件。人机界面包含用以接收使用者输入信号的软件(例如,驱动程序、操作系统等)及硬件(例如,键盘、鼠标、触控屏幕等)。客户端120_1透过人机界面接收使用者编辑电子文件的信号后(步骤S511),产生并执行编辑命令(步骤S512),将客户端更版计数器加一(步骤S513),以及传送同步请求给服务器110(步骤S514)。编辑电子文件的信号可为键盘输入信号,或单击、双击、单指拖曳、多指拖曳等手势信号。详细来说,底层的驱动程序及操作系统根据编辑电子文件的信号产生应用程序操作信号,例如点击或双击一个存储格、将一个使用者界面(UI,User Interface)物件从座标A拖放置座标B、于使用者界面中输入英文字母、符号、特殊符号等,接着,客户端120_1根据应用程序操作信号产生编辑命令,例如,设定试算表中一个存储格的公式、设定试算表中一个存储格为特定数值、绘制矩形或三角形等、新增或删除一笔行事历记录等。客户端120_1产生的编辑命令可被其他客户端120_2至120_n中的每一者解译并执行。同步请求可包含客户端120_1的识别信息及产生的编辑命令,用以通知服务器110此编辑命令是由客户端120_1产生。记忆体350可更存储映射数据表(mapping table),客户端120_1可产生并存储一笔记录至映射数据表,用以指出于步骤S512产生的编辑命令及于步骤S513中产生的客户端更版计数器的值间的映射关系。于将步骤S512及产生的编辑命令及于一些实施例中,同步请求另可包含客户端更版计数器的最新值。于另一些实施例中,客户端120_1于步骤S514中传送的同步请求可还包含编辑命令的执行结果,使得其他客户端120_2至120_n可从同步请求中直接取得执行结果,而不需要执行编辑命令。
服务器110接收同步请求后(步骤S531),将服务器更版计数器加一(步骤S533),以及转送同步请求给其他客户端120_2至120_n,使得其他客户端120_2至120_n可执行其中的编辑命令(步骤S535)。转送的同步请求中可包含客户端120_1产生的编辑命令及服务器更版计数器的最新值。于正常情况下(亦即是没有命令冲突),客户端120_2至120_n中的每一者接收到同步请求后(步骤S551),执行同步请求中的编辑命令(步骤S553),以及将记忆体350中的客户端更版计数器设定为同步请求中服务器更版计数器的值(步骤S555)。
服务器110转送同步请求给其他客户端120_2至120_n后(步骤S535),回复认可信息(acknowledgment)给客户端120_1,包含客户端120_1产生的编辑命令及服务器更版计数器的最新值,使得客户端120_1可据以侦测是否发生命令冲突(步骤S537)。于此可了解的是,即使于步骤S511前客户端120_1及服务器110间的更版计数器已经同步过,但是,于步骤S511及步骤S531之间,服务器110可能接收到其他客户端120_2至120_n中的至少一者传来的编辑命令,使得步骤S533中产生的服务器更版计数器的最新值大于步骤S513中产生的客户端更版计数器的最新值。换句话说,当侦测到回复的服务器更版计数器的最新值大于步骤S513中相应于编辑命令的客户端更版计数器的值时,客户端120_1判定发生命令冲突。当侦测到回复的服务器更版计数器的最新值等于步骤S513中相应于编辑命令的客户端更版计数器的值时,客户端120_1判定没有发生命令冲突。
客户端120_1接收回复后(步骤S515),判断相应于编辑命令的客户端更版计数器的值是否相符于回复中的服务器更版计数器的值(步骤S516)。如果相符,代表没有发生命令冲突,客户端120_1等待下一个使用者编辑电子文件的信号(步骤S511)。如果不相符,代表发生命令冲突,执行冲突化解程序(步骤S517至S520)。客户端120_1可搜寻记忆体350中的映射表来取得相应于编辑命令的客户端更版计数器的值。于冲突化解程序中,详细来说,客户端120_1取消(undo)先前执行过的编辑命令(步骤S517),依据服务器更版计数器的值顺序地执行服务器110转送给客户端120_1的编辑命令(步骤S518),重新执行编辑命令(步骤S519),以及将记忆体350中的客户端更版计数器设定为同步请求中服务器更版计数器的值(步骤S520)。步骤S517中的取消编辑命令是清除此电子文件的最后一次改变或将此电子文件回复至前一个状态。换句话说,取消编辑命令回复步骤S212中对此电子文件执行过的上一个编辑命令。熟悉此技艺人士可理解的是,冲突化解程序令客户端120_1在执行步骤S512产生的编辑命令前,依据服务器更版计数器的值插入执行其他客户端产生的编辑命令,用以让所有客户端120_1至120_n间的编辑命令执行顺序一致。服务器110转送给客户端120_1的编辑命令可依据同步请求中服务器更版计数器的值由小至大推入到先进先出队列(FIFO,First-In-First-Out queue),并且于步骤S518中依序取出并执行。
以下举出数个使用个案(use cases),说明此方法如何同步所有客户端120_1至120_n间的编辑命令执行顺序。图6是依据本发明实施例的信息交换图。
使用个案C1描述客户端120_1启动时的处理:于时间点t1,服务器110中的服务器更版计数器rev_s为“13”。当客户端120_1启动时,客户端120_1及服务器110执行如图4所示的初始化作业。当初始化作业完成时,于时间点t2,客户端120_1中的客户端更版计数器rev_c1设定为13。
使用个案C2描述使用者透过客户端120_1的人机界面编辑试算表时的处理:图7是依据本发明实施例的试算表画面的示意图。客户端120_1的显示单元320显示试算表700。参考图5A及图5B。使用者透过客户端120_1的人机界面将试算表700的存储格B1设为公式“=A1+1”后(步骤S511),客户端120_1产生并执行试算表的相应编辑命令“B1=A1+1”(步骤S512)。于时间点t3,客户端120_1将客户端更版计数器rev_c1加一,成为“14”(步骤S513),接着,传送同步请求“Req:Set B1=A1+1(rev_c1=14)”给服务器110,包含试算表的编辑命令“Set B1=A1+1”及客户端更版计数器rev_c1的最新值“14”。服务器110接收到同步请求后(步骤S531),于时间点t4,将服务器更版计数器rev_s加一,成为“14”(步骤S533)。接着,服务器110转送同步请求“Fwd:Set B1=A1+1(rev_s=14)”给其他客户端120_2至120_n,包含试算表的编辑命令“Set B1=A1+1”及服务器更版计数器rev_s的最新值“14”(步骤S535),以及回复认可信息“Ack:Set B1=A1+1(rev_s=14)”给客户端120_1,包含编辑命令“Set B1=A1+1”及服务器更版计数器rev_s的最新值“14”(步骤S537)。客户端120_2至120_n中的每一者从服务器110接收同步请求后(步骤S551),执行同步请求中的编辑命令(步骤S553),并且,于时间点t5,将客户端更版计数器rev_c2设定为“14”(步骤S555)。于一些实施例中,同步请求可为“Req:Set B1=A1+1(rev_c1=14)(res=6)”,而转送的同步请求可为“Fwd:Set B1=A1+1(rev_c1=14)(res=6)”,二者还包含编辑命令的执行结果res为“6”,使得客户端120_2至120_n中的每一者可直接取得执行结果,而不需要执行编辑命令“B1=A1+1”。客户端120_1从服务器110接收到认可信息后(步骤S515),发现认可信息中服务器更版计数器rev_s的值“14”与相应于编辑命令“Req:Set B1=A1+1”的客户端更版计数器rev_c1的值“14”相符,判定没有发生命令冲突(步骤S516中“是”的路径)。
使用个案C3描述二个使用者分别透过客户端120_1及120_2的人机界面编辑试算表而产生命令冲突时的处理:图8A及图8B是依据本发明实施例的试算表画面的示意图。客户端120_1的显示单元320显示试算表810,而客户端120_2的显示单元320显示试算表820。使用者透过客户端120_2的人机界面将试算表820的存储格A2设为“6”后,客户端120_2产生并执行试算表的相应编辑命令“A2=6”。于时间点t6,客户端120_2将客户端更版计数器rev_c2加一,成为“15”,接着,传送同步请求“Req:Set A2=6(rev_c2=15)”给服务器110,包含试算表的编辑命令“Set A2=6”及客户端更版计数器rev_c2的最新值“15”。参考图5A及图5B。使用者透过客户端120_1的人机界面将试算表810的存储格C1设为公式“=A1+B1”后(步骤S511),客户端120_1产生并执行试算表的相应编辑命令“C1=A1+B1”(步骤S512)。于时间点t7,客户端120_1将客户端更版计数器rev_c1加一,成为“15”(步骤S513),接着,传送同步请求“Req:Set C1=A1+B1(rev_c1=15)”给服务器110,包含试算表的编辑命令“SetC1=A1+B1”及客户端更版计数器rev_c1的最新值“15”(步骤S514)。
然而,服务器110从客户端120_2接收到同步请求“Req:Set A2=6(rev_c2=15)”的时间点早于从客户端120_1接收到同步请求“Req:Set C1=A1+B1(rev_c2=15)”的时间点。服务器110接收到同步请求“Req:Set A2=6(rev_c2=15)”后,于时间点t8,将服务器更版计数器rev_s加一,成为“15”。接着,服务器110转送同步请求“Fwd:Set A2=6(rev_s=15)”给客户端120_1、120_3至120_n,包含试算表的编辑命令“Set A2=6”及服务器更版计数器rev_s的最新值“15”,以及回复认可信息“Ack:Set A2=6(rev_s=15)”给客户端120_2,包含编辑命令“Set A2=6”及服务器更版计数器rev_s的最新值“15”。
客户端120_1接收到同步请求“Fwd:Set A2=6(rev_s=15)”后,由于还未收到相应于同步请求“Req:Set C1=A1+B1(rev_c1=15)”的认可信息,先存储编辑命令“Set A2=6”于记忆体350。
服务器110回复认可信息“Ack:Set A2=6(rev_s=15)”给客户端120_2后,于时间点t9,将服务器更版计数器rev_s加一,成为“16”(步骤S533)。接着,服务器110转送同步请求“Fwd:Set C1=A1+B1(rev_s=16)”给其他客户端120_2至120_n,包含试算表的编辑命令“Set C1=A1+B1”及服务器更版计数器rev_s的最新值“16”(步骤S535),以及回复认可信息“Ack:Set C1=A1+B1(rev_s=16)”给客户端120_1,包含编辑命令“Set C1=A1+B1”及服务器更版计数器rev_s的最新值“16”(步骤S537)。于一些实施例中,同步请求可为“Req:SetC1=A1+B1(rev_c1=15)(res=11)”,而转送的同步请求可为“Fwd:Set C1=A1+B1(rev_c1=15)(res=11)”,二者还包含编辑命令的执行结果res为“11”,使得客户端120_2至120_n中的每一者可直接取得执行结果,而不需要执行编辑命令“Set C1=A1+B1”。
客户端120_1从服务器110接收到认可信息后(步骤S515),发现认可信息中服务器更版计数器rev_s的值“16”与相应于编辑命令“Set C1=A1+B1”的客户端更版计数器rev_c1的值“15”不相符,判定发生命令冲突(步骤S516中“否”的路径)。客户端120_1取消先前执行过的编辑命令“Set C1=A1+B1”(步骤S517)。执行服务器110转送给客户端120_1的编辑命令“Set A2=6”后(步骤S518),重新执行编辑命令“Set C1=A1+B1”(步骤S519),以及,于时间点t10,将客户端更版计数器rev_c1设定为认可信息中服务器更版计数器rev_s的最新值“16”(步骤S520)。
虽然图2至图3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图5A至图5B的方法流程图采用特定的顺序来执行,但是在不违反发明精神的情况下,熟悉此技艺人士可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉此技艺人士显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (20)
1.一种协同工作方法,其特征在于,由处理单元载入并执行客户端的程序码时实施,包含:
透过人机界面接收使用者编辑电子文件的信号;
产生并执行相应于所述信号的第一编辑命令;
将客户端更版计数器加一;
传送同步请求给服务器,其中,所述同步请求包含所述第一编辑命令;
从所述服务器接收认可信息,其中,所述认可信息包含所述第一编辑命令及服务器更版计数器的值;以及
当相应于所述第一编辑命令的所述客户端更版计数器的值与所述服务器更版计数器的值不相符时,判定发生命令冲突及执行冲突化解程序,用以让所有客户端间的编辑命令的执行顺序一致。
2.根据权利要求1所述的协同工作方法,其特征在于,所述冲突化解程序还包含:
取消先前执行过的所述第一编辑命令;
执行从所述服务器转送来的第二编辑命令;以及
重新执行所述第一编辑命令。
3.根据权利要求2所述的协同工作方法,其特征在于,所述冲突化解程序还包含:
将所述客户端更版计数器的值更新为所述服务器更版计数器的值。
4.根据权利要求1所述的协同工作方法,其特征在于,所述同步请求还包含所述第一编辑命令的执行结果。
5.根据权利要求1所述的协同工作方法,其特征在于,还包含:
当相应于所述第一编辑命令的所述客户端更版计数器的值与所述服务器更版计数器的值相符时,判定没有发生命令冲突。
6.根据权利要求1所述的协同工作方法,其特征在于,所述电子文件为试算表、绘图或行事历。
7.一种协同工作方法,其特征在于,由处理单元载入并执行服务器的程序码时实施,包含:
从第一客户端接收到第一同步请求,其中,所述第一同步请求包含编辑命令;
将服务器更版计数器加一;
转送第二同步请求给第二客户端,其中,所述第二同步请求包含所述编辑命令及所述服务器更版计数器的值;以及
回复认可信息给所述第一客户端,其中,所述认可信息包含所述编辑命令及所述服务器更版计数器的值。
8.根据权利要求7所述的协同工作方法,其特征在于,还包含:
接收到所述第一同步请求前,从所述第一客户端接收初始化请求;以及
回复所述服务器更版计数器的值给所述第一客户端,使得所述第一客户端将所述客户端更版计数器的值更新为所述回复的服务器更版计数器的值。
9.根据权利要求7所述的协同工作方法,其特征在于,所述第一同步请求及所述第二同步请求还包含所述编辑命令的执行结果。
10.一种协同工作系统,其特征在于,包含:
服务器装置,包含:第一记忆体,存储服务器更版计数器的值;
第一处理单元,从第一客户端接收到第一同步请求,其中,所述第一同步请求包含第一编辑命令;将所述服务器更版计数器加一;转送第二同步请求给第二客户端,其中,所述第二同步请求包含所述第一编辑命令及所述服务器更版计数器的值;以及回复认可信息给所述第一客户端,其中,所述认可信息包含所述第一编辑命令及所述服务器更版计数器的值。
11.根据权利要求10所述的协同工作系统,其特征在于,所述第一处理单元接收到所述第一同步请求前,从所述第一客户端接收初始化请求;以及回复所述服务器更版计数器的值给所述第一客户端,使得所述第一客户端将所述客户端更版计数器的值更新为所述回复的服务器更版计数器的值。
12.根据权利要求10所述的协同工作系统,其特征在于,所述第一同步请求及所述第二同步请求还包含所述编辑命令的执行结果。
13.根据权利要求10所述的协同工作系统,其特征在于,所述服务器装置还包含:
第一通信接口,
其中,所述第一处理单元透过所述第一通信接口从所述第一客户端接收所述第一同步请求;以及透过所述第一通信接口回复所述认可信息给所述第一客户端。
14.根据权利要求10所述的协同工作系统,其特征在于,所述第一处理单元透过处理间通信从所述第一客户端接收所述第一同步请求;以及透过所述处理间通信回复所述认可信息给所述第一客户端。
15.根据权利要求10所述的协同工作系统,其特征在于,还包含:
客户端装置,包含:第二记忆体,存储客户端更版计数器的值;
第二处理单元,透过人机界面接收使用者编辑电子文件的信号;产生并执行相应于所述信号的所述第一编辑命令;将所述客户端更版计数器加一;传送所述第一同步请求给所述服务器装置;从所述服务器装置接收所述认可信息;以及当相应于所述第一编辑命令的所述客户端更版计数器的值与所述服务器更版计数器的值不相符时,判定发生命令冲突及执行冲突化解程序,用以让所有客户端间的编辑命令的执行顺序一致。
16.根据权利要求15所述的协同工作系统,其特征在于,所述冲突化解程序还包含:
取消先前执行过的所述第一编辑命令;
执行从所述服务器装置转送来的第二编辑命令;以及
重新执行所述第一编辑命令。
17.根据权利要求16所述的协同工作系统,其特征在于,所述冲突化解程序还包含:
将所述客户端更版计数器的值更新为所述服务器更版计数器的值。
18.根据权利要求10所述的协同工作系统,其特征在于,所述第一同步请求及所述第二同步请求还包含所述第一编辑命令的执行结果。
19.根据权利要求15所述的协同工作系统,其特征在于,当相应于所述第一编辑命令的所述客户端更版计数器的值与所述服务器更版计数器的值相符时,所述第二处理单元判定没有发生命令冲突。
20.根据权利要求15所述的协同工作系统,其特征在于,所述电子文件为试算表、绘图或行事历。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710341859.2A CN108876275A (zh) | 2017-05-16 | 2017-05-16 | 协同工作方法以及使用该方法的系统 |
US15/959,462 US20180337988A1 (en) | 2017-05-16 | 2018-04-23 | Methods for working collaboratively and systems using the same |
EP18172560.7A EP3404543A1 (en) | 2017-05-16 | 2018-05-16 | Methods for working collaboratively and systems using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710341859.2A CN108876275A (zh) | 2017-05-16 | 2017-05-16 | 协同工作方法以及使用该方法的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108876275A true CN108876275A (zh) | 2018-11-23 |
Family
ID=62528214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710341859.2A Withdrawn CN108876275A (zh) | 2017-05-16 | 2017-05-16 | 协同工作方法以及使用该方法的系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180337988A1 (zh) |
EP (1) | EP3404543A1 (zh) |
CN (1) | CN108876275A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111428453A (zh) * | 2019-12-31 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 批注同步过程中的处理方法、装置以及系统 |
CN113099130A (zh) * | 2021-04-15 | 2021-07-09 | 北京字节跳动网络技术有限公司 | 协同视频处理方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612380B2 (en) * | 2009-05-26 | 2013-12-17 | Adobe Systems Incorporated | Web-based collaboration for editing electronic documents |
US9953036B2 (en) * | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9503402B2 (en) * | 2014-08-18 | 2016-11-22 | Dropbox, Inc. | Managing drafts of electronic documents across client devices |
US20160321226A1 (en) * | 2015-05-01 | 2016-11-03 | Microsoft Technology Licensing, Llc | Insertion of unsaved content via content channel |
-
2017
- 2017-05-16 CN CN201710341859.2A patent/CN108876275A/zh not_active Withdrawn
-
2018
- 2018-04-23 US US15/959,462 patent/US20180337988A1/en not_active Abandoned
- 2018-05-16 EP EP18172560.7A patent/EP3404543A1/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111428453A (zh) * | 2019-12-31 | 2020-07-17 | 杭州海康威视数字技术股份有限公司 | 批注同步过程中的处理方法、装置以及系统 |
CN111428453B (zh) * | 2019-12-31 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 批注同步过程中的处理方法、装置以及系统 |
CN113099130A (zh) * | 2021-04-15 | 2021-07-09 | 北京字节跳动网络技术有限公司 | 协同视频处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180337988A1 (en) | 2018-11-22 |
EP3404543A1 (en) | 2018-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019279B (zh) | 在线文档的协同更新方法、装置、设备及存储介质 | |
EP3595243B1 (en) | Email integration with shared folder based integrated workspaces | |
KR101750429B1 (ko) | 공동 편집을 위한 문서 편집 시스템 및 방법 | |
CN103765420B (zh) | 用于在应用的后台对动作进行同步的系统和方法 | |
AU2014348821B2 (en) | Location-based software updates | |
US8549093B2 (en) | Updating a user session in a mach-derived system environment | |
AU2018348339A1 (en) | Visual blockchain browser | |
CN103268351B (zh) | 一种数据同步方法和设备 | |
WO2013109552A1 (en) | Presence-based synchronization | |
CN104965637B (zh) | 一种界面操作的实现方法及装置 | |
EP2115627B1 (en) | Synchronization methods and systems | |
CN101924779A (zh) | 浏览器客户端共享资源的方法、设备及系统 | |
US10721084B2 (en) | Providing a private mode in asynchronous collaboration for a synchronous collaboration environment | |
CN112667585A (zh) | 在线文档的同步管理方法、装置及设备 | |
CN109729189A (zh) | 用于配置域名的方法和装置 | |
CN110019346A (zh) | 一种基于双主数据库的数据处理方法和装置 | |
US20180096273A1 (en) | Managing projects in a content management system | |
CN108876275A (zh) | 协同工作方法以及使用该方法的系统 | |
US20100211543A1 (en) | Synchronizing metadata and document content across client systems using different communication channels | |
US11080243B2 (en) | Synchronizing virtualized file systems | |
Shen et al. | Achieving data consistency by contextualization in web-based collaborative applications | |
CN107800501A (zh) | 一种时间同步方法、装置及系统 | |
CN112559194A (zh) | 应用数据的处理方法、装置及设备 | |
US11558207B2 (en) | Method and apparatus for starting up blockchain system, and non-transitory computer-readable storage medium | |
CN110471697A (zh) | 配置方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181123 |