CN110888845B - 协同编辑文件及监控文件操作的方法和系统 - Google Patents
协同编辑文件及监控文件操作的方法和系统 Download PDFInfo
- Publication number
- CN110888845B CN110888845B CN201911159034.4A CN201911159034A CN110888845B CN 110888845 B CN110888845 B CN 110888845B CN 201911159034 A CN201911159034 A CN 201911159034A CN 110888845 B CN110888845 B CN 110888845B
- Authority
- CN
- China
- Prior art keywords
- file
- entity
- collaborative editing
- collaborative
- editing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种协同编辑文件的方法和系统,将本地和在线编辑文件的场景进行区分,本地编辑文件过程中采用占用并通知的方式应对协同编辑的请求,并将协同编辑的各方引导至在线模式以并行地进行编辑。这样既能够在用户本地避免产生内容冲突及内容丢失,也不需要将冲突内容另存为新的版本,又可以通过在线平台并行操作,兼顾了本地和在线、顺序和并行操作等各方面的优点。
Description
技术领域
本申请涉及计算机及互联网领域,尤其涉及一种基于本地操作系统及在线网络平台的对文件操作进行监控和协同的方法和系统。
背景技术
从文件处理的角度来看,在日常工作和生活中,经常需要多方合作来处理或操作同一个文件,就需要有相应的合作及处理机制,以免产生错误或混乱。
在多方协同编辑同一个文件的过程中,一种处理机制是各方按照某种顺序依次对该文件进行操作,在同一时间只有其中的一个用户或实体进行操作,待操作完成后将该文件释放,下一个用户或实体再接手继续进行操作。这种方式类似于流水线作业,在网络环境中一般是通过占用并通知的方式,在各方之间传递操作权限并更新文件版本。例如,用户主动锁定正在编辑的文件,以阻止其他用户同时对该文件进行修改,直到锁定文件的用户编辑完成后,主动解锁文件,其他用户方可编辑该文件。这种方式虽然可以避免产生内容冲突,但整体效率较低,在一方操作时其他各方均需要等待,无法体现出多方协同合作的优势。并且,如果正在操作的一方因为某种原因而导致无法及时或正确地释放该文件,则会导致整体进程停滞。
另一种处理机制则是希望各方能够并行地对文件进行操作,在同一时间允许多个用户或实体并行地对同一个文件进行各自的操作。但这种方式就需要解决内容冲突及内容丢失的问题。如果多位用户在同一时间段内对同一文件进行编辑,较难以获知他人的编辑进展,就会产生内容冲突。在多位用户都尝试将修改的内容保存或更新至原始文件时,就需要进行引导,以帮助各方各自保存自己的修改内容并获取文件的最新版本。一种方法是通过竞争的方式获得优先的操作权限,在发生内容冲突时,先打开或先保存的一方能够以自己的版本更新文件,而其他各方接受更新后,对于冲突的内容选择另行保存。
发明内容
发明人经过长期的观察和实验发现,现有技术依然存在以下问题:
(1)通过竞争的方式获得对文件的操作权限,使得编辑文件的各方都难以预知或判断自身对文件所进行操作的有效性,例如在编辑文件时难以确定自己所修改的内容是否能够成功保存。实际上,这种方式并无法避免内容冲突,只是在发生内容冲突时根据某种规则选择其一并丢弃其他。而对于未能成功保存的内容(即内容冲突中被丢弃一方所修改的内容),虽然可以选择另行保存,但一方面增加了新的版本,又提升了版本控制的难度;另一方面,对于这些未能成功保存的内容,后续很可能还要通过其他方式保存或更新至文件中,例如再重新修改并保存,这样不仅重复劳动,增加了工作量,用户体验也较差。
例如在一些场景中,文件的编辑者之间缺乏有效的协调引导机制,通过竞争对编辑内容的保存速度,来决定谁可以将自己的编辑内容更新到原始文件中,形成新版本。即使最先开始编辑的用户,若没有及时保存,也只能让位于后来者,并将自己的内容另存为冲突版本。
(2)在线编辑平台(云端)的出现也引发了新的问题。当有用户在线打开并编辑文件时,其他用户仍然可以使用本地用用程序编辑文档,并和在线文件编辑的内容之间相互产生影响。例如:在线编辑的用户未得到提示的情况下,使用本地应用程序的用户编辑的内容可以直接覆盖在线用户编辑的内容,打断在线编辑用户的正常工作进程;以及每当在线编辑的用户保存一次,使用本地应用程序编辑的用户便会收到一次版本更新提示,需要将自己的编辑内容放弃或另行保存。
(3)通常是基于本地文件编辑应用程序的内部接口或机制进行协同,支持的文件格式受限,通用性较差。例如,绝大部分仅支持Microsoft Office套装内的本地应用程序,其他应用程序打开和编辑的文件若有多人协同需求,则无法进行通知和引导。
(4)仅能对纳入同步范围的文件进行操作,无法处理同步范围之外的文件。例如:需要事先将文件放入同步文件夹中,或者将文件设定或标记为同步文件,而既不能监控也不能操作那些不在文件夹内或者没有同步标记的其他文件。
发明人通过不懈地研究和实践,发现现有技术中存在的问题主要有以下原因:
(1)没有对本地和在线编辑文件的场景进行有效的区分,从而导致在发生内容冲突时难以找到较为合理的方式来进行引导或解决。
(2)基于本地文件编辑应用程序的内部接口或机制来设计协同编辑方案,虽然实现起来难度较小,但受限较大,通用性较差,只能应用于应用程序本身支持的文件格式及兼容的操作系统,是否能够跨平台操作也受制于应用程序本身是否具有跨平台的功能。
有鉴于现有技术的上述缺陷,本申请提供一种协同编辑文件的方法和系统,将本地和在线编辑文件的场景进行区分,本地编辑文件过程中采用占用并通知的方式应对协同编辑的请求,并将协同编辑的各方引导至在线模式以并行地进行编辑。这样既能够在用户本地避免产生内容冲突及内容丢失,也不需要将冲突内容另存为新的版本,又可以通过在线平台并行操作,兼顾了本地和在线、顺序和并行操作等各方面的优点。
需要说明的是,多方对同一个文件进行共享、同步及协同编辑,各方本地的操作系统或存储器中均会保存有该文件的本地版本,在服务端(或称为在线平台、云端)上也会保存该文件的在线版本,通过共享及同步机制,该文件的各个本地版本和在线版本的内容会保存为一致。因此,在本申请中,默认将该文件的本地版本和在线版本统称为该文件,即可以包括该文件的本地版本和在线版本中的任意一个或多个,除非加以明确的指示或区分。此外,除非另有指示,本申请中本地操作文件,是指对保存在该客户端(或称为设备、用户设备)处的该文件的本地版本进行打开、查看、编辑、保存、传输、标记等各类操作;类似的,本申请中在线操作文件,是指对保存在服务端的该文件的在线版本进行打开、查看、编辑、保存、传输、标记等各类操作。
本申请还提供一种监控文件操作的方法和系统,基于操作系统本身的系统事件对文件的操作进行监控,从中获取相关的各种信息和数据,并触发或执行相应地操作,从而摆脱了应用程序的限制,能够支持各种文件格式。并且本申请的技术方案所采用的方法是通用的,从操作系统本身的系统事件所获取的信息和数据(比如文件打开窗口的坐标)也都是主流操作系统均能够提供的基本信息,因此能够跨平台(跨操作系统)使用,通用性较好。
此外,本申请的协同编辑文件的方法及系统与监控文件操作的方法及系统能够结合在一起使用,从而提供面向各种文件格式和各种操作系统的通用的解决方案。例如:通过监控文件的打开和关闭操作,相应地对文件进行锁定和解锁,并对协同编辑的各方进行通知和引导;以及通过对文件打开窗口的定位和设置,在文件打开窗口区域中向用户提供针对性的通知消息等。
一方面,本申请提供一种协同编辑文件的方法,包括:当第二实体打开已被第一实体锁定的文件时,向第二实体提供加入协同编辑的操作选择;响应于第二实体接受加入协同编辑,如果文件未处于协同编辑模式,则向第一实体提供切换编辑模式的操作选择;响应于第一实体接受切换至协同编辑模式,在第一实体处对文件进行处理以将第一实体切换至协同编辑模式;将第二实体加入协同编辑;以及在协同编辑模式下,处理第一实体和第二实体对文件的编辑操作。
在一些实施例中,可选的,响应于第二实体接受加入协同编辑,如果文件已处于协同编辑模式,则将第二实体加入协同编辑。
在一些实施例中,可选的,在协同编辑模式下,第一实体和第二实体均在线打开文件。
在一些实施例中,可选的,在第二实体本地打开已被第一实体锁定的文件的情况下,将第二实体加入协同编辑包括:在第二实体处对文件进行处理以将第二实体切换至协同编辑模式。
在一些实施例中,可选的,在第二实体本地打开已被第一实体锁定的文件的情况下,在第二实体处对文件进行处理包括:在第二实体处切换为在线打开文件。
在一些实施例中,可选的,在第二实体打开已被第一实体本地锁定的文件的情况下,在第一实体处对文件进行处理包括:在第一实体本地保存并关闭文件后,在第一实体处在线打开文件。
在一些实施例中,可选的,在第一实体本地保存并关闭文件后,解锁文件,并将文件更新为本地保存的文件的最终版本;以及在第一实体处在线打开已更新的文件后,锁定文件。
在一些实施例中,可选的,在第一实体本地保存并关闭文件后,向第二实体提供由第一实体更新的文件的最终版本。
在一些实施例中,可选的,响应于第二实体不接受加入协同编辑,在第二实体处只读地打开文件。
在一些实施例中,可选的,响应于第二实体接受加入协同编辑,还向第一实体提供保存并关闭文件的操作选择。
在一些实施例中,可选的,响应于第一实体接受保存并关闭文件,在第一实体处保存并关闭文件;解锁文件,并将文件更新为第一实体保存的文件的最终版本;以及向第二实体提供由第一实体更新的文件的最终版本。
在一些实施例中,可选的,在第二实体获取由第一实体更新的文件的最终版本后,在第二实体处打开并锁定文件。
在一些实施例中,可选的,响应于第一实体不接受切换至协同编辑模式,在第一实体处保持原有状态,并向第二实体提供只读地打开文件的操作选择。
在一些实施例中,可选的,通过显示消息界面的方式向第一实体或第二实体提供各种操作选择。
在一些实施例中,可选的,如果文件的打开窗口为当前活动窗口,则将消息界面显示在打开窗口区域内;以及如果文件的打开窗口为非当前活动窗口,则通过操作系统的系统通知区域提供消息界面。
在一些实施例中,可选的,在打开窗口区域内显示消息界面时,消息界面位于打开窗口区域内的预设位置,其中,预设位置被配置为能够根据打开窗口的窗口边界坐标来确定。
在一些实施例中,可选的,当打开窗口移动或改变形状时,消息界面被配置为能够根据打开窗口的变化相应地进行移动或变化,以使得消息界面保持在打开窗口区域内的预设位置;或者当打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着打开窗口的变化而相应地关闭、最小化或进行切换。
在一些实施例中,可选的,当第一实体锁定文件时,建立与文件相对应的频道,其中,频道被配置为能够接受第二实体的订阅以使得第二实体成为频道的订阅者,从而将第二实体加入协同编辑。
在一些实施例中,可选的,第一实体定时发送心跳信号。
在一些实施例中,可选的,如果超过心跳阈值还未接收到来自第一实体的心跳信号,则执行以下一种或多种操作:关闭与第一实体的连接;向由第一实体建立的频道的订阅者发送广播消息;向订阅者提供由第一实体保存的文件的最终版本;向订阅者提供处理文件的操作选择;以及关闭频道的订阅者。
在一些实施例中,可选的,向订阅者提供处理文件的操作选择包括以下一种或多种操作:保存并关闭订阅者处的文件;放弃并关闭订阅者处的文件;根据接收到的由第一实体保存的文件的最终版本,在订阅者处更新并保存文件;以及在订阅者处另行保存接收到的由第一实体保存的文件的最终版本。
另一方面,本申请还提供一种协同编辑文件的系统,包括服务端和客户端,每个客户端与服务端通信连接,其中:当第二实体打开已被第一实体锁定的文件时,第二实体处的客户端被配置为能够向第二实体提供加入协同编辑的操作选择,并响应于第二实体接受加入协同编辑,能够向服务端发送加入协同编辑的请求;如果文件未处于协同编辑模式,服务端被配置为能够在接收到来自第二实体的加入协同编辑的请求之后,通过第一实体的客户端发送切换编辑模式的操作选择;第一实体的客户端被配置为能够响应于第一实体接受切换至协同编辑模式,在第一实体处对文件进行处理以将第一实体切换至协同编辑模式,并通过服务端向第二实体处的客户端反馈接受协同编辑请求的消息;第二实体处的客户端被配置为能够在接收到来自第一实体的接受协同编辑请求的消息之后,将第二实体切换至协同编辑模式;以及服务端进一步被配置为能够在协同编辑模式下,处理第一实体和第二实体对文件的编辑操作。
在一些实施例中,可选的,如果文件已处于协同编辑模式,服务端被配置为能够在接收到来自第二实体的加入协同编辑的请求之后,将第二实体加入协同编辑。
在一些实施例中,可选的,在协同编辑模式下,第一实体和第二实体均在线打开保存在服务端的文件。
在一些实施例中,可选的,在第二实体本地打开已被第一实体锁定的文件的情况下,第二实体的客户端被配置为能够在第二实体处切换为在线打开保存在服务端的文件,以将第二实体切换至协同编辑模式。
在一些实施例中,可选的,在第二实体打开已被第一实体本地锁定的文件的情况下,第一实体的客户端被配置为能够在第一实体本地保存并关闭文件后,在线打开保存在服务端的文件。
在一些实施例中,可选的,在第一实体本地保存并关闭文件后,第一实体的客户端被配置为能够解锁文件,并向服务端提供由第一实体保存的文件的最终版本;以及服务端被配置为能够在第一实体在线打开保存在服务端的文件之后,锁定文件。
在一些实施例中,可选的,服务端被配置为能够接收并向第二实体提供由第一实体保存的文件的最终版本。
在一些实施例中,可选的,第二实体的客户端被配置为能够响应于第二实体不接受加入协同编辑,只读地打开文件。
在一些实施例中,可选的,第一实体的客户端被配置为能够响应于第二实体接受加入协同编辑,向第一实体提供保存并关闭文件的操作选择。
在一些实施例中,可选的,第一实体的客户端被配置为能够响应于第一实体接受保存并关闭文件,保存、关闭并解锁文件,以及向服务端提供由第一实体保存的文件的最终版本;以及服务端被配置为能够接收并向第二实体提供由第一实体保存的文件的最终版本。
在一些实施例中,可选的,第二实体的客户端被配置为能够在获取由第一实体更新的文件的最终版本后,打开并锁定文件。
在一些实施例中,可选的,服务端被配置为能够响应于第一实体不接受切换至协同编辑模式,通过第二实体的客户端向第二实体提供只读地打开文件的操作选择。
在一些实施例中,可选的,客户端被配置为能够通过显示消息界面的方式提供各种操作选择。
在一些实施例中,可选的,客户端被配置为能够当文件的打开窗口为当前活动窗口时,将消息界面显示在打开窗口区域内;以及当文件的打开窗口为非当前活动窗口时,通过操作系统的系统通知区域提供消息界面。
在一些实施例中,可选的,在打开窗口区域内显示消息界面时,消息界面位于打开窗口区域内的预设位置,其中,预设位置被配置为能够根据打开窗口的窗口边界坐标来确定。
在一些实施例中,可选的,当打开窗口移动或改变形状时,消息界面被配置为能够根据打开窗口的变化相应地进行移动或变化,以使得消息界面保持在打开窗口区域内的预设位置;或者当打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着打开窗口的变化而相应地关闭、最小化或进行切换。
另一方面,本申请还提供一种监控文件操作的方法,包括:监测操作系统中的系统事件;从系统事件中筛选出与监控目标相关的操作记录;以及从操作记录中获取与监控目标相关的操作信息。
在一些实施例中,可选的,根据预设条件从系统事件中筛选出与监控目标相关的操作记录,其中,预设条件包括以下一个或多个:文件类型、文件路径、操作类型、操作文件的应用程序。
在一些实施例中,可选的,根据操作信息执行相应的处理动作,其中,操作信息包括以下一个或多个:文件类型、操作类型、操作文件的应用程序、文件名、文件状态、文件路径、文件打开窗口信息。
在一些实施例中,可选的,文件打开窗口信息包括以下一个或多个:窗口标题、窗口边界坐标、窗口所处区域、窗口显示层级、窗口显示方式。
在一些实施例中,可选的,处理动作包括提供消息界面以向用户推送相应的信息;其中,如果文件打开窗口为当前活动窗口,则将消息界面显示在文件打开窗口区域内;以及如果文件打开窗口为非当前活动窗口,则通过操作系统的系统通知区域提供消息界面。
在一些实施例中,可选的,消息界面中的内容包括当前可执行的操作选择。
在一些实施例中,可选的,在文件打开窗口区域内显示消息界面时,消息界面位于文件打开窗口区域内的预设位置,其中,预设位置被配置为能够根据文件打开窗口的窗口边界坐标来确定。
在一些实施例中,可选的,当文件打开窗口移动或改变形状时,消息界面被配置为能够根据文件打开窗口的变化相应地进行移动或变化,以使得消息界面保持在文件打开窗口区域内的预设位置;或者当文件打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着文件打开窗口的变化而相应地关闭、最小化或进行切换。
在一些实施例中,可选的,如果操作类型为打开文件,则锁定目标文件;以及如果操作类型为关闭文件,则解锁目标文件。
在一些实施例中,可选的,锁定目标文件包括:上报针对目标文件的锁定请求;以及更新目标文件在其他实体处的文件状态。
在一些实施例中,可选的,更新目标文件在其他实体处的文件状态包括:在服务端锁定目标文件;向存有目标文件的实体下发锁定指令;以及在存有目标文件的实体处为目标文件添加锁定标记。
在一些实施例中,可选的,上报针对目标文件的解锁请求和目标文件的最终版本;以及更新目标文件在其他实体处的文件状态和文件内容。
在一些实施例中,可选的,更新目标文件在其他实体处的文件状态和文件内容包括:在服务端解锁目标文件,并将目标文件的文件内容更新为目标文件的最终版本;向存有目标文件的实体下发解锁指令并提供目标文件的最终版本;以及在存有目标文件的实体处为目标文件去除锁定标记,并选择将目标文件的文件内容更新为目标文件的最终版本或者放弃更新。
另一方面,本申请还提供一种监控文件操作的系统,包括:系统监测模块,系统监测模块被配置为能够监测操作系统中的系统事件;记录筛选模块,记录筛选模块被配置为能够从系统事件中筛选出与监控目标相关的操作记录;以及信息提取模块,信息提取模块被配置为能够从操作记录中获取与监控目标相关的操作信息。
在一些实施例中,可选的,记录筛选模块被配置为能够根据预设条件从系统事件中筛选出与监控目标相关的操作记录,其中,预设条件包括以下一个或多个:文件类型、文件路径、操作类型、操作文件的应用程序。
在一些实施例中,可选的,还包括:信息处理模块,信息处理模块被配置为能够根据操作信息执行相应的处理动作,其中,操作信息包括以下一个或多个:文件类型、操作类型、操作文件的应用程序、文件名、文件状态、文件路径、文件打开窗口信息。
在一些实施例中,可选的,文件打开窗口信息包括以下一个或多个:窗口标题、窗口边界坐标、窗口所处区域、窗口显示层级、窗口显示方式。
在一些实施例中,可选的,处理动作包括提供消息界面以向用户推送相应的信息;其中,信息处理模块被配置为能够当文件打开窗口为当前活动窗口时,将消息界面显示在文件打开窗口区域内;以及当文件打开窗口为非当前活动窗口时,通过操作系统的系统通知区域提供消息界面。
在一些实施例中,可选的,消息界面中的内容包括当前可执行的操作选择。
在一些实施例中,可选的,在文件打开窗口区域内显示消息界面时,消息界面位于文件打开窗口区域内的预设位置,其中,预设位置被配置为能够根据文件打开窗口的窗口边界坐标来确定。
在一些实施例中,可选的,当文件打开窗口移动或改变形状时,消息界面被配置为能够根据文件打开窗口的变化相应地进行移动或变化,以使得消息界面保持在文件打开窗口区域内的预设位置;或者当文件打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着文件打开窗口的变化而相应地关闭、最小化或进行切换。
在一些实施例中,可选的,如果操作类型为打开文件,信息处理模块被配置为能够锁定目标文件;以及如果操作类型为关闭文件,信息处理模块被配置为能够解锁目标文件。
在一些实施例中,可选的,信息处理模块进一步被配置为能够向服务端上报针对目标文件的锁定请求;以及服务端被配置为能够通过其他实体处的客户端更新目标文件在其他实体处的文件状态。
在一些实施例中,可选的,服务端进一步被配置为能够锁定目标文件,并向存有目标文件的实体下发锁定指令;以及存有目标文件的实体的客户端被配置为能够根据接收到的来自服务端的锁定指令,在本地为目标文件添加锁定标记。
在一些实施例中,可选的,信息处理模块进一步被配置为能够向服务端上报针对目标文件的解锁请求和目标文件的最终版本;以及服务端被配置为能够通过其他实体的客户端更新目标文件在其他实体处的文件状态和文件内容。
在一些实施例中,可选的,服务端进一步被配置为能够解锁目标文件,并将目标文件的文件内容更新为目标文件的最终版本,以及向存有目标文件的实体下发解锁指令并提供目标文件的最终版本;以及存有目标文件的实体的客户端被配置为能够根据接收到的来自服务端的解锁指令和目标文件的最终版本,在本地为目标文件去除锁定标记,并选择将目标文件的文件内容更新为目标文件的最终版本或者放弃更新。
另一方面,本申请还提供一种协同编辑文件的装置,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器被配置为能够在执行计算机程序时实现上述的协同编辑文件的方法的步骤。
另一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时能够实现上述的协同编辑文件的方法的步骤。
另一方面,本申请还提供一种监控文件操作的装置,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器被配置为能够在执行计算机程序时实现上述的监控文件操作的方法的步骤。
另一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时能够实现上述的监控文件操作的方法的步骤。
本申请的技术方案,相对于现有技术来说,至少具有以下优点:
(1)编辑者无论使用本地应用程序,还是在线(例如使用浏览器在云端)打开文件,都可以及时自动锁定文件,保证接下来的编辑顺利进行。
(2)当文件已被某个用户锁定,其他用户在打开文件时,即可从应用程序边缘的图形标记获得提示,避免修改完成后只能保存为冲突文件的情况发生。
(3)当多位用户需要协同编辑某个文档,可以根据图形标记的引导进行互动,选择依次进行本地编辑,或同时使用在线编辑。
(4)基于操作系统本身的系统事件进行监控和操作,不受文件格式和应用程序的限制,通用性较好,并且还能够跨平台使用。
以下将结合附图对本申请的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本申请的目的、特征和效果。
附图说明
当结合附图阅读以下详细说明时,本申请将变得更易于理解,在整个附图中,相同的附图标记代表相同的零件,其中:
图1为本申请中协同编辑文件系统的一个实施例的结构示意图。
图2为本申请中设备的一个实施例的模块示意图。
图3为本申请中在线平台的一个实施例的模块示意图。
图4A和图4B是本申请中文件协同编辑方法的一个实施例的流程示意图,分别对应编辑者接受或者不接受来自查看者的协同请求。
图5和图6是本申请中文件协同编辑方法的一个实施例的流程示意图,分别示出了在文件协同编辑的过程中查看者和编辑者相关的流程步骤。
图7是本申请中在打开窗口区域内显示消息界面的一个实施例的示意图。
图8是本申请中通过操作系统的系统通知区域提供消息界面的一个实施例的示意图。
图9A-9E是本申请中在相关实体具备协同编辑权限或功能的情况下,部分消息界面的一个实施例的示意图。
图10A-10D是本申请中在相关实体不具备协同编辑权限或功能的情况下,部分消息界面的一个实施例的示意图。
图11A-11D是本申请中在本地操作文件的情况下,部分消息界面的一个实施例的示意图。
图12A-12B是本申请中同一个用户打开在其他设备上已被自己锁定的文档时,部分消息界面的一个实施例的示意图。
图13是本申请中打开已被他人锁定的尚不能支持协同编辑的文档时,消息界面的一个实施例的示意图。
图14是本申请中计算机装置、设备或终端的一个实施例的内部结构示意图。
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。本申请可以通过许多不同形式的实施例来得以体现,本申请的保护范围并非仅限于文中提到的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本申请保护的范围。
下面将参考构成本说明书一部分的附图对本申请的各种具体实施方式进行描述。应该理解的是,虽然在本申请中使用表示方向的术语,诸如“前”、“后”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“正”、“反”、“近”、“远”、“横向”、“纵向”、“宽度方向”、“长度方向”、“高度方向”、“轴向”、“径向”、“顺时针方向”、“逆时针方向”等描述本申请的各种示例结构部分和元件,但是在此使用这些术语只是为了方便说明的目的,这些术语是基于附图中显示的示例性方位而确定的。由于本申请所公开的实施例可以按照不同的方向设置,所以这些表示方向的术语只是作为说明而不应视作为限制。
附图中所示出的每一部件的尺寸是任意示出的,本申请并没有限定每个部件的具体尺寸,除非在说明书和附图中有明确的记载或描述。为了使图示更清晰,附图中有些地方适当夸大了部件的尺寸或调整了相应的比例关系。
本申请中所使用的诸如“第一”和“第二”等序数词仅仅用于区分和标识,而不具有任何其他含义,如未特别指明则不表示特定的顺序,也不具有特定的关联性。例如,术语“第一部件”本身并不暗示“第二部件”的存在,术语“第二部件”本身也不暗示“第一部件”的存在。
图1为本申请中协同编辑文件系统的一个实施例的结构示意图。如图1所示,系统包括设备(或终端、装置、实体)100A、100B、100C(统称为设备100,也可称为客户端),在线平台(也可称为服务端、云端)110和网络120。在此出于说明的目的示出了三个设备,实际上系统可以包括任意数量的设备。类似地,为适用于实施例的需要,在本申请中描述和示出的其他模块或组件也可以包括单个或多个实例,并且不会失去一般性。
设备100可以是用于本地存储、查看、编辑文件(或内容项),并将文件与在线平台110及其他设备100同步的任何合适的计算机设备、手持式移动设备、平板计算机或其他计算设备。
每个设备100通过网络120与在线平台110通信。网络120可以是任何合适的网络,例如可以包括局域网、广域网、专用网、全球网络以及它们的任意组合。在一些实施例中,设备100经由有线或无线通信网络与本地网络服务提供商通信,并且通过互联网与在线平台110通信。设备100A、100B和100C可以通过在线平台110的中转在彼此之间通信,也可以通过网络120或其他通信网络(如图1中虚线所示)彼此直接通信,诸如经由蓝牙连接或经由通用串行总线(USB)的有线连接进行通信。
在线平台110为设备100的用户提供文件共享和同步服务,例如允许设备100A的用户与其他设备100B、100C的用户共享同一个文件。在线平台110还可以响应于共享文件内容的变化而进行更新,并允许跨多个设备100对共享文件进行同步更新。例如:根据设备100A处对该文件的本地修改,将设备100B、100C以及在线平台110处的该文件更新为设备100A处保存的该文件的最终(或最新)版本。类似的,也可以根据在线平台110处对该文件的在线修改,将设备100A、100B、100C处的该文件更新为在线平台110处保存的该文件的最终版本。
在一些实施例中,同一个用户可以在与该用户的账号相关联的多个设备100之间同步文件,并且该用户也可以在与其他用户的账户相关联的设备100之间共享和同步文件。
设备100和在线平台110存储的内容可以包括任何类型或格式的以数字化形式保存的数据或内容,例如数字数据、文档、多媒体(例如:图像、照片、视频、音频、流媒体等内容)、数据文件、数据库、源代码、目标代码、记录以及任何其他类型的数据或文件,在此统称为文件或内容项。在线平台110存储的文件还可以用于组织其他文件或内容项,例如文件夹、表、集合、专辑、播放列表、或用于其他数据库结构(例如:面向对象、键、值等)。在实践中,各种设备100可以基于账号的关联性及相应的权限等对不同组的文件进行同步。
图2为本申请中设备100的一个实施例的模块示意图。如图2所示,设备100包括操作系统210、本地文件协同程序240、浏览器230以及一个或多个本地应用程序220。本地应用程序220可以包括用于创建、查看、使用和修改存储在设备100上的文件的各种应用程序,例如文字处理程序、电子表格、数据库管理系统、代码编辑器、图像或视频编辑器、电子书阅读器、音频或视频播放器等。浏览器230可以是包括网页浏览器在内的各种用于在线查看、编辑或处理未存储在设备100本地(例如:存储于在线平台110或其他网络空间)的文件的应用程序,例如:网页浏览器、在线音视频播放器、在线阅读器、在线编辑器、以及内置有在线浏览功能的其他应用程序。本地文件协同程序240可以独立地或者与操作系统210、本地应用程序220、浏览器230等相配合,用于设备100本地文件的共享、同步、监控、协同等操作和处理,以执行和实现本申请提供各种协同编辑文件、监控文件操作等方法。每个设备100上的操作系统210提供本地文件管理系统,并运行各种软件模块,例如本地应用程序220、浏览器230以及本地文件协同程序240。
设备100还可以包括用于向用户提供信息的显示器,并且在某些设备100中包括触摸屏。设备100还可以包括用于经由网络120与在线平台110通信的网络接口。设备100还包括用户输入模块,用户输入模块可以从诸如键盘、鼠标、触控板或其他设备的各种用户输入设备接收用户输入。为了描述的简要,图中并未示出设备100以上及更多的常规组件,例如一个或多个计算机处理器、本地固定存储器(例如RAM和ROM)以及可选的可移动存储器(例如SD卡和U盘)、电源、音视频输出设备等。设备100还可以包括诸如相机或定位模块之类的附加组件。相机可以用于捕获图像或视频。定位模块使用例如全球定位卫星信号、蜂窝数据、基站信号、网络数据或其他方法来确定设备100的位置。本地应用程序220或本地文件协同程序240可以使用位置模块获取位置数据,并将位置数据添加到相关文件的元数据中,例如由相机捕获的图像。
设备100能够以各种方式访问在线平台110。本地文件协同程序240可以是专用应用程序或模块,提供对在线平台110的服务的访问,既可以通过用户界面提供对共享文件的访问,也可以通过相应的接口或协议提供对其他应用程序的访问。设备100还可以通过浏览器230访问在线平台110。作为替代,本地文件协同程序240可以将对在线平台110的访问与操作系统210提供的本地文件管理系统集成在一起。当对在线平台110的访问被集成在本地文件管理系统中时,由本地文件协同程序240结合操作系统210,可以将在线平台110上存储和维护的文件组织方案表示为本地文件结构。本地文件协同程序240可以采用各种形式实现,例如独立的应用程序、应用程序插件或浏览器扩展等。
本地文件协同程序240可以包括用户界面模块、交互管理模块、内容访问模块、本地内容存储模块、文件操作监控模块、协同模块等。
除了处理其他设备任务之外,操作系统210还可以通过显示器向用户显示在设备100上执行的应用程序的信息,显示器或显示器所呈现的显示区域可以包括一个或多个用户界面元素。这样的用户界面元素可以基于特定设备和配置而变化。用户界面元素可以包括桌面界面上的窗口、移动设备上的界面元素、以及各类窗口和界面元素的组合等。使用用户界面元素的操作系统的示例如微软公司的Windows、苹果公司的OSX和IOS、Linux、Unix、Android等。此外,操作系统210管理和控制可能同时执行的多个本地应用程序220。用户界面元素可以是分层的,例如一层与另一层重叠或部分重叠。在某些操作系统和配置中,给定时间仅显示单个用户界面元素。一个用户界面元素是活动用户界面元素,这通常意味着它是操作系统210将用户输入(例如键盘输入、光标移动、触摸传感器、触摸手势等)路由或聚焦到的用户界面元素。例如,用户当前正在进行操作或编辑的窗口,即为当前活动用户界面元素,也可以称之为该窗口的显示层级为最高层级;而当用户通过鼠标、键盘等用户输入设备打开或切换至另一个新窗口进行操作,则是将新窗口切换为当前活动用户界面元素,也可以称之为将新窗口的显示层级设置为最高层级,而降低了之前窗口的显示层级。
如本领域技术人员所理解的,在特定时间活动的窗口或其他用户界面元素通常被称为具有焦点。用户可以选择另一个用户界面元素以将焦点从一个用户界面元素改变为另一个,并且在某些情况下,操作系统210可以在没有用户输入的情况下改变焦点。
一般地,与本地应用程序220相关联的用户界面元素(例如窗口),由操作系统210管理,操作系统210维持执行本地应用程序220的过程标识符与用户界面元素的用户界面元素标识符之间的关联。例如,特定的应用程序可能与进程ID“2222”相关联,进程ID“2222”可能正在管理多个具有用户界面元素标识符的用户界面元素。每个用户界面元素标识符可以分别与由该本地应用程序220打开的特定内容项相关联,并且多个用户界面元素标识符和过程标识符可以与同一内容项相关联。
操作系统210还处理和识别各种事件。此类事件包括来自本地应用程序220的关闭、打开文件或内容项的请求,来自本地应用程序220的关闭窗口或其他用户界面元素的请求以及更改用户界面元素焦点的请求等。如下所述,这些事件可由文件协同程序240监控和提取,并用来识别与文件有关的操作或变化。由操作系统210管理和控制的事件,可以称之为系统事件,这些事件以及能够从这些事件中提取的各种信息和数据,与操作系统210相关,并不依赖本地应用程序220或其他应用程序。
本地文件协同程序240可以识别相对于文件发生的交互,例如当用户打开、关闭或编辑设备100上的文件时。这些交互由本地文件协同程序240监控或标识,以生成描述与文件交互相关的交互信息。交互信息可以包括与文件协同程序240的交互以及与本地应用程序220的交互。交互信息的其他类型还可以包括与文件有关的状态信息、注释、消息、通知请求等,这些信息可以由文件协同程序240获取。消息可以包括与其他设备100之间的通知消息,指示用户意图对文件进行交互(例如,打开、编辑、保存、更新)的消息以及指示用户意图开始协同编辑或会话的消息。
通知请求可以包括当另一用户的交互信息改变时被通知的请求。交互信息还可以包括元数据修改,例如版本说明或对存储于在线平台110上的相关文件的进一步信息的请求,例如查看版本信息或先前文件版本的请求。
交互信息可以被发送到对文件进行共享或同步的其他设备100,例如在另一设备向第二用户发出与该文件相关的警告、第二用户想要编辑该文件或者发起协作编辑会话等。本地文件协同程序240可以识别用户何时使用本地应用程序220与文件进行交互,并且还可以接收来自用户的输入信息。在各种实施例中,可以通过与操作系统210的交互来识别用户在文件中的存在(例如,用户具有打开的文件或正在编辑的内容)。
设备100可以从本地文件协同程序240接收文件或文件的更新版本,并允许用户使用存储或运行在设备100上的各种本地应用程序220查看、修改文件并与之交互。例如,设备100可以包括操作图像内容的图像编辑应用程序、允许文本内容修改的文字处理应用程序、或者允许图形内容的修改计算机辅助设计(CAD)应用程序等。交互信息由设备100经由用户交互应用确定,并且交互信息可以被发送到其他设备100。另外,当设备100接收到与其他设备100有关的交互信息时,设备100可以显示该交互信息,例如以用户界面元素的形式显示交互信息。
在一些实施例中,检测与文件有关的交互信息的应用程序不同于查看或操作文件的应用程序。例如,检测交互信息的应用程序不同于操作或显示图像内容的照片编辑应用程序。在各种实施例中,检测交互信息的应用还负责将文件与在线平台110同步,可以针对各种应用、文件或内容进行监控,或者将监控集成到每种类型的文件查看器中。例如,对于照片编辑应用程序、文字处理应用程序和播放列表编辑应用程序中的每一个,可以使用通用的监控插件或应用程序,也可以分别使用特定的监控插件或应用程序。
在一些实施例中,对文件进行共享或同步的设备100可以协同地编辑该文件。协同用户(或实体)可以在本地应用程序220中打开、查看或编辑文件。在一些实施例中,两个或更多个协同用户可以在协同期间同时编辑该文件。协同用户能够实时地对其他协同用户可见的内容进行更改,并查看其他协同用户对该文件及其内容所做的更改。在一些实施例中,用户协同由本地文件协同程序240管理。
图3为本申请中在线平台110的一个实施例的模块示意图。如图3所示,在线平台110可以包括在线文件协同模块340、协同编辑模块310。为了简要的目的,图中未示出在线平台110可以包括的其他各种必要的或可选的软硬件模块、装置,例如:处理器、存储器、显示装置、输入装置、网络接口、操作系统、应用程序等。
在线文件协同模块340可以管理和处理存储于在线平台110的共享文件,并且能够与设备100的本地文件协同程序240交互,以在多个设备100及在线平台110之间对共享文件进行处理和同步。例如,设备100A的第一实体(用户)对某个共享文件进行了修改,则设备100A的本地文件协同程序240能够将该文件的修改信息及修改后的最终版本,通过在线文件协同模块340上传至在线平台100,以将在线平台110上存储的该文件更新为修改后的最终版本,并进行相应的记录或标记。稍后或同时地,还可以进一步通过文件协同模块340传送至其他存储有该文件的设备100B和设备100C,以将设备100B和设备100C上存储的该文件更新为修改后的最终版本。
在一些实施例中,多个设备100也可以通过在线平台110的在线文件协同模块340进行交互。例如,在设备100A处的第一实体正在操作或编辑某个共享文件情况下,另一个设备100B处的第二实体打开该文件并试图对该文件进行修改时,可通过在线文件协同模块340分别向设备100A和设备100B发送相应的通知或提示信息,例如,向设备100B处的第二实体发送消息,提示该文件正在被设备100A处的第一实体编辑,以便于第二实体采取关闭文件、放弃操作、发出协同编辑请求等操作;向设备100A处的第一实体发送消息,提示出现其他实体对该文件的操作或请求,以便于第一实体采取关闭文件、保存文件、接受协同编辑请求等操作。
协同编辑模块310是运行在在线平台110上的文件编辑程序,能够允许多个实体同时对同一个文件进行编辑。在一些实施例中,在线平台110上可以具有多个协同编辑模块310,每个协同编辑模块310包含能够编辑和处理特定一种或多种格式文件的应用程序。在另一些实施例中,也可以将处理不同格式文件的应用程序集成到同一个协同编辑模块310中,由协同编辑模块310统一进行处理。
协同编辑模块310能够实时地处理多个实体对同一个共享文件的编辑操作。在一些实施例中,对于doc或docx格式的文字内容文件,协同编辑模块310能够监测到该文件中不同实体所编辑的内容,例如第一实体编辑第1页第3行第5个字符的内容,第二实体编辑第2页第4行第7个字符的内容,第三实体编辑第3页第6行第11个字符的内容,这些被编辑的内容之间没有冲突,则可以允许同时编辑,并且可以在每个实体的编辑界面上实时地显示其他实体的编辑信息。如果不同的实体所编辑的内容发生冲突时,例如第一实体和第二实体都试图编辑该文件第4页第10行第1个字符的内容,则可以通过预设的冲突处理机制进行处理。由于能够以精确到字符的方式来监测编辑内容,因此发生冲突的概率较小,并且即使发生冲突,所影响到的内容也较少(例如,一个或几个字符),即使采用简单的冲突处理机制(例如,简单地选择一方而丢弃另一方),可能导致的不利影响也较小,被丢弃的一方也只是被丢弃了若干字符,后续也较易于恢复或另行处理。类似的,对于xls或xlsx格式的表格内容文件,协同编辑模块310能够以单元格为单位进行监测和协同;对于psd等格式的图像内容文件,协同编辑模块310能够以像素为单位进行监测和协同。
基于上述的设备100、在线平台110和网络120,本申请提供一种文件协同编辑的方法和系统,以下以示例的方式进行更具体的描述。
第一实体和第二实体共享同一个文件,第一实体可以包括第一用户和/或由第一用户操作的第一客户端(例如,设备100A),第二实体可以包括第二用户和/或由第二用户操作的第二客户端(例如,设备100B),第一客户端和第二客户端分别经由通信网络(例如:网络120)与服务端(例如,在线平台110)连接和通信,并能够通过服务端进行共享、同步、通知等交互操作。第一客户端、第二客户端和服务端均存储有该共享文件,并通过同步机制保持该共享文件内容的一致性。本领域人员应当理解的是,这样的设置是一种基本设置,在不同的实施例中,可以有更多的客户端以类似的机制或方式加入到该系统中。
本申请的文件协同编辑的方法可以包括以下步骤:
当第二实体打开已被第一实体锁定的文件时,向第二实体提供加入协同编辑的操作选择。在第二实体本地打开已被第一实体锁定的该文件的情况下,在第二实体处对文件进行处理以将第二实体切换至协同编辑模式。在一些实施例中,切换至协同编辑模式可以是将本地打开文件切换为在线打开文件,例如,将原先使用本地应用程序220本地打开存储在第二客户端的文件,切换为使用浏览器230在线打开存储在服务端的文件。
响应于第二实体接受加入协同编辑,如果该文件未处于协同编辑模式,则向第一实体提供切换编辑模式的操作选择;如果该文件已处于协同编辑模式,则直接或在确认后将第二实体加入协同编辑。在协同编辑模式下,第一实体和第二实体均在线打开该文件,从而利用服务端的在线文件协同模块进行协同编辑。
响应于第二实体接受加入协同编辑,还可以向第一实体提供保存并关闭该文件的操作选择。响应于第一实体接受保存并关闭该文件,在第一实体处保存并关闭该文件;解锁该文件,并将该文件更新为第一实体保存的该文件的最终版本;以及向第二实体提供由第一实体更新的该文件的最终版本。在第二实体获取由第一实体更新的该文件的最终版本后,在第二实体处打开并锁定该文件。
响应于第二实体不接受加入协同编辑,在第二实体处只读地打开该文件。
响应于第一实体接受切换至协同编辑模式,在第一实体处对该文件进行处理以将第一实体切换至协同编辑模式。在第二实体打开已被第一实体本地锁定的该文件的情况下,在第一实体处对该文件进行处理以切换至协同编辑模式。在一些实施例中,切换至协同编辑模式的操作可以包括:在第一实体本地保存并关闭该文件后,解锁该文件,并将该文件更新为第一实体本地保存的该文件的最终版本,然后在第一实体处在线打开已更新的该文件后,锁定该文件。在第一实体本地保存并关闭该文件后,可以向第二实体提供由第一实体更新的该文件的最终版本。
响应于第一实体不接受切换至协同编辑模式,在第一实体处保持原有状态,并向第二实体提供只读地打开该文件的操作选择。
将第二实体加入协同编辑。在协同编辑模式下,处理第一实体和第二实体对该文件的编辑操作。
在一些实施例中,当用户使用本地应用程序打开某个未被他人锁定的文件时,若检测这个文件是被该程序独占打开,则自动锁定这个文件。锁定期间,其他用户无法通过本地应用程序或使用浏览器在云端编辑该文件。
当用户使用浏览器在云端打开某个未被他人锁定的文件时,自动锁定这个文件。锁定期间,其他用户无法通过本地应用程序打开并编辑该文件。
当用户结束编辑,退出本地应用程序,或离开云端编辑窗口,则自动解锁该文件,并将本次锁定期间保存的内容同步到其他设备上。
有用户使用本地应用程序打开一个被他人锁定的文件时,通知系统通过一个吸附在应用程序边缘的图形标记,来展示锁定者当前编辑状态的提示。用户可以通过图形标记,向锁定者发出协同编辑的请求。当文档解锁时,标记将展示文件版本更新的提示。
若用户使用本地应用程序编辑文件的过程中,收到其他用户发出的协同编辑请求,图形标记将展示通知并提供交互选项。用户如果接受协同编辑请求,图形标记会引导用户快速保存文件,并切换到使用可多人在线协同编辑的应用程序中继续编辑工作。
本申请公开的协同编辑文件的方法,通过将参与协同编辑文件的第一实体和第二实体引导至统一的协同编辑模式中,充分利用服务端的在线文件协同模块340来处理文件的协同编辑,至少具有以下优点:
(1)受第一实体和第二实体本地条件的限制较小,基本上第一实体和第二实体只需要能够通过浏览器230以通用或标准的接口访问服务端以打开服务端存储的共享文件即可,并不依赖于或受限于第一实体和第二实体本地的操作系统210、本地应用程序220等软硬件模块的类型、版本,具有较好的通用性和兼容性。
(2)也不受限于共享文件的格式、类型、存储路径等,只要服务端的在线文件协同模块340能够处理的文件均可适用于上述方法。服务端的在线文件协同模块340可以根据需要进行设置,以支持不同类型或格式的文件,从而能够有效地拓展可协同编辑的文件类型。
(3)为第一实体和第二实体提供各种操作选择,例如可以在冲突文件产生之前及时保存、关闭并更新,从而避免冲突文件的产生,也避免出现内容丢失或另行保存所导致的版本增加等问题。
(4)通过合理的引导步骤,不需要参与协同编辑的各方对文件权限进行竞争,从而使得协同编辑的过程更为有序。
与上述的方法相对应,本申请的文件协同编辑的系统可以包括服务端以及一个或多个客户端,每个客户端与服务端通信连接。
当第二实体打开已被第一实体锁定的文件时,第二实体处的第二客户端向第二实体提供加入协同编辑的操作选择,并响应于第二实体接受加入协同编辑,向服务端发送加入协同编辑的请求。在第二实体本地打开已被第一实体锁定的该文件的情况下,第二实体的第二客户端在第二实体处切换为在线打开保存在服务端的该文件,以将第二实体切换至协同编辑模式。
如果该文件未处于协同编辑模式,服务端在接收到来自第二实体的加入协同编辑的请求之后,通过第一实体的第一客户端发送切换编辑模式的操作选择。如果该文件已处于协同编辑模式,服务端在接收到来自第二实体的加入协同编辑的请求之后,将第二实体加入协同编辑。在协同编辑模式下,第一实体和第二实体均在线打开保存在服务端的该文件。
第一实体的第一客户端响应于第二实体接受加入协同编辑,可以向第一实体提供保存并关闭该文件的操作选择。第一实体的第一客户端响应于第一实体接受保存并关闭该文件,保存、关闭并解锁该文件,以及向服务端提供由第一实体保存的该文件的最终版本。服务端接收并向第二实体提供由第一实体保存的该文件的最终版本。第二实体的第二客户端在获取由第一实体更新的该文件的最终版本后,打开并锁定该文件。
第二实体的客户端响应于第二实体不接受加入协同编辑,只读地打开该文件。
第一实体的客户端响应于第一实体接受切换至协同编辑模式,在第一实体处对该文件进行处理以将第一实体切换至协同编辑模式,并通过服务端向第二实体处的第二客户端反馈接受协同编辑请求的消息。在第二实体打开已被第一实体本地锁定的该文件的情况下,第一实体的第一客户端在第一实体本地保存并关闭该文件后,在线打开保存在服务端的该文件。在第一实体本地保存并关闭该文件后,第一实体的客户端解锁该文件,向服务端提供由第一实体保存的该文件的最终版本,并在第一实体在线打开保存在服务端的该文件之后,锁定该文件。服务端接收并向第二实体提供由第一实体保存的该文件的最终版本。
服务端响应于第一实体不接受切换至协同编辑模式,通过第二实体的第二客户端向第二实体提供只读地打开该文件的操作选择。
第二实体处的第二客户端在接收到来自第一实体的接受协同编辑请求的消息之后,将第二实体切换至协同编辑模式。服务端在协同编辑模式下,处理第一实体和第二实体对该文件的编辑操作。
更具体地,根据第一实体和第二实体打开文件的方式可以分为以下四种情况,以下以示例的方式进行更详细的讨论。
(I)第一实体在线打开和编辑共享文件时,第二实体在线打开该文件。
第一实体通过本地的浏览器230在线打开存储在服务端的某个共享文件,并对该文件进行编辑操作。服务端的在线文件协同模块340监控到第一实体对该文件的打开或编辑操作,随即锁定该文件,并将该文件的锁定状态或标记同步至存储有该文件的所有实体。
在第一实体对该文件进行编辑的过程中,第二实体也通过本地的浏览器230在线打开该文件。服务端监控到第二实体的打开操作,将该文件切换至协同编辑模式,并将第一实体和第二实体均加入到该模式中,利用协同编辑模块310并行地处理第一实体和第二实体对该文件的编辑。
(II)第一实体在线打开和编辑共享文件时,第二实体本地打开该文件。
第一实体通过本地的浏览器230在线打开存储在服务端的某个共享文件,并对该文件进行编辑操作。服务端的在线文件协同模块340监控到第一实体对该文件的打开或编辑操作,随即锁定该文件,并将该文件的锁定状态或标记同步至存储有该文件的所有实体。
在第一实体在线对该文件进行编辑的过程中,第二实体通过本地应用程序220本地打开该文件,此时该文件处于锁定状态。第二实体的本地文件协同程序240监控到第二实体的打开操作,提示第二实体该文件已被第一实体锁定,并向第二实体提供相应的操作选择,包括但不限于:请求加入协同编辑;只读打开文件;放弃打开文件。
如果第二实体选择请求加入协同编辑,第二实体的本地文件协同程序240通过服务端的在线文件协同模块340向第一实体发送该请求,以消息的方式通知第一实体来自第二实体对该文件的请求,并向第一实体提供相应的操作选择,包括但不限于:接受协同编辑请求(并切换至协同编辑模式);拒绝协同编辑请求。
如果第一实体选择接受请求,则服务端将第一实体切换至协同编辑模式。切换的过程可以是不关闭已打开的该文件,直接在浏览器230的现有界面中进行切换。
在第一实体选择接受请求后,将第二实体切换至协同编辑模式。切换的过程可以是关闭第二实体的本地应用程序220,并启动第二实体的浏览器230在线打开该文件。在第一实体和第二实体均在线打开该文件后,利用服务端的协同编辑模块310并行地处理第一实体和第二实体对该文件的编辑。
如果第一实体选择拒绝协同编辑请求,则通过第二实体的本地文件协同程序240通知第二实体,并向第二实体提供相应的操作选择:只读打开文件;放弃打开文件。
如果第二实体选择只读打开文件,则通过本地应用程序220以只读的方式本地打开该文件,以供查看,但不能修改。如果第二实体选择放弃打开文件,则关闭试图打开该文件的本地应用程序220。
在一些实施例中,如果第一实体是在线打开和编辑文件,可以默认将第一实体设置为协同编辑模式。此时,第二实体不论是本地还是在线打开该文件,均向第二实体提示该文件已被第一实体锁定,并向第二实体提供相应的操作选择,包括但不限于:请求加入协同编辑;只读打开文件;放弃打开文件。如果第二实体选择请求加入协同编辑,则可以无需经过第一实体确认,直接将第二实体切换为协同编辑模式。如果第二实体拒绝加入协同编辑,则可以只读打开或放弃打开该文件,而第一实体不受影响。
(III)第一实体本地打开和编辑共享文件时,第二实体在线打开该文件。
第一实体通过本地应用程序220本地打开存储在第二实体处的某个共享文件,并对该文件进行编辑操作。本地文件协同程序240监控到第一实体对该文件的打开或编辑操作,随即锁定该文件,并将该文件的锁定状态或标记同步至服务端以及存储有该文件的其他实体。
在第一实体本地对该文件进行编辑的过程中,第二实体通过浏览器230在线打开该文件,此时该文件处于锁定状态。服务端监控到第二实体的打开操作,提示第二实体该文件已被第一实体锁定,并向第二实体提供相应的操作选择,包括但不限于:请求加入协同编辑;只读打开文件;放弃打开文件。
如果第二实体选择请求加入协同编辑,服务端的在线文件协同模块340通过第一实体的本地文件协同程序240向第一实体发送该请求,以消息的方式通知第一实体来自第二实体对该文件的请求,并向第一实体提供相应的操作选择,包括但不限于:接受协同编辑请求(并切换至协同编辑模式);拒绝协同编辑请求。
如果第一实体选择接受请求,则将第一实体切换至协同编辑模式。切换的过程可以在第一实体处关闭并保存该文件,将该文件的最新修改版(即最终版本)上传至服务端,上传完成后本地解锁该文件,然后启动浏览器230在线打开该文件。
在第一实体选择接受请求后,第二实体通过浏览器230在线打开由第一实体保存并上传的该文件的最终版本。在第一实体和第二实体均在线打开该文件后,利用服务端的协同编辑模块310并行地处理第一实体和第二实体对该文件的编辑。
如果第一实体选择拒绝协同编辑请求,第一实体处保持原状,向第二实体提供相应的操作选择:只读打开文件;放弃打开文件。
如果第二实体选择只读打开文件,则以只读的方式在线打开该文件,以供查看,但不能修改。如果第二实体选择放弃打开文件,则关闭浏览器230或关闭浏览器230中打开该文件的界面。
(IV)第一实体本地打开和编辑共享文件时,第二实体本地打开该文件。
第一实体通过本地应用程序220本地打开存储在第二实体处的某个共享文件,并对该文件进行编辑操作。本地文件协同程序240监控到第一实体对该文件的打开或编辑操作,随即锁定该文件,并将该文件的锁定状态或标记同步至服务端以及存储有该文件的其他实体。
在第一实体本地对该文件进行编辑的过程中,第二实体通过本地应用程序220本地打开该文件,此时该文件处于锁定状态。第二实体的本地文件协同程序240监控到第二实体的打开操作,提示第二实体该文件已被第一实体锁定,并向第二实体提供相应的操作选择,包括但不限于:请求加入协同编辑;只读打开文件;放弃打开文件。
如果第二实体选择请求加入协同编辑,第二实体的本地文件协同程序240通过服务端以及第一实体的本地文件协同程序240向第一实体发送该请求,以消息的方式通知第一实体来自第二实体对该文件的请求,并向第一实体提供相应的操作选择,包括但不限于:接受协同编辑请求(并切换至协同编辑模式);拒绝协同编辑请求。
如果第一实体选择接受请求,则将第一实体切换至协同编辑模式。切换的过程可以在第一实体处关闭并保存该文件,将该文件的最新修改版(即最终版本)上传至服务端,上传完成后本地解锁该文件,然后启动浏览器230在线打开该文件。
在第一实体选择接受请求后,将第二实体切换至协同编辑模式。切换的过程可以是关闭第二实体的本地应用程序220,并启动第二实体的浏览器230在线打开由第一实体保存并上传的该文件的最终版本。在第一实体和第二实体均在线打开该文件后,利用服务端的协同编辑模块310并行地处理第一实体和第二实体对该文件的编辑。
如果第一实体选择拒绝协同编辑请求,第一实体处保持原状,向第二实体提供相应的操作选择:只读打开文件;放弃打开文件。
如果第二实体选择只读打开文件,则通过本地应用程序220以只读的方式本地打开该文件,以供查看,但不能修改。如果第二实体选择放弃打开文件,则关闭试图打开该文件的本地应用程序220。
在上述的各种情况中,如果第一实体或第二实体不具备文件协同编辑的权限(例如:第一实体或第二实体所关联的账号没有开通文件协同编辑的权限或功能),则在向第一实体或第二实体提供操作选择时,还可以增加提供开通文件协同编辑权限的操作选择,以引导第一实体或第二实体通过申请注册、充值付费等操作开通相关的权限或功能。
在一些实施例中,当该文件处于协同编辑模式中时,可以允许更多的其他实体加入协同编辑。在另一些实施例中,将第一实体和第二实体加入到协同编辑模式后,也可以进一步在线锁定该文件,只允许当前的第一实体和第二实体对该文件进行协同编辑,当有其他实体试图加入对该文件的协同编辑时,以与上述方法类似的方式进行请求和加入。
图4A和图4B是本申请中文件协同编辑方法的一个实施例的流程示意图,分别对应编辑者A接受或者不接受来自查看者B的协同请求。其中,编辑者A可以对应于上述方法和系统中锁定文件的第一实体,查看者B可以对应于上述方法和系统中打开被第一实体锁定的文件的第二实体。
如图4A所示,编辑者A本地锁定文件,此时查看者B打开被锁定的该文件,并向编辑者A提出协同请求。编辑者A接受来自查看者B的协同请求,保存并关闭本地文档并切换为协同编辑,在一些实施例中,该切换操作可以被设置为一键切换,以简化操作。然后,编辑者A解锁该文件,同时向查看者B发送更新通知。编辑者A随即打开在线协同编辑,继续锁定该文件,并进入在线协同编辑中。查看者B收到来自编辑者A的更新通知后,如果具备协同编辑的权限或功能,则直接加入协同编辑;如果不具备协同编辑的权限或功能,则获取由编辑者A本地保存并更新的文件内容。
如图4B所示,编辑者A本地锁定文件,此时查看者B打开被锁定的该文件,并向编辑者A提出协同请求。编辑者A不接受(拒绝或者不理会)来自查看者B的协同请求,继续本地操作。编辑者A在完成对该文件的编辑之后,保存并关闭该文件,继而解锁并同步该文件。查看者B收到来自编辑者A的更新通知后,如果具备协同编辑的权限或功能,则直接加入协同编辑;如果不具备协同编辑权限或功能,则本地打开由编辑者A更新的该文件的最新版本。
图5和图6是本申请中文件协同编辑方法的一个实施例的流程示意图,分别示出了在文件协同编辑的过程中查看者和编辑者相关的流程步骤,作为示例,对上述的方法和系统的一个实施例进行更直观的描述。其中,编辑者可以对应于上述方法和系统中锁定文件的第一实体,查看者可以对应于上述方法和系统中打开被第一实体锁定的文件的第二实体。
在一些实施例中,可以通过显示消息界面的方式向第一实体或第二实体提供各种提示信息和操作选择。在消息界面中,可以使用各种文字、图形、图标及其组合来提供各类信息。如果文件的打开窗口为当前活动窗口,则可以将消息界面显示在打开窗口区域内;如果文件的打开窗口为非当前活动窗口,则可以通过操作系统的系统通知区域提供消息界面。在一些实施例中,利用系统通知或者在系统通知区域提供消息界面,由于需要操作系统的支持,消息界面会根据不同的操作系统设置不同的呈现方式,例如显示位置、显示内容、可进行的操作等。
在打开窗口区域内显示消息界面时,消息界面位于打开窗口区域内的预设位置,其中,预设位置被配置为能够根据打开窗口的窗口边界坐标来确定。当打开窗口移动或改变形状时,消息界面被配置为能够根据打开窗口的变化相应地进行移动或变化,以使得消息界面保持在打开窗口区域内的预设位置;或者当打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着打开窗口的变化而相应地关闭、最小化或进行切换。
图7是本申请中在打开窗口区域内显示消息界面的一个实施例的示意图。如图7所示,在查看者处,操作系统为Windows 10,第二实体使用本地的Microsoft Word文字处理应用程序打开文档1,在桌面上显示Microsoft Word文字处理应用程序的窗口。由于文档1已被其他实体(编辑者)锁定,因此在窗口区域的右侧显示消息界面,并在消息界面中提供相应的提示信息和操作选择。在该实施例中,消息界面中显示“[name]正在编辑该文档。若您希望与对方协同编辑,可以一键发送协同邀请。”,并提供“邀请协同编辑”和“暂不邀请”两个按钮以供选择,其中[name]表示正在编辑该文档的编辑者的名称或代号。选择“邀请协同编辑”按钮,则向锁定该文件的编辑者发送加入协同编辑的请求。选择“暂不邀请”,则不向编辑者发送请求,在一些实施例中,可以关闭文档1或者只读地打开文档1。
图8是本申请中通过操作系统的系统通知区域提供消息界面的一个实施例的示意图。如图8所示,在编辑者处,操作系统为Windows 10,使用本地的Microsoft Word文字处理应用程序打开文档一,但打开文件的窗口正处于最小化的状态。此时,当接收到来自其他实体(查看者)发出的对文档一的加入协同编辑的请求时,则在桌面右下方的系统通知界面显示消息界面,并在消息界面中提供相应的提示信息和操作选择。在该实施例中,消息界面中显示“[name]邀请您共同编辑该文档,是否立即保存修改并接受邀请?”,其中[name]表示发出加入协同编辑请求的查看者的名称或代号。点击消息界面表示接受邀请,则可以根据引导进行保存和切换,在一些实施例中,也可以根据上述的各种方式一键保存并切换。关闭消息界面表示不接受邀请,则继续保持当前状态。
图9A-9E、图10A-10D、图11A-11D、图12A-12B和图13分别是本申请中提供不同提示信息和操作选择的消息界面的实施例的示意图。
图9A-9E是在相关实体具备协同编辑权限或功能的情况下,部分消息界面的一个实施例的示意图。
如图9A所示,当打开他人本地锁定的Office文档时,消息界面提示“文档已被他人锁定”,并以按钮的形式提供“邀请协同编辑”和“暂不邀请”的操作选择。选择“邀请协同编辑”(点击按钮),则向锁定该文件的实体发送加入协同编辑的请求。选择“暂不邀请”,则不发送请求,在一些实施例中,还可以关闭文档或者只读地打开文档。如图9B所示,在选择“邀请协同编辑”后,“邀请协同编辑”的按钮被替换为“已邀请”。
如图9C所示,当打开他在线锁定的Office文档时,消息界面提示“文档协同编辑进行中”,并以按钮的形式提供“加入协同编辑”和“暂不加入”的操作选择。选择“加入协同编辑”,则以协同编辑模式打开文档。选择“暂不加入”,则可以关闭文档或只读地打开文档。
如图9D所示,在本地编辑Office文档时,收到来自他人的在线编辑邀请时,消息界面提示“协同编辑邀请”,并以按钮的形式提供“接受邀请”和“暂不接受”操作选择。选择“接受邀请”,则保存文档并切换为协同编辑模式。选择“暂不接受”,则忽略邀请,继续当前编辑。
图9A-9D的实施例均为在文件打开窗口区域内部显示的消息界面,图9E的实施例是在系统通知区域显示的消息界面。如图9E所示,在本地编辑Office文档时,收到来自他人的在线编辑邀请,并且当收到消息的文档不在前台时,以系统通知的方式提供消息界面。消息界面提示“[name]邀请您共同编辑该文档,是否立即保存修改并接受邀请?”。在该实施例中,点击消息界面,表示接受邀请;关闭消息界面,表示不接受邀请。
图10A-10D是在相关实体不具备协同编辑权限或功能的情况下,部分消息界面的一个实施例的示意图。
如图10A所示,当打开他人本地锁定的Office文档时,消息界面提示“文档已被他人锁定”,并以按钮的形式提供“了解详情”和“我知道了”的操作选择。选择“了解详情”,则进一步提供与协同编辑有关的信息,例如引导用户通过注册账号、付费充值、安装软件等方式获取协同编辑的权限或功能。选择“我知道了”,则可以关闭文档或者只读地打开文档。
如图10B所示,当打开他在线锁定的Office文档时,消息界面提示“文档协同编辑进行中”,并以按钮的形式提供“了解详情”和“我知道了”的操作选择。选择“了解详情”,则进一步提供与协同编辑有关的信息,例如引导用户通过注册账号、付费充值、安装软件等方式获取协同编辑的权限或功能。选择“我知道了”,则可以关闭文档或者只读地打开文档。
如图10C所示,在本地编辑Office文档时,收到来自他人的协同编辑邀请时,消息界面提示“协同编辑邀请”,并以按钮的形式提供“了解详情”和“我知道了”的操作选择。选择“了解详情”,则进一步提供与协同编辑有关的信息,例如引导用户通过注册账号、付费充值、安装软件等方式获取协同编辑的权限或功能。选择“我知道了”,则可以关闭文档或者只读地打开文档。
图10A-10C的实施例均为在文件打开窗口区域内部显示的消息界面,图10D的实施例是在系统通知区域显示的消息界面。如图10D所示,在本地编辑Office文档时,收到来自他人的协同编辑邀请,并且当收到消息的文档不在前台时,以系统通知的方式提供消息界面。消息界面提示“[name]邀请您开启协同编辑,实时查看最新修改内容。欢迎了解协同编辑。”在该实施例中,点击消息界面,则进一步提供与协同编辑有关的信息,例如引导用户通过注册账号、付费充值、安装软件等方式获取协同编辑的权限或功能。关闭消息界面,则忽略该消息。
图11A-11D是在本地操作文件的情况下,部分消息界面的一个实施例的示意图。
如图11A所示,当本地打开文档时,对该文档进行锁定,若锁定成功,则消息界面提示“您已锁定此文档”,并进一步提示“锁定期间,他人无法编辑此文档。在您保存并关闭文档后,所有修改将自动同步。”并提供“我知道了”和“不再提醒”的操作选项。选择“我知道了”,则关闭消息界面,用户可继续编辑文档。选择“不再提醒”,则关闭消息界面,并且以后也不再显示该消息界面,以减少对用户的打扰。
如图11B所示,当本地打开文档时,对该文档进行锁定,若锁定失败,则消息界面提示“无法锁定文档”,并进一步提示“您对此文档的修改可能会与他人的版本冲突,请及时保存您的编辑内容,并检查客户端是否开启同步,网络是否正常连接。”并提供“查看帮助”和“我知道了”的操作选项。选择“查看帮助”,则进一步提供相关的帮助信息。选择“我知道了”,则关闭消息界面,用户可继续编辑文档,但此时该文档并未成功锁定,对该文档的修改可能会与他人的版本冲突。
如图11C所示,当本地打开能够支持协同编辑的文档(例如:Office文档)时,对该文档进行锁定,若锁定成功,则消息界面提示“您已锁定此文档”,并进一步提示“如有需要,您可以与对方进行协同编辑”,并提供“我知道了”和“不再提醒”的操作选项。选择“我知道了”,则关闭消息界面,用户可继续编辑文档。选择“不再提醒”,则关闭消息界面,并且以后也不再显示该消息界面,以减少对用户的打扰。
如图11D所示,当本地打开尚不能够支持协同编辑的文档(例如:旧版本的Office文档)时,对该文档进行锁定,若锁定成功,则消息界面提示“您已锁定此文档”,并进一步提示“如需协同编辑,请以最新的Office格式保存此文档”,并提供“查看帮助”和“我知道了”的操作选项。选择“查看帮助”,则进一步提供相关的帮助信息。选择“我知道了”,则关闭消息界面,用户可继续编辑文档。
同一个用户可能会在不同的设备上对同一个文档进行操作,图12A-12B是同一个用户打开在其他设备上已被自己锁定的文档时,部分消息界面的一个实施例的示意图。
如图12A所示,当打开在其他设备上已被自己本地或在线锁定的文档时,消息界面提示“您已在其他设备上锁定此文档”,并进一步提示“若您希望查看最新内容,请在锁定文档的设备上保存并关闭文档,所有修改将自动同步。”并提供“查看帮助”和“我知道了”的操作选项。选择“查看帮助”,则进一步提供相关的帮助信息。选择“我知道了”,则关闭消息界面,用户可继续编辑文档。
如图12B所示,当打开在其他设备上已被自己在线锁定的处于协同编辑模式的文档时,消息界面提示“文档协同编辑进行中”,并进一步提示“您正在与他人协同编辑该文档。是否立即查看最新进展?”并提供“立即查看”和“暂不查看”的操作选项。选择“立即查看”,则只读地打开该文档的最新版本。选择“暂不查看”,则不打开该文档。
图13是打开已被他人锁定的尚不能支持协同编辑的文档(例如:旧版本的Office文档或者其他不支持协同编辑的文件类型)时,消息界面的一个实施例的示意图。如图13所示,消息界面提示“文档已被他人锁定”,并进一步提示“[name]正在编辑该文档。你可以继续浏览当前内容,或在文档更新后查看。”并提供“了解详情”和“我知道了”的操作选项。选择“了解详情”,则继续只读地打开该文档,并进一步提供相关的帮助信息和说明信息。选择“我知道了”,只读地打开该文档或关闭该文档。
在一些实施例中,在服务端以频道的形式处理不同实体对同一个共享文件的协同编辑。当第一实体打开或锁定文件时,服务端建立与该文件相对应的频道,每个频道具有一个频道标识(channel ID)。第二实体能够通过频道标识订阅该频道而成为该频道的订阅者,从而加入对该文件的协同编辑。
在频道维持期间,第一实体定时向服务端发送心跳信号,每间隔固定的时间(例如:1秒、2秒、3秒、4秒、5秒、10秒、15秒、20秒、25秒、30秒、35秒、40秒、45秒、50秒、55秒、60秒)向服务端发送信号,以指示第一实体始终处于活动状态或者与服务端的连接存活。服务端接收到来自第一实体的心跳信号,就继续维持与第一实体相关的一个或多个频道存在。
如果服务端超过心跳阈值还未接收到来自第一实体的心跳信号,则可以判断第一实体未处于活动状态或者与第一实体的连接中断。其中,心跳阈值可以是预选设置的值,例如:5秒、10秒、15秒、20秒、25秒、30秒、35秒、40秒、45秒、50秒、55秒、60秒、70秒、80秒、90秒、100秒、110秒、120秒、180秒、200秒等。在一些实施例中,当服务端超过心跳阈值尚未接收到来自第一实体的心跳信号,则执行以下一种或多种操作:关闭与第一实体的连接;向由第一实体建立的频道的订阅者发送广播消息,指示第一实体已断开连接;向订阅者提供由第一实体保存的文件的最终版本;向订阅者提供处理文件的操作选择;关闭该频道的所有订阅者。
向订阅者提供处理文件的操作选择可以包括以下一种或多种操作:保存并关闭订阅者处的文件;放弃并关闭订阅者处的文件;根据接收到的由第一实体保存的文件的最终版本,在订阅者处更新并保存文件;在订阅者处另行保存接收到的由第一实体保存的文件的最终版本。
本申请还提供一种监控文件操作的方法,包括以下步骤:
监测操作系统210中的系统事件。在一些实施例中,设备100的本地文件协同程序240可以对操作系统210中的各种系统事件进行监控。例如,当操作系统210产生一个系统事件时,本地文件协同程序240利用操作系统210提供的接口程序获取该系统事件的信息或数据。
从系统事件中筛选出与监控目标相关的操作记录。根据预设条件从系统事件中筛选出与监控目标相关的操作记录,其中,预设条件可以包括以下一个或多个:文件类型、文件路径、操作类型、操作文件的应用程序。
文件类型可以通过文件格式或文件后缀名进行区分。与文件操作相关的系统事件会包含文件名称或文件格式,从中即可提取出文件类型信息。根据文件类型事先设定要监控的一种或多种文件,筛选出含有这些文件类型信息的系统事件,从而可以监控所有与这些类型的文件相关的操作。例如,若要监控Microsoft Word文件,可以通过设定文件格式为doc或docx来设定文件类型。
文件路径是文件的存储位置。与文件操作相关的系统事件会包含文件路径信息。将文件路径作为预设条件,可以设定监控的范围。例如:若要对C盘“我的文档”文件夹进行监控,则可以设定文件路径为“C:\\我的文档\”,则可以筛选出所有包含该文件路径的系统事件,从而监控对该文件夹下所有的文件及文件夹的操作。
操作类型可以是对文件的打开、关闭、修改、保存、移动、复制、删除、标记等操作。系统事件会包含所执行的与操作相关的函数或动作,可以区分不同的操作类型。将操作类型作为预设条件,可以监控何种操作。例如:若要监控对文件的打开以及时地锁定文件,则可以设定操作类型为打开(不同的操作系统可能会对应不对的函数、动作或其他标识),则可以筛选出所有打开文件的系统事件。
操作文件的应用程序即对文件进行操作的本地应用程序220。系统事件中会包含执行该程序的应用程序标识,可以区分不同的本地应用程序220。将应用程序作为预设条件,可以监控特定的一个或多个本地应用程序220的操作。例如:若要监控Microsoft Word文字处理程序,可以通过应用程序标识(例如:以字母或数字表示的ID或其他标识)筛选出所有由Microsoft Word文字处理程序进行的操作。
在一些实施例中,可以根据需要灵活地选择一个或多个预设条件进行组合筛选,从而更精准地筛选出所需要的系统事件。例如:若要监控特定范围内所有文件的打开操作,则可以使用文件路径和操作类型共同作为预设条件进行筛选。
从筛选出的操作记录中获取与监控目标相关的操作信息。操作信息可以包括以下一个或多个:文件类型、操作类型、操作文件的应用程序、文件名、文件状态、文件路径、文件打开窗口信息。文件打开窗口信息可以包括以下一个或多个:窗口标题、窗口边界坐标、窗口所处区域、窗口显示层级、窗口显示方式。
对于编辑文件的操作,打开文件的窗口是必要的,系统事件中也会包含文件打开窗口的相关信息。窗口标题是显示在窗口标题栏的内容,通常会包含打开文件的应用程序名称、所打开的文件的文件名及文件路径等。窗口边界坐标则限定了窗口的位置。窗口所处区域指示在多显示屏显示的情况下窗口所位于的显示区域。窗口显示层级可以指示窗口是否为当前活动窗口。窗口显示方式可以包括最大化、最小化等显示方式。
根据操作信息执行相应的处理动作。处理动作可以包括提供消息界面以向用户推送相应的信息。其中,如果文件打开窗口为当前活动窗口,则将消息界面显示在文件打开窗口区域内;以及如果文件打开窗口为非当前活动窗口,则通过操作系统的系统通知区域提供消息界面。消息界面中的内容包括当前可执行的操作选择。
在文件打开窗口区域内显示消息界面时,消息界面位于文件打开窗口区域内的预设位置,其中,预设位置被配置为能够根据文件打开窗口的窗口边界坐标来确定。当文件打开窗口移动或改变形状时,消息界面被配置为能够根据文件打开窗口的变化相应地进行移动或变化,以使得消息界面保持在文件打开窗口区域内的预设位置;或者当文件打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着文件打开窗口的变化而相应地关闭、最小化或进行切换。
处理动作还可以包括触发或执行各种相应的动作。
在一些实施例中,如果操作类型为打开文件,则锁定目标文件;如果操作类型为关闭文件,则解锁目标文件。
在锁定目标文件时,上报针对目标文件的锁定请求,并更新目标文件在其他实体处的文件状态。在服务端锁定目标文件,向存有目标文件的实体下发锁定指令,并在存有目标文件的实体处为目标文件添加锁定标记。
在解锁目标文件时,上报针对目标文件的解锁请求和目标文件的最终版本,并更新目标文件在其他实体处的文件状态和文件内容。在服务端解锁目标文件,并将目标文件的文件内容更新为目标文件的最终版本,然后向存有目标文件的实体下发解锁指令并提供目标文件的最终版本,以及在存有目标文件的实体处为目标文件去除锁定标记,并选择将目标文件的文件内容更新为目标文件的最终版本或者放弃更新。
本申请提供的监控文件操作的方法,通过对系统事件的筛选和分析对文件操作进行监控,充分利用了操作系统本身所提供的信息,至少具有以下优点:
(1)不依赖于也不受限于本地应用程序或文件类型,能够根据需要对所有的文件进行监控,通用性好,适用范围大。现有的一些监控文件操作的软件,大多利用本地应用程序自带的或内置的功能来进行监控,在没有安装该应用程序的设备上就无法工作,同时该应用程序通常也仅限于监控某一种或几种特定的文件类型。
(2)监控范围不受限制,在操作系统能够支持的范围内,能够根据需要对所有的文件夹或存储位置进行监控。现有的一些监控文件操作的软件,仅能针对预先设定的范围进行监控。例如,一些具有同步功能的软件,通常需要预先设定同步文件夹,则该软件仅能针对特定的同步文件夹范围内的文件进行监控,而无法针对同步文件夹范围外的文件进行监控。
(3)可监控的操作类型更多样,从而能够更有针对性采取相应的操作以实现更丰富的功能。由于充分利用了系统事件,理论上可以监控到所有类型的操作,也就为实现各种可能的功能或应用提供了更为全面的技术支持。
例如:可以将对文件的打开、关闭、保存等操作的监控,与本申请公开的协同编辑文件的方法和系统相结合,能够更精准地获取共享文件的状态,从而相应地对共享文件进行锁定、解锁等操作。
(4)对文件打开窗口的操作更灵活,不依赖于也不受限于打开文件的本地应用程序,适用于所有具有窗口的应用程序,通用性好。现有的一些利用文件打开窗口的区域显示通知消息的软件,大多依赖于打开文件的本地应用程序自身的或内置的消息提示功能,仅能够适用于特定的一种或几种本地应用程序,通常性较差。
例如:在本申请公开的协同编辑文件的方法和系统中,可以利用获取到的文件打开窗口信息,在打开共享文件的窗口内的合适位置显示各种通知消息。
与上述的方法相对应,本申请的监控文件操作的系统可以包括系统监测模块、记录筛选模块、信息提取模块和信息处理模块。系统监测模块用于监测操作系统中的系统事件,记录筛选模块用于从系统事件中筛选出与监控目标相关的操作记录,信息提取模块用于从操作记录中获取与监控目标相关的操作信息。信息处理模块用于根据操作信息执行相应的处理动作。
记录筛选模块根据预设条件从系统事件中筛选出与监控目标相关的操作记录,其中,预设条件包括以下一个或多个:文件类型、操作类型、操作文件的应用程序。
操作信息包括以下一个或多个:文件类型、操作类型、操作文件的应用程序、文件名、文件状态、文件路径、文件打开窗口信息。文件打开窗口信息包括以下一个或多个:窗口标题、窗口边界坐标、窗口所处区域、窗口显示层级、窗口显示方式。
处理动作包括提供消息界面以向用户推送相应的信息。其中,信息处理模块用于当文件打开窗口为当前活动窗口时,将消息界面显示在文件打开窗口区域内;以及当文件打开窗口为非当前活动窗口时,通过操作系统的系统通知区域提供消息界面。消息界面中的内容包括当前可执行的操作选择。
在文件打开窗口区域内显示消息界面时,消息界面位于文件打开窗口区域内的预设位置,其中,预设位置被配置为能够根据文件打开窗口的窗口边界坐标来确定。当文件打开窗口移动或改变形状时,消息界面被配置为能够根据文件打开窗口的变化相应地进行移动或变化,以使得消息界面保持在文件打开窗口区域内的预设位置;或者当文件打开窗口关闭、最小化或切换为非当前活动窗口时,消息界面被配置为能够随着文件打开窗口的变化而相应地关闭、最小化或进行切换。
如果操作类型为打开文件,信息处理模块锁定目标文件;以及如果操作类型为关闭文件,信息处理模块解锁目标文件。
信息处理模块锁定目标文件后,向服务端上报针对目标文件的锁定请求,服务端则通过其他实体处的客户端更新目标文件在其他实体处的文件状态。服务端进一步锁定目标文件,并向存有目标文件的实体下发锁定指令。存有目标文件的实体的客户端根据接收到的来自服务端的锁定指令,在本地为目标文件添加锁定标记。
信息处理模块解锁目标文件后,向服务端上报针对目标文件的解锁请求和目标文件的最终版本。服务端通过其他实体的客户端更新目标文件在其他实体处的文件状态和文件内容。服务端进一步解锁目标文件,将目标文件的文件内容更新为目标文件的最终版本,并向存有目标文件的实体下发解锁指令并提供目标文件的最终版本。存有目标文件的实体的客户端根据接收到的来自服务端的解锁指令和目标文件的最终版本,在本地为目标文件去除锁定标记,并选择将目标文件的文件内容更新为目标文件的最终版本或者放弃更新。
本申请的监控文件操作的方法和系统,与协同编辑文件的方法和系统可以结合在一起使用,以提供更全面丰富的功能和令人吃惊的用户体验。
在一些实施例中,在协同编辑文件的方法和系统中,使用操作系统本身的系统事件监控文件的打开、保存、关闭等操作,并相应地触发或执行对文件的锁定、解锁等操作,能够摆脱对特定的本地应用程序220的限制,显著地拓展了可监控文件类型,也就能够显著地拓展了可协同编辑的文件类型。
现有的一些用于协同或监控的软件基本上只能对Microsoft Office格式的文件(通常为word、excel和powerpoint文件)进行操作,还是主要基于Microsoft Office本身的功能和接口来实现的,对于其他非Microsoft Office格式的文件就无能为力了。
与之相对,本申请提供的方法和系统则对文件类型没有限制。在一些实施例中,使用本申请的方法和系统,可以针对本地存储的任意文件提起协同编辑,并通过在线平台110邀请其他实体参与对该文件的协同编辑。相应的,在线平台110的协同编辑模块310可以根据需要增加所支持的文件类型。对于协同编辑模块310支持的文件类型,可以灵活地通过在线平台110实现多个实体对该文件内容的协同编辑。对于当前的协同编辑模块310不支持的文件类型,也可以通过在线平台110实现多个实体对该文件整体的共享和同步。
在一些实施例中,在协同编辑文件的方法和系统中,使用操作系统本身的系统事件监控对文件的操作进行监控,能够摆脱对特定的协同机制的限制,显著地拓展了可监控的范围或存储区域,使得文件协同能够成为更普适更通用的方法。
现有的一些用于协同的软件基本上只能对存储在预先设定的文件夹或存储区域中的文件进行协同,其主要基于在预先设定文件夹或存储区域时,这些特定的协同软件会对特定的区域进行针对性的设置,从而才能实现相关的监控和协同功能,而完全不会涉及任何处于这些范围之外的文件。
与之相对,本申请提供的方法和系统则对文件存储区域(以文件路径的形式表示)没有限制。使用本申请的方法和系统,可对存储在本地任意位置的文件提起协同编辑,即使该文件并未存储在预先设定的共享或同步文件夹内。在一些实施例中,对于未存储在共享或同步文件夹内的文件进行协同时,可以将该文件临时上传至在线平台110,并针对该文件建立临时的频道,以供其他实体参与协同。本次协同完成后,及时回收存储及频道资源。
文件类型、文件路径、操作类型、打开窗口信息等均属于操作系统运行过程中最基本的信息,任何主流的操作系统均会提供相应的接口或方法以供获取这些基本信息。因此,本申请的方法和系统,使得在不同的操作系统之间进行协同成为可能。在一些实施例中,针对不同的操作系统210安装与其兼容的本地文件协同程序240。这些本地文件协同程序240使用与本地操作系统210相匹配的代码、程序或接口获取相应的系统事件及其操作记录信息,并使用统一的接口或标准与在线平台110及其在线文件协同模块340进行交互,从而跨平台地实现本申请公开的各种方法和系统。
作为一个实施例,不仅可以在Windows、OSX、Linux等桌面操作系统之间进行跨平台的协同,也可以在Android、IOS、Windows Mobile等移动端操作系统之间进行跨平台的协同,还可以在桌面和移动端操作系统之间进行跨平台的协同。这样的功能支持能够显著地提升用户体验,不仅使得使用不同设备不同操作系统的用户之间能够无缝地进行协同,也可以使得同一个用户在其使用的多个桌面和移动设备之间进行共享和同步。
在一些实施例中,本申请还提供一种计算机装置、设备或终端,其一个实施例的内部结构可以如图14所示。该计算机装置、设备或终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,处理器用于提供计算和控制能力,存储器包括非易失性存储介质、内存储器。非易失性存储介质存储有操作系统和计算机程序。内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。网络接口用于与外部的终端通过网络连接通信。计算机程序被处理器执行时以实现本申请公开的各种方法、流程、步骤,或者处理器执行计算机程序时实现本申请公开的实施例中各个模块或单元的功能。显示屏可以是液晶显示屏或者电子墨水显示屏,输入装置可以是显示屏上覆盖的触摸层,也可以是外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
示例性的,计算机程序可以被分割成一个或多个模块或单元,这些模块或单元被存储在存储器中,并可由处理器执行,以实现本申请的技术方案。这些模块或单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在装置、设备或终端中的执行过程。
上述的装置、设备或终端可以是桌上型计算机、笔记本、移动电子设备、掌上电脑及云端服务器等计算设备。本领域技术人员应当理解,图中所示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、设备或终端的限定,具体的装置、设备或终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
处理器可以是中央处理单元(Central Processing Unit,CPU),也可以是其他通用或专用的处理器、微处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器是上述的装置、设备或终端的控制中心,利用各种接口和线路连接装置、设备或终端的各个部分。
存储器可用于存储计算机程序、模块和数据,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置、设备或终端的各种功能。存储器可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;数据存储区可存储根据应用所创建的各类数据(比如多媒体数据、文档、操作历史记录等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)、磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
上述的装置或终端设备集成的模块和单元,如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质中。基于这样的理解,本申请实现所公开的各种方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
在一些实施例中,本申请公开的各种方法、流程、模块、装置、设备或系统可以在一个或多个处理装置(例如,数字处理器、模拟处理器、被设计成用于处理信息的数字电路、被设计成用于处理信息的模拟电路、状态机、计算设备、计算机和/或用于以电子方式处理信息的其他机构)中被实现或执行。该一个或多个处理装置可以包括响应于以电子方式存储在电子存储介质上的指令来执行方法的一些或所有操作的一个或多个装置。该一个或多个处理装置可以包括通过硬件、固件和/或软件被配置而专门设计成用于执行方法的一项或多项操作的一个或多个装置。以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其发明构思加以等同替换或改变,都应涵盖在本申请的保护范围之内。
本申请的实施方式可以在硬件、固件、软件或其各种组合中进行,还可以作为存储在机器可读介质上的且可以使用一个或多个处理装置读取和执行的指令来实现。在一些实施方式中,机器可读介质可以包括用于存储和/或传输呈机器(例如,计算装置)可读形式的信息的各种机构。例如,机器可读存储介质可以包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、快闪存储器装置以及用于存储信息的其他介质,并且机器可读传输介质可以包括多种形式的传播信号(包括载波、红外信号、数字信号)以及用于传输信息的其他介质。虽然在执行某些动作的特定示例性方面和实施方式的角度可以在以上公开内容中描述固件、软件、例程或指令,但将明显的是,这类描述仅出于方便目的并且这类动作实际上由机器设备、计算装置、处理装置、处理器、控制器、或执行固件、软件、例程或指令的其他装置或机器产生。
本说明书使用示例来公开本申请,其中的一个或多个示例被描述或者图示于说明书及其附图之中。每个示例都是为了解释本申请而提供,而不是为了限制本申请。事实上,对于本领域技术人员而言显而易见的是,不脱离本申请的范围或精神的情况下可以对本申请进行各种修改和变型。例如,作为一个实施例的一部分的图示的或描述的特征可以与另一个实施例一起使用,以得到更进一步的实施例。因此,其意图是本申请涵盖在所附权利要求书及其等同物的范围内进行的修改和变型。以上所述,仅为本申请的具体实施例,但本申请的保护范围并不局限于此,任何熟悉本领域技术的技术人员根据本申请的构思,在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,或者可容易想到的变化或替换,都应涵盖于本申请的保护范围之内。
Claims (37)
1.一种协同编辑文件的方法,其特征在于,包括:
当第二实体打开已被第一实体锁定的文件时,向所述第二实体提供加入协同编辑的操作选择,其中,在所述第二实体打开之前,所述文件被锁定的状态信息已同步至所述第二实体处;
如果所述第二实体不接受加入协同编辑,则响应于所述第二实体不接受加入协同编辑,在所述第二实体处只读地打开所述文件或放弃打开所述文件,且所述第一实体不受影响;以及
如果所述第二实体接受加入协同编辑,则:
响应于所述第二实体接受加入协同编辑,如果所述文件未处于协同编辑模式,则向所述第一实体提供切换编辑模式的操作选择;响应于所述第一实体接受切换至协同编辑模式,在所述第一实体处对所述文件进行处理以将所述第一实体切换至协同编辑模式;将所述第二实体加入协同编辑;以及
在协同编辑模式下,处理所述第一实体和所述第二实体对所述文件的编辑操作。
2.根据权利要求1所述的协同编辑文件的方法,其特征在于:
响应于所述第二实体接受加入协同编辑,如果所述文件已处于协同编辑模式,则将所述第二实体加入协同编辑。
3.根据权利要求1所述的协同编辑文件的方法,其特征在于:
在协同编辑模式下,所述第一实体和所述第二实体均在线打开所述文件。
4.根据权利要求1所述的协同编辑文件的方法,其特征在于:
在所述第二实体本地打开已被所述第一实体锁定的所述文件的情况下,所述将所述第二实体加入协同编辑包括:在所述第二实体处对所述文件进行处理以将所述第二实体切换至协同编辑模式。
5.根据权利要求4所述的协同编辑文件的方法,其特征在于:
在所述第二实体本地打开已被所述第一实体锁定的所述文件的情况下,所述在所述第二实体处对所述文件进行处理包括:在所述第二实体处切换为在线打开所述文件。
6.根据权利要求1所述的协同编辑文件的方法,其特征在于:
在所述第二实体打开已被所述第一实体本地锁定的所述文件的情况下,所述在所述第一实体处对所述文件进行处理包括:在所述第一实体本地保存并关闭所述文件后,在所述第一实体处在线打开所述文件。
7.根据权利要求6所述的协同编辑文件的方法,其特征在于:
在所述第一实体本地保存并关闭所述文件后,解锁所述文件,并将所述文件更新为本地保存的所述文件的最终版本;以及
在所述第一实体处在线打开已更新的所述文件后,锁定所述文件。
8.根据权利要求7所述的协同编辑文件的方法,其特征在于:
在所述第一实体本地保存并关闭所述文件后,向所述第二实体提供由所述第一实体更新的所述文件的最终版本。
9.根据权利要求1所述的协同编辑文件的方法,其特征在于:
响应于所述第二实体接受加入协同编辑,还向所述第一实体提供保存并关闭所述文件的操作选择。
10.根据权利要求9所述的协同编辑文件的方法,其特征在于:
响应于所述第一实体接受保存并关闭所述文件,在所述第一实体处保存并关闭所述文件;
解锁所述文件,并将所述文件更新为所述第一实体保存的所述文件的最终版本;以及
向所述第二实体提供由所述第一实体更新的所述文件的最终版本。
11.根据权利要求10所述的协同编辑文件的方法,其特征在于:
在所述第二实体获取由所述第一实体更新的所述文件的最终版本后,在所述第二实体处打开并锁定所述文件。
12.根据权利要求1所述的协同编辑文件的方法,其特征在于:
响应于所述第一实体不接受切换至协同编辑模式,在所述第一实体处保持原有状态,并向所述第二实体提供只读地打开所述文件的操作选择。
13.根据权利要求1所述的协同编辑文件的方法,其特征在于:
通过显示消息界面的方式向所述第一实体或所述第二实体提供各种操作选择。
14.根据权利要求13所述的协同编辑文件的方法,其特征在于:
如果所述文件的打开窗口为当前活动窗口,则将所述消息界面显示在所述打开窗口区域内;以及
如果所述文件的所述打开窗口为非当前活动窗口,则通过操作系统的系统通知区域提供所述消息界面。
15.根据权利要求14所述的协同编辑文件的方法,其特征在于:
在所述打开窗口区域内显示所述消息界面时,所述消息界面位于所述打开窗口区域内的预设位置,其中,所述预设位置被配置为能够根据所述打开窗口的窗口边界坐标来确定。
16.根据权利要求15所述的协同编辑文件的方法,其特征在于:
当所述打开窗口移动或改变形状时,所述消息界面被配置为能够根据所述打开窗口的变化相应地进行移动或变化,以使得所述消息界面保持在所述打开窗口区域内的所述预设位置;或者
当所述打开窗口关闭、最小化或切换为非当前活动窗口时,所述消息界面被配置为能够随着所述打开窗口的变化而相应地关闭、最小化或进行切换。
17.根据权利要求1所述的协同编辑文件的方法,其特征在于:
当所述第一实体锁定所述文件时,建立与所述文件相对应的频道,其中,所述频道被配置为能够接受所述第二实体的订阅以使得所述第二实体成为所述频道的订阅者,从而将所述第二实体加入协同编辑。
18.根据权利要求17所述的协同编辑文件的方法,其特征在于:
所述第一实体定时发送心跳信号。
19.根据权利要求18所述的协同编辑文件的方法,其特征在于:
如果超过心跳阈值还未接收到来自所述第一实体的所述心跳信号,则执行以下一种或多种操作:
关闭与所述第一实体的连接;
向由所述第一实体建立的所述频道的所述订阅者发送广播消息;
向所述订阅者提供由所述第一实体保存的所述文件的最终版本;
向所述订阅者提供处理所述文件的操作选择;以及
关闭所述频道的所述订阅者。
20.根据权利要求19所述的协同编辑文件的方法,其特征在于:
向所述订阅者提供处理所述文件的操作选择包括以下一种或多种操作:
保存并关闭所述订阅者处的所述文件;
放弃并关闭所述订阅者处的所述文件;
根据接收到的由所述第一实体保存的所述文件的最终版本,在所述订阅者处更新并保存所述文件;以及
在所述订阅者处另行保存接收到的由所述第一实体保存的所述文件的最终版本。
21.一种协同编辑文件的系统,其特征在于,包括服务端和客户端,每个所述客户端与所述服务端通信连接,其中:
当第二实体打开已被第一实体锁定的文件时,所述第二实体处的客户端被配置为能够向所述第二实体提供加入协同编辑的操作选择,其中,在所述第二实体打开之前,所述文件被锁定的状态信息已同步至所述第二实体处;
如果所述第二实体不接受加入协同编辑,则所述第二实体处的客户端被进一步配置为能够响应于所述第二实体不接受加入协同编辑,在所述第二实体处只读地打开所述文件或放弃打开所述文件,且所述第一实体不受影响;以及
如果所述第二实体接受加入协同编辑,则:
响应于所述第二实体接受加入协同编辑,所述第二实体处的客户端被进一步配置为能够向所述服务端发送加入协同编辑的请求;
如果所述文件未处于协同编辑模式,所述服务端被配置为能够在接收到来自所述第二实体的所述加入协同编辑的请求之后,通过所述第一实体的客户端发送切换编辑模式的操作选择;
所述第一实体的客户端被配置为能够响应于所述第一实体接受切换至协同编辑模式,在所述第一实体处对所述文件进行处理以将所述第一实体切换至协同编辑模式,并通过所述服务端向所述第二实体处的客户端反馈接受协同编辑请求的消息;
所述第二实体处的客户端被配置为能够在接收到来自所述第一实体的所述接受协同编辑请求的消息之后,将所述第二实体切换至协同编辑模式;以及
所述服务端进一步被配置为能够在协同编辑模式下,处理所述第一实体和所述第二实体对所述文件的编辑操作。
22.根据权利要求21所述的协同编辑文件的系统,其特征在于:
如果所述文件已处于协同编辑模式,所述服务端被配置为能够在接收到来自所述第二实体的所述加入协同编辑的请求之后,将所述第二实体加入协同编辑。
23.根据权利要求21所述的协同编辑文件的系统,其特征在于:
在协同编辑模式下,所述第一实体和所述第二实体均在线打开保存在所述服务端的所述文件。
24.根据权利要求21所述的协同编辑文件的系统,其特征在于:
在所述第二实体本地打开已被所述第一实体锁定的所述文件的情况下,所述第二实体的客户端被配置为能够在所述第二实体处切换为在线打开保存在所述服务端的所述文件,以将所述第二实体切换至协同编辑模式。
25.根据权利要求21所述的协同编辑文件的系统,其特征在于:
在所述第二实体打开已被所述第一实体本地锁定的所述文件的情况下,所述第一实体的客户端被配置为能够在所述第一实体本地保存并关闭所述文件后,在线打开保存在所述服务端的所述文件。
26.根据权利要求25所述的协同编辑文件的系统,其特征在于:
在所述第一实体本地保存并关闭所述文件后,所述第一实体的客户端被配置为能够解锁所述文件,并向所述服务端提供由所述第一实体保存的所述文件的最终版本;以及
所述服务端被配置为能够在所述第一实体在线打开保存在所述服务端的所述文件之后,锁定所述文件。
27.根据权利要求26所述的协同编辑文件的系统,其特征在于:
所述服务端被配置为能够接收并向所述第二实体提供由所述第一实体保存的所述文件的最终版本。
28.根据权利要求21所述的协同编辑文件的系统,其特征在于:
所述第一实体的客户端被配置为能够响应于所述第二实体接受加入协同编辑,向所述第一实体提供保存并关闭所述文件的操作选择。
29.根据权利要求28所述的协同编辑文件的系统,其特征在于:
所述第一实体的客户端被配置为能够响应于所述第一实体接受保存并关闭所述文件,保存、关闭并解锁所述文件,以及向所述服务端提供由所述第一实体保存的所述文件的最终版本;以及
所述服务端被配置为能够接收并向所述第二实体提供由所述第一实体保存的所述文件的最终版本。
30.根据权利要求29所述的协同编辑文件的系统,其特征在于:
所述第二实体的客户端被配置为能够在获取由所述第一实体更新的所述文件的最终版本后,打开并锁定所述文件。
31.根据权利要求21所述的协同编辑文件的系统,其特征在于:
所述服务端被配置为能够响应于所述第一实体不接受切换至协同编辑模式,通过所述第二实体的客户端向所述第二实体提供只读地打开所述文件的操作选择。
32.根据权利要求21所述的协同编辑文件的系统,其特征在于:
所述客户端被配置为能够通过显示消息界面的方式提供各种操作选择。
33.根据权利要求32所述的协同编辑文件的系统,其特征在于:
所述客户端被配置为能够当所述文件的打开窗口为当前活动窗口时,将所述消息界面显示在所述打开窗口区域内;以及当所述文件的所述打开窗口为非当前活动窗口时,通过操作系统的系统通知区域提供所述消息界面。
34.根据权利要求33所述的协同编辑文件的系统,其特征在于:
在所述打开窗口区域内显示所述消息界面时,所述消息界面位于所述打开窗口区域内的预设位置,其中,所述预设位置被配置为能够根据所述打开窗口的窗口边界坐标来确定。
35.根据权利要求34所述的协同编辑文件的系统,其特征在于:
当所述打开窗口移动或改变形状时,所述消息界面被配置为能够根据所述打开窗口的变化相应地进行移动或变化,以使得所述消息界面保持在所述打开窗口区域内的所述预设位置;或者
当所述打开窗口关闭、最小化或切换为非当前活动窗口时,所述消息界面被配置为能够随着所述打开窗口的变化而相应地关闭、最小化或进行切换。
36.一种协同编辑文件的装置,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,其特征在于,所述处理器被配置为能够在执行所述计算机程序时实现根据权利要求1-20中任一项所述的协同编辑文件的方法的步骤。
37.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时能够实现根据权利要求1-20中任一项所述的协同编辑文件的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159034.4A CN110888845B (zh) | 2019-11-22 | 2019-11-22 | 协同编辑文件及监控文件操作的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159034.4A CN110888845B (zh) | 2019-11-22 | 2019-11-22 | 协同编辑文件及监控文件操作的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888845A CN110888845A (zh) | 2020-03-17 |
CN110888845B true CN110888845B (zh) | 2022-10-25 |
Family
ID=69748469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911159034.4A Active CN110888845B (zh) | 2019-11-22 | 2019-11-22 | 协同编辑文件及监控文件操作的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888845B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111539189A (zh) * | 2020-07-06 | 2020-08-14 | 北京联想协同科技有限公司 | 一种在线编辑文档的权限设置方法、装置及存储介质 |
CN112307724A (zh) * | 2020-10-16 | 2021-02-02 | 中国城市规划设计研究院 | 一种基于三维WebGis的多人协同编辑方法和系统 |
CN112380813A (zh) * | 2020-11-03 | 2021-02-19 | 中国直升机设计研究所 | 一种基于修订模式的多人文档协作架构及方法 |
CN112380172A (zh) * | 2020-11-03 | 2021-02-19 | 中国直升机设计研究所 | 一种可以锁定与并发的多人表格协作架构及方法 |
CN112463169B (zh) * | 2020-12-11 | 2021-10-08 | 橙色云互联网设计有限公司 | 基于在线工作系统的文件处理方法、装置以及存储介质 |
CN113190518B (zh) * | 2021-04-12 | 2022-04-15 | 中国人民解放军海军工程大学 | 基于移动云计算的协同编辑中一致性维护方法 |
CN113220645B (zh) * | 2021-05-31 | 2022-07-05 | 技德技术研究所(武汉)有限公司 | 一种Linux兼容Android的文件显示方法及装置 |
JP7002164B1 (ja) * | 2021-06-04 | 2022-01-20 | 株式会社インタラクティブソリューションズ | 画面共有時における同一性を共有者に検知させるシステムと入力された回答欄に関する情報を共有者に検知させるシステム |
TWI788085B (zh) * | 2021-11-03 | 2022-12-21 | 財團法人資訊工業策進會 | 同步管理伺服器、同步管理系統及同步管理方法 |
CN114189530A (zh) * | 2021-12-14 | 2022-03-15 | 南京讯天游科技有限公司 | 基于互联网的资源协同方法及系统 |
CN114579014A (zh) * | 2022-01-20 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 文档展示方法及装置 |
US20230328123A1 (en) * | 2022-04-01 | 2023-10-12 | Palantir Technologies Inc. | Shared state collaboration |
CN116489229A (zh) * | 2023-05-11 | 2023-07-25 | 中电金信软件有限公司 | 一种微服务编排方法、装置及存储介质 |
CN116882374B (zh) * | 2023-09-06 | 2023-11-14 | 南京嘉恒信息技术有限公司 | 一种基于Json结构数据的在线协同方法、系统及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110083A (zh) * | 2009-12-28 | 2011-06-29 | 北大方正集团有限公司 | 支持在线以及离线文档编辑的客户端装置及方法 |
US20120101980A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Synchronizing online document edits |
CN103544189A (zh) * | 2012-07-17 | 2014-01-29 | 珠海金山办公软件有限公司 | 锁定正在编辑文件的方法及系统 |
GB201419613D0 (en) * | 2014-11-04 | 2014-12-17 | Display Note Technologies Ltd | Method of synchronising multimedia content across a plurality of devices |
US10467298B2 (en) * | 2016-04-25 | 2019-11-05 | Microsoft Technology Licensing, Llc | Document collaboration discovery |
CN109582644B (zh) * | 2018-12-21 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 文件存储方法、装置、设备及计算机可读存储介质 |
CN109976617B (zh) * | 2019-04-03 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 文档展示方法和装置 |
-
2019
- 2019-11-22 CN CN201911159034.4A patent/CN110888845B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110888845A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888845B (zh) | 协同编辑文件及监控文件操作的方法和系统 | |
US11526260B2 (en) | Native application collaboration | |
CN111448566B (zh) | 在基于云的环境中管理批注 | |
CN109918345B (zh) | 文档处理方法、装置、终端及存储介质 | |
US10725626B2 (en) | Systems and methods for chat message management and document generation on devices | |
AU2016380694B2 (en) | User notifications for interaction information | |
US9071615B2 (en) | Shared space for communicating information | |
US9712569B2 (en) | Method and apparatus for timeline-synchronized note taking during a web conference | |
CN104067303B (zh) | 对会议文档和注释的笔记本驱动的收集 | |
EP2131363B1 (en) | Video editing system, video editing server and communication terminal | |
JP2020187759A (ja) | 共有され同期されたコンテンツにアクセスする装置間でプレゼンスを管理すること | |
AU2016381225A1 (en) | Native application collaboration | |
US20160048486A1 (en) | Multi-user stream collaborative document editing tool | |
JP2022023865A (ja) | デバイス上でのメッセージ管理とドキュメント生成のためのプログラム、方法、及びデバイス | |
US20110258526A1 (en) | Web content annotation management web browser plug-in | |
US20170054858A1 (en) | System and method for sharing collaborative digital photo albums | |
CN111444139A (zh) | 一种文件管理方法、装置、设备及存储介质 | |
JP2007052801A (ja) | 会議サーバプログラム | |
US11700292B2 (en) | Collaboration components for sharing content from electronic documents | |
US20200327161A1 (en) | Video processing method, device, terminal and storage medium | |
CN114745346A (zh) | 一种消息处理方法及装置、电子设备和可读存储介质 | |
AU2014351069B9 (en) | Social media platform | |
CN115904296B (zh) | 一种双录投屏签单服务系统 | |
US20240121124A1 (en) | Scheduled synchronous multimedia collaboration sessions | |
JP2017084285A (ja) | ウェブ会議システムおよびその制御方法、プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |