CN113490929A - 文件冲突检测 - Google Patents

文件冲突检测 Download PDF

Info

Publication number
CN113490929A
CN113490929A CN202080012766.5A CN202080012766A CN113490929A CN 113490929 A CN113490929 A CN 113490929A CN 202080012766 A CN202080012766 A CN 202080012766A CN 113490929 A CN113490929 A CN 113490929A
Authority
CN
China
Prior art keywords
file
shared file
version
computing device
shared
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.)
Pending
Application number
CN202080012766.5A
Other languages
English (en)
Inventor
尼尚特·贾万特·卡拉吉卡尔
阿贾伊·库马尔
詹森·延楚列夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN113490929A publication Critical patent/CN113490929A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文描述了用于计算设备上的共享文件冲突检测的方法和系统。计算设备存储可由各种其他计算设备访问的共享文件。在一个或多个计算设备上执行的操作系统生成对应于与共享文件相关联的文件操作的文件句柄。计算设备中的一个或多个可以从远程计算设备接收对与共享文件相关联的文件操作的请求。可向用户传输对应于与共享文件相关联的文件句柄的通知。可基于与共享文件相关联的文件句柄、文件操作和/或文件操作是否可导致应用程序崩溃或导致数据损坏来实现或拒绝对文件操作的请求。

Description

文件冲突检测
相关申请的交叉引用
本申请要求于2019年1月30日提交的美国非临时专利申请第16/262,496号的优先权,该专利申请的全部内容通过引用明确地并入本文。
技术领域
本文中描述的各方面总体上涉及计算机和计算机网络。具体地,本文中描述的各方面涉及文件系统、操作系统、读、写和存储数据、存储区域网络、版本化和计算机联网。
背景技术
计算机联网的改进使得跨多个计算设备共享对单个文件的访问变得越来越有吸引力。例如,公司的雇员可以共享和编辑存储在集中式服务器上的单个文档。诸如位于马里兰州森林山的阿帕奇(Apache)软件基金会的SUVERSION系统的版本化和修订控制系统可以允许这样的雇员随时间跟踪对文件的编辑。例如,版本化和修订控制程序的用户可将文件标记为在系统上打开,对该文件进行编辑,并将该文件标记为已发布以供其他用户编辑/访问。一些版本控制程序允许用户同时编辑特定类型的文件。例如,位于加利福尼亚州山景城的谷歌有限责任公司(Google LLC)的GOOGLE DOCS系统向用户提供了实时访问和编辑相同文档的能力,但是仅提供对办公套件文档(例如电子表格和文本文档)的支持。
发明内容
下文呈现本文中描述的各个方面的简化概述。本概述不是广泛的概述,并且不旨在标识所需的或关键的元素或者描绘权利要求的范围。以下概述仅以简化形式呈现一些概念,作为以下提供的更详细描述的介绍性序言。
为了克服本领域中的限制,并且为了克服在阅读和理解本说明书时显而易见的其他限制,本文中描述的各方面针对与共享文件相关联的编辑和冲突检测。诸如服务器等主机计算设备可存储可由多个计算设备访问的共享文件。例如,文本文档可以存储在主机计算设备上,并且用户可以使用相同或不同的计算设备,能够读取、编辑和/或删除该文本文档。主机计算设备可以执行操作系统,当主机计算设备或另一计算设备访问共享文件时,该操作系统创建对应于该访问的文件句柄。例如,可在主机计算设备打开或写入共享文件时创建文件句柄。可以监视这种文件句柄的创建和/或存在。例如,主机计算设备和/或其他计算设备可使用在主机计算设备上执行的操作系统来确定给定文件的文件句柄,从而可指示该文件是否正被访问和/或可能被编辑。主机计算设备可从计算设备接收共享文件的文件操作(例如,对文件操作的请求,诸如对共享文件的编辑)。文件操作可以是通过例如用共享文件的第二版本替换共享文件的第一版本来编辑共享文件,和/或可以是添加和/或移除共享文件的一个或多个部分。主机计算设备和/或其他计算设备可以将与编辑共享文件的请求相关联的共享文件的版本与共享文件进行比较。例如,文件操作请求可包括向文件的末端添加一行,且主机计算设备可比较具有和不具有所述行的共享文件的版本。主机计算设备可将对应于文件句柄和/或文件操作的通知传输到一个或多个计算设备,和/或可批准或拒绝文件操作。
这些和附加的方面将受益于下面进一步详细讨论的公开内容而被理解。
附图说明
通过参照考虑附图的以下描述,可以获得对本文中描述的各方面及其优点的更完整的理解,在附图中,相同的附图标记指示相同的特征,并且其中:
图1描绘了可以根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘了可以根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘了描绘具有共享文件和多个本地计算设备的服务器的说明性架构。
图4描绘了涉及文件冲突的说明性架构。
图5是可以针对共享文件执行的流程图。
图6描绘了包括文件句柄引擎的说明性网络架构。
图7描绘了可执行本文中描述的步骤的计算设备的说明性结构。
具体实施方式
在各种实施例的以下描述中,参考上文标识且形成本文的一部分的附图,并且在附图中以说明的方式示出其中可以实践本文中描述的各方面的各种实施例。应理解,在不脱离本文中描述的范围的情况下,可以利用其他实施例,并且可以进行结构和功能修改。各个方面能够是其他实施例并且能够以各种不同的方式实践或执行。
作为对下文更详细描述的主题的概述,本文中描述的各方面针对存储在联网环境中的文件,其中文件可存储在诸如服务器和本地计算设备等计算设备处并在其之间传输。这种文件的存储可以包括确定这种文件的版本和/或修订版。当前的版本化和修订控制程序通常不方便且不可靠。版本化和修订控制程序可以从文件系统中抽象出来,这意味着,例如,未被配置成使用版本化和修订控制程序的程序在被另一用户打开时可能无意地编辑和/或删除程序。另外,因为版本化和修订控制系统通常要求用户的计算设备指示他们正在访问文件,所以一些用户可能发现版本化和修订控制系统不方便和/或难以使用。虽然现有程序(例如办公套件)程序的插件降低了用户使用这些程序所需的努力,但是这些插件有时是不可靠的。更糟糕的是,版本化和修订控制程序可能是不可靠的,这意味着,例如,两个用户可能意外地编辑同一文件并导致该文件被损坏。
应理解,本文中使用的措辞和术语是为了描述的目的,而不应当被认为是限制性的。相反,本文中使用的短语和术语被给予其最广泛的解释和含义。使用“包括”和“包含”及其变体是指涵盖其后列出的项及其等同物以及附加项及其等同物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用是指包括直接和间接安装、连接、耦合、定位和接合。
计算架构
计算机软件、硬件和网络可以用在各种不同的系统环境中,包括独立环境、联网环境、远程访问环境(也称为远程桌面)、虚拟化环境和/或基于云的环境等。图1图示了可用于在独立环境和/或联网环境中实现本文中描述的一个或多个说明性方面的系统架构和数据处理设备的一个实例。各种网络节点103、105、107和109可以经由诸如因特网的广域网(WAN)101互连。也可以或可替代地使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101用于说明的目的,并且可以用更少或附加的计算机网络代替。局域网133可以具有任何已知的LAN拓扑中的一个或多个,并且可以使用各种不同的协议中的一个或多个,诸如以太网。设备103、105、107和109以及其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个。
本文中使用并在附图中描绘的术语“网络”不仅指其中远程存储设备经由一个或多个通信路径耦合在一起的系统,而且指有时可以耦合到这种具有存储能力的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,而且还包括“内容网络”,其包括归属于单个实体的数据,该单个实体驻留在全部物理网络上。
部件可以包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的总体访问、控制和管理,以执行本文中描述的一个或多个说明性方面。数据服务器103可以连接到web服务器105,用户通过该web服务器105与所请求的数据交互并获得所请求的数据。替代地,数据服务器103本身充当web服务器,并且直接连接到因特网。数据服务器103可以通过局域网133、广域网101(例如,因特网),经由直接连接或间接连接,或经由一些其他网络连接到web服务器105。用户可以使用远程计算机107、109,例如使用web浏览器经由web服务器105所承载的一个或多个外部暴露的网站连接到数据服务器103而与数据服务器103交互。客户端计算机107、109可以与数据服务器103一起使用以访问存储在其中的数据,或者可以用于其他目的。例如,如本领域中已知的,用户可以从客户端设备107使用因特网浏览器来访问web服务器105,或者通过执行通过计算机网络(诸如因特网)与web服务器105和/或数据服务器103通信的软件应用程序来访问web服务器105。
服务器和应用程序可以被组合在相同的物理机器上,并且保留单独的虚拟地址或逻辑地址,或者可以驻留在单独的物理机器上。图1仅图示了可以使用的网络架构的一个实例,并且本领域技术人员将理解,所使用的特定网络架构和数据处理设备可以改变,并且对于它们提供的功能是次要的,如本文中进一步描述的。例如,由web服务器105和数据服务器103提供的服务可以被组合在单个服务器上。
每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。例如,数据服务器103可以包括控制数据服务器103的整体操作的处理器111。数据服务器103还可以包括随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可以包括用于读、写、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指示数据服务器103执行本文中描述的各方面的控制逻辑125,以及提供可以或不可以结合本文中描述的方面使用的辅助、支持和/或其他功能的其他应用程序软件127。控制逻辑125在本文中也可以被称为数据服务器软件125。数据服务器软件125的功能可以指基于编码到控制逻辑125中的规则自动做出的操作或决定、由将输入提供到系统中的用户手动做出的操作或决定,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
存储器121还可以存储用于执行本文中描述的一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数据库129可以包括第二数据库131(例如,作为单独的表格、报告等)。即,根据系统设计,信息可以存储在单个数据库中,或分离成不同的逻辑数据库、虚拟数据库或物理数据库。设备105、107和109可以具有与关于设备103所描述的相似或不同的架构。本领域技术人员将理解,本文中描述的数据处理设备103(或设备105、107或109)的功能可以跨多个数据处理设备分布,以例如将处理负载跨多个计算机分配,从而基于地理位置、用户访问级别、服务质量(QoS)等来隔离交易。
一个或多个方面可以体现在计算机可用或可读的数据和/或计算机可执行指令中,诸如体现在由一个或多个计算机或本文中描述的其他设备执行的一个或多个程序模块中。一般而言,程序模块包括例程、程序、对象、部件、数据结构等,其在由计算机或其他设备中的处理器执行时执行特定任务或实现特定抽象数据类型。模块可以用随后被编译用于执行的源代码编程语言来编写,或者可以用诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)的脚本语言来编写。计算机可执行指令可以存储在诸如非易失性存储设备的计算机可读介质上。可以使用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光存储设备、磁存储设备和/或它们的任何组合。另外,表示本文中描述的数据或事件的各种传输(非存储)介质可以以穿过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)的信号传导介质传播的电磁波的形式在源和目的地之间传送。本文中描述的各个方面可以实现为方法、数据处理系统或计算机程序产品。因此,各种功能可整体或部分地实现在软件、固件和/或硬件或硬件等效物(诸如集成电路、现场可编程门阵列(FPGA)等)中。特定的数据结构可用于更有效地实现本文中描述的一个或多个方面,并且这样的数据结构被认为在本文中描述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,本文中描述的一个或多个方面可以在远程访问环境中实现。图2描绘了包括可根据本文中描述的一个或多个说明性方面使用的说明性计算环境200中的计算设备201的示例系统架构。计算设备201可以用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,并且可以被配置成为客户端访问设备提供虚拟机。计算设备201可以具有用于控制设备201及其相关部件(包括RAM 205、ROM 207、输入/输出(I/O)模块209和存储器215)的整体操作的处理器203。
I/O模块209可以包括计算设备201的用户可以通过其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或指示笔(或其他输入设备),并且还可以包括用于提供音频输出的扬声器中的一个或多个以及用于提供文本输出、视听输出和/或图形输出的视频显示设备中的一个或多个。软件可以存储在存储器215和/或其他存储装置中,以将指令提供到处理器203,用于将计算设备201配置到专用计算设备中,以便执行本文中描述的各种功能。例如,存储器215可以存储由计算设备201使用的软件,诸如操作系统217、应用程序219和相关联的数据库221。
计算设备201可以在支持到诸如终端240(也被称为客户端设备和/或客户端机器)等一个或多个远程计算机的连接的联网环境中操作。终端240可以是包括以上关于计算设备103或201描述的多个或全部元件的个人计算机、移动设备、膝上型计算机、平板计算机或服务器。图2所描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但还可以包括其他网络。当在LAN联网环境中使用时,计算设备201可以通过网络接口或适配器223连接到LAN225。当在WAN联网环境中使用时,计算设备201可以包括调制解调器或其他广域网接口227,用于在诸如计算机网络230(例如,因特网)等的WAN 229上建立通信。将理解,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其他装置。计算设备201和/或终端240还可以是包括诸如电池、扬声器和天线(未示出)等各种其他部件的移动终端(例如,移动电话、智能手机、个人数字助理(PDA)、笔记本等)。
本文中描述的方面还可以与众多其他通用或专用计算系统环境或配置一起操作。可适用于本文中描述的方面的其他计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。
如图2所示,一个或多个客户端设备240可以与一个或多个服务器206a-206n(本文中统称为“服务器206”)通信。在一个实施例中,计算环境200可以包括安装在服务器206与客户端机器240之间的网络电器。网络电器可以管理客户端/服务器连接,并且在一些情况下可以在多个后端服务器206之间负载平衡客户端连接。
在一些实施例中,客户端机器240可以被称为单个客户端机器240或单组客户端机器240,而服务器206可以被称为单个服务器206或单组服务器206。在一个实施例中,单个客户端机器240与多于一个的服务器206通信,而在另一个实施例中,单个服务器206与多于一个的客户端机器240通信。在又一实施例中,单个客户端机器240与单个服务器206通信。
在一些实施例中,客户端机器240可以由以下非穷举性术语中的任一个来引用:客户端机器;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;终点;或端点节点。在一些实施例中,服务器206可以由以下非穷举性术语中的任何一个来引用:服务器、本地机器;远程机器;服务器群或主机计算设备。
在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由类型1或类型2管理程序管理的任何虚拟机,管理程序例如由Citrix系统、IBM、VMware或任何其他管理程序开发的管理程序。在一些方面中,虚拟机可以由管理程序管理,而在其他方面中,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施例包括客户端设备240,其显示由在服务器206或其他远程定位的机器上远程执行的应用程序生成的应用程序输出。在这些实施例中,客户端设备240可以执行虚拟机接收机程序或应用程序以在应用程序窗口、浏览器或其他输出窗口中显示输出。在一个实例中,应用程序是桌面,而在其他实例中,应用程序是生成或呈现桌面的应用程序。桌面可以包括为其中可集成本地和/或远程应用程序的操作系统的实例提供用户界面的图形外壳。本文中使用的应用程序是在操作系统(并且可选地还有桌面)的实例已经被加载之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其他程序来将数据发送到在客户端上执行的瘦客户端或远程显示应用程序,以呈现由在服务器206上执行的应用程序生成的显示输出。瘦客户端或远程显示协议可以是以下非穷举性协议列表中的任何一个:佛罗里达州劳德代尔堡的思杰系统公司(Citrix Systems,Inc.)开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙市的微软(Microsoft Corporation)公司制造的远程桌面协议(RDP)。
远程计算环境可以包括多于一个服务器206a-206n,使得服务器206a-206n例如在云计算环境中在逻辑上一起分组到服务器群206中。服务器群206可以包括在逻辑上分组在一起时地理上分散的服务器206,或在逻辑上分组在一起时彼此邻近定位的服务器206。在一些实施例中,服务器群206内的地理上分散的服务器206a-206n可以使用WAN(广域)、MAN(城域)或LAN(局域)通信,其中不同地理区域可以被表征为:不同的大陆;大陆的不同区域;不同的国家;不同的州;不同的城市;不同的校园;不同的房间;或前述地理位置的任何组合。在一些实施例中,服务器群206可以作为单个实体来管理,而在其他实施例中,服务器群206可以包括多个服务器群。
在一些实施例中,服务器群可以包括执行基本上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其他实施例中,服务器群206可以包括执行第一类型的操作系统平台的一个或多个服务器的第一组,以及执行第二类型的操作系统平台的一个或多个服务器的第二组。
服务器206可以根据需要被配置为任何类型的服务器,例如文件服务器、应用程序服务器、web服务器、代理服务器、电器、网络电器、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、web服务器、应用程序服务器,或者被配置为主应用程序服务器、执行活动目录的服务器或执行提供防火墙功能、应用程序功能或负载平衡功能的应用程序加速程序的服务器。也可以使用其他服务器类型。
一些实施例包括第一服务器206a,第一服务器206a从客户端机器240接收请求,将该请求转发到第二服务器206b(未示出),并且用来自第二服务器206b(未示出)的响应来响应由客户端机器240生成的请求。第一服务器206a可以获取客户端机器240可用的应用程序的枚举以及与承载应用程序的枚举内标识的应用程序的应用程序服务器206相关联的地址信息。然后,第一服务器206a可以使用web接口呈现对客户请求的响应,并且直接与客户端240通信以向客户端240提供对标识后的应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如网络101)传输数据。
共享文件冲突检测
图3描绘了具有存储共享文件的服务器301的说明性网络架构。服务器301可以经由计算机网络304连接到第一计算设备302a、第二计算设备302b和第三计算设备302c。计算机网络304可以与计算机网络230相同或相似。服务器301、第一计算设备302a、第二计算设备302b和第三计算设备302c可以都是诸如计算设备201等计算设备或在其上执行。服务器301可以存储共享文件。例如,服务器301存储文本文档的第一版本303a、可执行文件的第一版本303b和电子表格的第二版本330c。第一计算设备302a被示出为存储文本文档的第二版本305a,并且第三计算设备302c被示出为存储文本文档的第一版本305b。文本文档的第二版本305a可以是文本文档的第一版本303a的修改版本。例如,文本文档的第二版本305a与文本文档的第一版本303a相比可具有更少的行。文本文档的第一版本305b和文本文档的第一版本303a可以是相同的。虽然这些文件被称为版本,但是这些文件不需要被明确地指定为版本:例如,电子表格的第二版本303c可以不同于先前版本,仅在于它以某种方式不同于先前存储在服务器301上的电子表格的版本。
服务器301和/或一个或多个计算设备(例如,第一计算设备302a)可被配置成存储共享文件,诸如文本文档的第一版本303a。这些文件可以根据任何文件系统来存储,例如文件分配表(FAT)架构。服务器上的一些文件可以例如经由计算机网络304与诸如第一计算设备302a等其他计算设备共享。例如,文本文档的第一版本303a可通过将文本文档的第一版本303a放置在共享文件夹中和/或通过用其可用于共享的指示来标记文件来与第二计算设备302b共享。不需要以特殊格式修改或维护文件以便共享。服务器301可被配置成执行关于文件的其他操作,诸如编辑文件。
服务器301和/或一个或多个计算设备(例如,第一计算设备302a)可以配置有管理对应于文件的文件句柄的操作系统。文件句柄可以是例如由在服务器301和/或另一计算设备上执行的进程正在或已经访问文件的全部或部分的任何指示符。这种文件句柄可以包括例如操作系统原语。例如,当用户在应用程序中打开电子表格的第二版本303c和/或向操作系统查询与电子表格的第二版本303c相关联的文件属性时,可以创建文件句柄。文件句柄可以指示对文件采取的一个或多个动作。例如,文件句柄可指示文件正仅被读取,文件当前正被写入或可被写入,文件已被关闭,或其他类似的文件操作。文件句柄可以对应于某一时间或某一时间段,例如使得文件句柄可以指示文件何时被打开。
文件句柄可以由访问文件的计算设备创建。这种文件句柄可以包括文件正在被使用的指示。例如,第二计算设备302b对电子表格的第二版本330c的访问可导致在第二计算设备302b处创建文件句柄和/或在服务器301处创建文件句柄。在云计算环境中,可以生成对应于这种访问的通知,并且可以基于这些通知生成文件句柄。例如,云计算环境中的计算设备可执行向其他计算设备提供对共享文件活动的周期性通知的软件。文件句柄可由服务器301以外的计算机访问。例如,第一计算设备302a可被配置成从服务器301发送和/或接收文件句柄的列表,和/或服务器301可被配置成将文件句柄的指示从第一组计算设备传输到不同组的计算设备。
诸如服务器301之类的计算设备可以被配置成监视对文件的访问并将其与用户相关联。用户可以与在服务器301和/或另一计算设备上执行的进程相关联,并且服务器301可以使用文件句柄和关联来将用户与对特定文件的访问相关联。例如,服务器301可以维护将用户名(例如,用于访问计算机网络304的用户名)与文件句柄和/或特定文件相关联的表。该关联可以部分地由在服务器上执行的操作系统来执行。
计算设备还可以被配置成存储文件和/或执行关于文件的操作。例如,第三计算设备302c可从服务器301下载文本文档的第一版本303a的副本并将其存储(例如,作为文本文档的第二版本305b)。这种下载可以在文件被编辑之前发生。作为另一实例,第一计算设备302a可下载和编辑文件的副本,诸如文本文档的第二版本305a如何可以是存储在服务器301上的文本文档的第一版本303a的经编辑版本。
诸如第一计算设备302a等计算设备可被配置成检索、编辑文档并将其传输到服务器301。例如,用户可以使用在第二计算设备302b上执行的应用程序来访问电子表格的第二版本303c。这可以使得一个或多个计算设备(例如,服务器301、第二计算设备302b等,包括其组合)创建对应于该访问的一个或多个文件句柄。第二计算设备302b例如可以接收文件句柄的指示。第二计算设备302b的用户可以编辑电子表格的第二版本303c、创建电子表格的第三版本。然后,用户可以按下应用程序上的“保存”按钮,使得应用程序将电子表格的第三版本传输到服务器。这可以使得一个或多个计算设备(例如,服务器301、第二计算设备302b等,包括其组合)创建对应于电子表格的第三版本的第二文件句柄,和/或编辑现有文件句柄。该动作可以同时导致检测到关于文件的可能冲突情形,且如下文所详述,可向用户呈现如下选项:例如丢弃其改变、丢弃与不同计算设备相关联的改变(及/或覆写文件的副本,例如存储在服务器301上的)及/或下载与另一计算设备相关联的文件的副本以供比较。该过程可以与对存储在第二计算设备302b处的文件执行的文件操作相同或相似。换句话说,基于与服务器上的文件相关联的文件句柄,并且基于用户试图对这种文件进行冲突编辑,可以向用户呈现处理冲突编辑的各种选项。
图4描绘了图3的简化版本,包括服务器301、第一计算设备302a、第二计算设备302b和文本文档的第一版本303a。示出了文件操作冲突。第一文件操作401a和第二文件操作401b被示出为同时访问文本文档的第一版本303a。两个文件操作不必同时进行;然而,为了简单起见,两个文件操作被描绘为同时发生。在这种情况下,存在文本文档的第一版本303a可能被损坏和/或一个或多个文件操作可能被忽略的可能性。例如,如果第一文件操作401a和第二文件操作401b影响文本文档的第一版本303a的相同部分,则同时执行编辑的尝试可能导致一个或多个文件操作被忽略,一个或多个应用程序崩溃,错误被引入文件,和/或文件被损坏。
图5示出了可由诸如服务器301和/或其他计算设备(例如,第一计算设备302a)等计算设备执行的流程图。在步骤501中,可以配置诸如服务器301之类的设备和/或其他计算设备。可以安装并执行操作系统,这使得基于文件操作生成文件句柄。可以向一个或多个计算设备提供对文件的远程访问。可以确定被授权访问这些文件的用户。可以确定可以共享文件的一个或多个规则。例如,可以创建文件夹,其中文件夹中的文件被自动共享给网络上的计算设备。
在步骤502中,可以监视文件句柄。操作系统可被配置成生成对应于与共享文件相关联的文件操作的文件句柄,并且可确定和/或存储文件句柄的列表。文件句柄可以与一个或多个计算设备的一个或多个用户相关联,包括但不限于经受文件操作的共享文件的主机。文件句柄可以与一个或多个文件相关联。文件句柄可以与一个或多个文件操作相关联,例如读操作、写操作、删除操作等。任何计算设备可以接收文件句柄,使得创建文件句柄的计算设备不必是具有关于这种文件句柄的信息的唯一计算设备。例如,计算设备可以向服务器301查询文件句柄列表。
在步骤503中,可以从计算设备接收对于共享文件的文件操作。计算设备可以是与存储文件的计算设备相同或不同的计算设备。例如,计算设备可编辑其自己的电子表格,或者远程计算设备可传输对于同一电子表格的文件操作。可以通过网络接收文件操作。例如,文件操作可包括要添加、移除和/或修改的共享文件的一个或多个部分的指示。例如,对电子表格的编辑的文件操作请求可增加第一单元格的值、删除第二单元格中的值,以及将值插入到先前空的单元格中。文件操作可以作为例如对共享文件的编辑的请求被接收,和/或可以作为用共享文件的新版本替换当前存储的共享文件的请求被接收。
可以记录接收到的文件操作,而不管文件操作是否最终被授权。文件操作的日志可以包括关于文件操作是否被授权的指示。该日志可用于确定例如一个或多个进程是否不期望地独占一个或多个文件。
在步骤504中,可以为对应于文件操作的共享文件确定文件句柄。对于给定的共享文件可以存在一个或多个文件句柄。一些文件句柄可以指示共享文件可以被自由地编辑。例如,文件句柄可指示共享文件已被另一用户关闭,这意味着另一用户可编辑该共享文件。一些文件句柄可以指示共享文件正在使用或可以被编辑。例如,文件句柄可以指示共享文件正在被编辑、读取和/或最近被编辑和/或读取。可以存在相同共享文件的多个文件句柄。例如,多个用户可以同时打开相同的共享文件。文件的文件句柄可以与文件的接收一起由计算设备接收。例如,第一计算设备302a可以从服务器301接收文本文档的第一版本303a的副本以及与文本文档的第一版本303a相关联的文件句柄列表。
在步骤505中,基于文件句柄,确定是否存在可能的冲突。可能存在冲突,步骤503中的文件操作与由步骤504中确定的文件句柄所指示的活动冲突,使得共享文件看起来在使用中。例如,如果第一用户正在编辑文档,则允许第二用户编辑同一文档可能引起冲突。编辑相同共享文件的两个用户不需要总是指示冲突:例如,第一用户可以编辑共享文件的第一行,而第二用户可以编辑同一共享文件的第五行而不与第一用户冲突。作为另一实例,如果第一用户正在读取共享文件,则允许第二用户删除同一共享文件可能导致冲突。文件句柄可能无法明确指示是否正在对共享文件执行文件操作。例如,文件句柄可以指示用户最近打开了共享文件,但不指示用户是否可能很快保存共享文件的已编辑版本。这样,可以在步骤505中确定可能冲突的可能性(例如,共享文件将在特定时间段期间被编辑的特定百分比可能性)。如果存在可能的冲突,则流程图进行到步骤506。否则,流程图进行到步骤508。
在步骤506中,评估文件操作。可以基于所请求的文件操作,生成共享文件的第二版本,并且可以将共享文件的第二版本与共享文件的原始版本进行比较。例如,如果文件操作涉及添加内容,则可将其标记为最小,而如果文件操作涉及删除内容,则可将其标记为显著。作为另一实例,可以确定共享文件的改变百分比。
可以基于所请求的文件操作来生成共享文件的第二版本,并且可以确定共享文件的第二版本是否被损坏或可能被损坏。例如,共享文件的第二版本可以被执行或以其他方式打开(例如,在在操作系统的沙箱环境中执行的应用程序中),以确定共享文件的第二版本是否与一个或多个错误相关联。基于执行或以其他方式打开共享文件的第二版本,可以确定潜在损坏度量。例如,潜在损坏度量可以是特定应用程序不能读取的文件的百分比。作为另一实例,潜在损坏度量可以是错误的数量。作为又一实例,潜在损坏度量可以是在打开共享文件的第二版本之后沙箱化环境中的一个或多个应用程序是否崩溃的布尔值。如果潜在损坏度量超过预定阈值(例如,一个错误、多于5%的文件不可读等),则共享文件的第二版本可被确定为已被损坏。
可以对照标准来评估共享文件的第二版本,以确定共享文件的第二版本是否偏离该标准。例如,共享文件的第二版本可以是可扩展标记语言(XML)文件,并且可以评估共享文件的第二版本以确定其全部或部分是否偏离XML约定。可通过确定文件操作是否可导致一个或多个应用程序崩溃来评估文件操作。例如,共享文件可以是执行应用程序的依赖性,使得在应用程序执行时对共享文件的编辑可能会导致与应用程序相关联的一个或多个进程崩溃。
在步骤507中,可以传输对应于文件句柄和/或文件操作的通知。通知可以被配置成向用户(例如与文件操作相关联的用户)通知在步骤505中确定的可能冲突。通知可以包括关于文件句柄和/或文件操作的信息,诸如当最后访问共享文件时(例如,由不同于与所请求的文件操作相关联的用户的一个或多个用户)可能存在可能冲突的指示,以及类似的上下文信息。通知可以向用户提供与文件操作相关联的一个或多个选项。例如,由服务器传输的通知可以被配置成允许通知的接收者制作存储在服务器上的共享文件的副本、将共享文件的已编辑版本保存为新的共享文件、丢弃共享文件的已编辑版本、尝试强制重写存储在服务器上的共享文件的副本、向与文件句柄相关联的另一用户发送消息等。通知可以使用户能够与另一用户协商对共享文件的访问。例如,通知可以允许用户限制第二用户必须访问和/或编辑共享文件的剩余时间。通知可以通过网络传输,例如作为推送通知。
在步骤508中,确定是否应当批准文件操作。文件操作是否可以被批准可以基于在步骤504中确定的文件句柄。例如,如果不同的用户最近打开了共享文件并可能对其进行编辑,则文件操作可能被拒绝,因为文件操作可能与用户对共享文件的访问冲突。文件操作的性质也可能影响文件操作是否应当被批准。例如,尽管有冲突,对文本文件的最小编辑可能是可允许的,因为最小编辑与涉及该文件的其他活动冲突的可能性可能很小,和/或因为当前访问共享文件的其他用户可能不中断地重新访问共享文件。作为对比实例,重要的编辑(例如,删除多于共享文件的预定部分)可能是不允许的,因为它很可能干扰其他用户对文件的访问。对文件操作的批准可以基于对步骤507中传输的通知的响应。例如,如果用户选择将所编辑的文件保存为新文件,则文件操作可被拒绝,因为编辑将被保存在不同的共享文件中。作为另一实例,如果用户与提高的账户许可相关联,则可允许用户进行文件操作,而不管其他用户访问共享文件。如果文件操作被批准,则流程图进行到步骤509。否则,流程图进行到步骤510。
在步骤509中,基于不存在可能的冲突或对文件操作的批准,可以实现文件操作。实现文件操作可以包括用共享文件的新版本替换共享文件、对共享文件进行一个或多个改变,和/或删除共享文件的全部或部分。实现文件操作可包括向另一计算设备传输实现文件操作的指令。实现文件操作可包括防止其他计算设备访问共享文件。阻止对文件的访问可以包括关闭与共享文件相关联的当前打开的文件句柄。例如,存储共享文件的计算设备可强制关闭与对应于共享文件的打开文件句柄相关联的所有进程。实现文件操作可以包括等待直到与共享文件相关联的一个或多个文件句柄被关闭。例如,文件操作可以不被实现,直到所有其他用户已经结束对其共享文件副本的访问。然后流程图可以返回到步骤501。
在步骤510中,可以拒绝文件操作。拒绝所述文件操作可包括丢弃对应于所述文件操作而传输的数据。例如,计算设备可以传输要由服务器保存的共享文件的新版本,并且服务器可以删除该文件的新版本。拒绝文件操作可以包括向与所请求的文件操作相关联的用户传输第二通知。例如,第二通知可以指示文件操作为何被拒绝的一个或多个原因。
无论是在步骤509中实现还是在步骤510中拒绝,都可以跟踪文件操作。文件操作跟踪可用于确定例如特定共享文件已被计算设备编辑或访问的次数。这种跟踪可用于例如改变共享文件的位置(例如,将流行的共享文件移得更靠近用户,使得它们可被更快地访问,和/或将不太流行的共享文件移离用户以节省存储空间)。文件操作跟踪还可用于实施与一个或多个用户可访问共享文件的最大次数相关的服务级协定。例如,基于确定用户已编辑共享文件的次数超过预定次数,可自动拒绝将来的文件操作。
图6描绘了类似于图4的网络架构并考虑到图5中的步骤的说明性网络架构。服务器301、第一计算设备302a、第二计算设备302b和文本文档的第一版本303a与图3和图4相比没有改变。第一计算设备302a具有文件句柄引擎601和通知引擎602a。第二计算设备302b具有文件句柄引擎602b和通知引擎602b。类似于图4所示的情况,服务器301接收第一文件操作603a和第二文件操作603b。第一文件操作603a可以基于文件句柄引擎601a来确定,第二文件操作603b可以基于文件句柄引擎601b来确定。例如,文件句柄引擎601a可被配置成从服务器301接收操作系统文件句柄。基于图5所示的步骤,实现第一文件操作603a,如延伸到文本文档的第一版本303a的箭头所反映的。第一文件操作603a可以在第二文件操作603b之前执行,因为它比第二文件操作603b到达得更快,或者基于用于对文件操作区分优先级的一个或多个规则。例如,服务器301可以被配置成将较简单的文件操作优先于较重要的文件操作,将较早的文件操作优先于较晚的文件操作等。响应于从第二计算设备302b接收到第二文件操作603b,服务器301向第二计算设备302b传输通知604b,通知604b可由通知引擎602b显示。也可向第一计算设备302a传输通知604a。通知可以指示,例如,第二文件操作603b将直到第一文件操作603a已经完成才被实现。虽然仅将第一文件操作603a描述为在文本文档的第一版本303a处实现,但是服务器301稍后也可以使第二文件操作603b实现。例如,服务器301可以等待预定的时间段,然后对文本文档的第一版本303a实现第二文件操作603b。
图7描绘了可以执行图5中描绘的步骤的计算设备的示例配置。可以与服务器301相同或相似的计算设备700可以具有文件系统701,文件系统701包括文件读取器702、文件写入器703和文件处理器监视器704。计算设备还可以具有文件存储器705、操作系统706、轮询引擎708、清除引擎709和文件分析引擎710。文件处理器监视器704可以与通知引擎707相关联。
文件存储器705可存储文件,文件可由文件读取器702读取并可由文件写入器703写入。文件读取器702和文件写入器703可执行由在计算设备700上执行的进程或经由远程计算设备请求的文件操作。这种文件操作可以使操作系统706创建文件句柄,文件句柄可以由文件处理器监视器704监视。文件处理器监视器704可被配置成向例如另一计算设备传输文件句柄的指示。轮询引擎708可用于轮询关于文件存储器705中的文件的文件操作的其他计算设备。例如,轮询引擎708可被配置成周期性地查询远程计算设备关于该远程计算设备是否仍在读取/编辑从文件存储器705下载的文件。清理引擎709可以被配置成执行关于文件存储器705的文件优化和组织任务,诸如组织文件、删除文件等。文件分析引擎可以被配置成分析文件,例如存储在文件存储器705中的文件,以确定文件是否损坏(例如,通过使用潜在损坏度量来测试文件)和/或文件是否符合标准。
尽管已经用对结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,以上描述的具体特征和动作是作为所附权利要求的示例实现来描述的。

Claims (20)

1.一种方法,包括:
由第一计算设备存储共享文件,其中所述共享文件能够由多个计算设备访问;
基于与所述共享文件相关联的操作系统文件句柄来确定所述共享文件正被访问;
从第二计算设备接收编辑所述共享文件的请求;
由所述第一计算设备并基于所述操作系统文件句柄阻止对所述共享文件的编辑;以及
基于所述请求向所述第二计算设备发送对应于所述操作系统文件句柄的通知。
2.根据权利要求1所述的方法,还包括:
接收对所述通知的响应;以及
基于所述响应、所述共享文件以及对所述共享文件的所述编辑来生成新的共享文件。
3.根据权利要求1所述的方法,还包括:
基于编辑所述共享文件的所述请求确定所述共享文件的第二版本;
比较所述共享文件和所述共享文件的所述第二版本;以及
基于比较执行对所述共享文件的所述编辑。
4.根据权利要求3所述的方法,其中,执行对所述共享文件的所述编辑还基于确定潜在损坏度量是否满足预定阈值。
5.根据权利要求1所述的方法,其中,所述通知使所述第二计算设备能够创建所述共享文件的副本。
6.根据权利要求1所述的方法,其中,所述通知使所述第二计算设备能够创建所述共享文件的新版本。
7.根据权利要求1所述的方法,其中,所述操作系统文件句柄与第三计算设备对所述共享文件的访问相关联。
8.根据权利要求7所述的方法,还包括:
由所述第一计算设备并基于编辑所述共享文件的所述请求来阻止所述第三计算设备对所述共享文件的进一步访问。
9.根据权利要求1所述的方法,其中,在所述第一计算设备上执行的操作系统被配置成基于对共享文件的访问来生成操作系统文件句柄。
10.一种方法,包括:
由第一计算设备存储共享文件的第一版本,其中,所述共享文件能够由多个计算设备访问;
由所述第一计算设备访问所述共享文件的所述第一版本,其中,在所述第一计算设备上执行的操作系统被配置成基于访问来生成操作系统文件句柄;
从第二计算设备接收所述共享文件的第二版本;
比较所述共享文件的所述第一版本和所述共享文件的所述第二版本;以及
基于所述操作系统文件句柄和比较,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本。
11.根据权利要求10所述的方法,其中,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本还基于:
使所述共享文件的所述第二版本在沙箱化环境中打开。
12.根据权利要求10所述的方法,其中,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本还基于确定潜在损坏度量是否满足预定阈值。
13.根据权利要求10所述的方法,还包括:
向所述第二计算设备传输对应于所述操作系统文件句柄的通知。
14.根据权利要求10所述的方法,其中,用所述共享文件的所述第二版本替换所述共享文件包括:
确定所述操作系统文件句柄已被关闭。
15.根据权利要求10所述的方法,还包括:
阻止所述第一计算设备对所述共享文件的进一步访问。
16.一种系统,包括:
服务器;以及
本地计算设备,
其中,所述本地计算设备被配置成:
从所述服务器接收共享文件的第一版本;
确定操作系统文件句柄与所述共享文件的所述第一版本相关联;
比较所述共享文件的所述第一版本和所述共享文件的第二版本;以及
向所述服务器传输所述共享文件的所述第二版本;以及
其中,所述服务器被配置成:
用所述共享文件的所述第二版本替换所述共享文件的所述第一版本。
17.根据权利要求16所述的系统,其中,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本包括:
使所述共享文件的所述第二版本在沙箱化环境中打开。
18.根据权利要求16所述的系统,其中,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本还基于确定潜在损坏度量是否满足预定阈值。
19.根据权利要求16所述的系统,其中,所述服务器还被配置成:
向所述本地计算设备传输所述操作系统文件句柄的指示。
20.根据权利要求16所述的系统,其中,用所述共享文件的所述第二版本替换所述共享文件的所述第一版本包括:
确定所述操作系统文件句柄已被关闭。
CN202080012766.5A 2019-01-30 2020-01-28 文件冲突检测 Pending CN113490929A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/262,496 US11409716B2 (en) 2019-01-30 2019-01-30 File conflict detection
US16/262,496 2019-01-30
PCT/US2020/015316 WO2020159923A2 (en) 2019-01-30 2020-01-28 File conflict detection

Publications (1)

Publication Number Publication Date
CN113490929A true CN113490929A (zh) 2021-10-08

Family

ID=69740593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080012766.5A Pending CN113490929A (zh) 2019-01-30 2020-01-28 文件冲突检测

Country Status (6)

Country Link
US (1) US11409716B2 (zh)
EP (1) EP3918483A2 (zh)
CN (1) CN113490929A (zh)
AU (1) AU2020215675B2 (zh)
CA (1) CA3127601A1 (zh)
WO (1) WO2020159923A2 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110282850A1 (en) * 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data
CN102325169A (zh) * 2011-08-22 2012-01-18 盛乐信息技术(上海)有限公司 支持共享和协作的网络文件系统及方法
CN102770870A (zh) * 2010-01-15 2012-11-07 苹果公司 专用网络文件服务器
CN103345482A (zh) * 2013-06-20 2013-10-09 上海爱数软件有限公司 一种网络存储系统及其文件访问冲突处理方法
CN103914439A (zh) * 2013-01-04 2014-07-09 中国移动通信集团公司 一种文档在线编辑方法、设备以及系统
CN104838630A (zh) * 2012-10-10 2015-08-12 思杰系统有限公司 基于策略的应用程序管理
CN105474209A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 管理对共享文档的改动
US20170192656A1 (en) * 2015-12-30 2017-07-06 Dropbox, Inc. Native Application Collaboration
CN108352004A (zh) * 2015-11-19 2018-07-31 微软技术许可有限责任公司 对共享文件的私人编辑

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63204437A (ja) 1987-02-13 1988-08-24 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ロック・システム
JP4069905B2 (ja) 2004-06-28 2008-04-02 コニカミノルタビジネステクノロジーズ株式会社 共有ファイル管理システムおよびサーバー
US8856256B1 (en) * 2013-03-13 2014-10-07 CoralTree Inc. System and method for file sharing and updating
US10536523B2 (en) * 2014-05-11 2020-01-14 Microsoft Technology Licensing, Llc File service using a shared file access-rest interface
US10997122B2 (en) * 2018-12-05 2021-05-04 Citrix Systems, Inc. File redundancy detection and mitigation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102770870A (zh) * 2010-01-15 2012-11-07 苹果公司 专用网络文件服务器
US20110282850A1 (en) * 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data
CN102325169A (zh) * 2011-08-22 2012-01-18 盛乐信息技术(上海)有限公司 支持共享和协作的网络文件系统及方法
CN104838630A (zh) * 2012-10-10 2015-08-12 思杰系统有限公司 基于策略的应用程序管理
CN103914439A (zh) * 2013-01-04 2014-07-09 中国移动通信集团公司 一种文档在线编辑方法、设备以及系统
CN105474209A (zh) * 2013-06-14 2016-04-06 微软技术许可有限责任公司 管理对共享文档的改动
CN103345482A (zh) * 2013-06-20 2013-10-09 上海爱数软件有限公司 一种网络存储系统及其文件访问冲突处理方法
CN108352004A (zh) * 2015-11-19 2018-07-31 微软技术许可有限责任公司 对共享文件的私人编辑
US20170192656A1 (en) * 2015-12-30 2017-07-06 Dropbox, Inc. Native Application Collaboration

Also Published As

Publication number Publication date
WO2020159923A3 (en) 2020-09-10
EP3918483A2 (en) 2021-12-08
US20200242089A1 (en) 2020-07-30
US11409716B2 (en) 2022-08-09
AU2020215675A1 (en) 2021-09-16
CA3127601A1 (en) 2020-08-06
WO2020159923A2 (en) 2020-08-06
AU2020215675B2 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
US11983196B2 (en) Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
EP3707615B1 (en) Violation resolution in client synchronization
US20210248112A1 (en) System and method for content synchronization
US7779387B2 (en) Offline source code control
US11455278B2 (en) Workflow functions of content management system enforced by client device
US10140467B1 (en) Workflow functions of content management system enforced by client device
US9021309B2 (en) Method and system for creating virtual editable data objects by using a read-only data set as baseline
US10789111B2 (en) Message oriented middleware with integrated rules engine
US10970193B2 (en) Debugging a client synchronization service
US10747643B2 (en) System for debugging a client synchronization service
US20210209064A1 (en) File Redundancy Detection and Mitigation
US20030105780A1 (en) File system, control method, and program
WO2023147425A1 (en) Automatic canvas creation associated with a group-based communication channel
AU2020215675B2 (en) File conflict detection
US20200356720A1 (en) Rendering Based on a Document Object Model
US9992283B2 (en) Providing a single interface for accessing resources that are distributed among multiple platforms

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211008