CN108431797A - 电子文档的存储器节约的版本控制 - Google Patents

电子文档的存储器节约的版本控制 Download PDF

Info

Publication number
CN108431797A
CN108431797A CN201680076891.6A CN201680076891A CN108431797A CN 108431797 A CN108431797 A CN 108431797A CN 201680076891 A CN201680076891 A CN 201680076891A CN 108431797 A CN108431797 A CN 108431797A
Authority
CN
China
Prior art keywords
client
version
electronic document
version control
server
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.)
Granted
Application number
CN201680076891.6A
Other languages
English (en)
Other versions
CN108431797B (zh
Inventor
D·L·米尔瓦尼
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108431797A publication Critical patent/CN108431797A/zh
Application granted granted Critical
Publication of CN108431797B publication Critical patent/CN108431797B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了电子文档的存储器节约的版本控制。客户端版本控制引擎对客户端版本控制因素进行分析并且服务器版本控制引擎对服务器版本控制因素进行分析,以用于确定电子文档何时应当被存储为新版本。由此,电子文档的新版本仅在被确定为充分重要时被创建,因此减少了增加的版本负载所需的存储器存储的量。

Description

电子文档的存储器节约的版本控制
背景技术
随着计算设备变得越来越具有移动性,云存储已经成为了存储文档并且在设备与用户之间传输它们的标准。例如,用户被使能在具有互联网连接的几乎任何地方来访问他们的文档。额外地,用户能够容易地与其他用户共享文档,并且与其他用户协作以同时创建文档。
越来越多的应用采用自动保存功能来在不需要用户明确地命令应用保存文档的情况下自动地保存文档。例如,应用可以以预先确定的间隔自动地保存文档,这有助于降低数据丢失的风险或影响。如能够意识到的,随着对自动保存的增加的使用,文档的版本历史变得更大且变化更快。由此,存储服务更加频繁地被加以重负,并且导致更多的存储成本来处理该增加的版本负载。
发明内容
提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在帮助确定所要求保护的主题的范围。
多个方面针对电子文档的存储器节约的版本控制(versioning)的自动化系统、方法和设备。根据一个方面,当客户端设备的客户端用户对存储在服务器存储库中的文档进行编辑时,客户端版本控制引擎分析与客户端对所述电子文档进行的编辑相关联的各种特定于客户端的因素,以确定一组客户端编辑是否应当被存储为新版本。例如,客户端版本控制引擎关于与客户端编辑相关联的重要性等级何时上升至保证创建电子文档的新版本以确保该文档的有用版本的阈值进行确定,并且当达到该阈值时请求服务器创建新版本。
根据另一个方面,档服务器从客户端接收到用于保存至电子文档的一组客户端编辑时,服务器版本控制引擎对与保存和版本控制该电子文档相关联的各种特定于服务器的因素进行分析以确定所述一组客户端编辑是否应当被存储为新版本。例如,客户端版本控制引擎关于与特定于服务器的因素相关联的重要性等级是否上升至保证创建电子文档的新版本以确保该文档的有用版本的阈值进行确定。当达到该阈值时,服务器生成针对该电子文档的新版本标识符,并且使用该新版本标识符将客户端编辑保存至该电子文档,因此创建包括所述客户端编辑的该电子文档的新版本。
根据多个方面,通过分析用于确定电子文档何时应当被存储为新版本的客户端和服务器因素,电子文档的新版本仅在被确定为充分重要时才被创建,因此减少了增加的版本负载所需的存储器存储的量。
示例被实现为计算机过程、计算系统,或者诸如设备、计算机程序产品、或计算机可读介质之类的制品。根据一个方面,所述计算机程序产品是能够由计算机系统所读取并且对用于执行计算机过程的指令的计算机程序进行编码的计算机存储介质。
在以下的附图和描述中阐述了一个或多个方面的细节。通过阅读以下详细描述并且回顾相关联的附图,其他特征和优势将是显然的。所要理解的是,以下的详细描述仅是示例性的而不是对权利要求的限制。
附图说明
结合在本公开中并且构成其一部分的附图示出了各种方面。在附图中:
图1是简化框图,其示出了针对电子文档的存储器节约的版本控制的示例系统的组件;
图2是简化框图,其示出了客户端版本控制引擎和服务器版本控制引擎的组件;
图3A和3B是用于查看电子文档的版本历史的示例用户界面的示图;
图4是流程图,其示出了在针对电子文档的存储器节约的版本控制的示例方法中所涉及的一般阶段;
图5是示出了计算设备的示例物理组件的框图;
图6A和6B是移动计算设备的简化框图;以及
图7是分布式计算系统的简化框图。
具体实施方式
以下详细描述对附图进行参考。在任何可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同或相似的元素。尽管示例可以被描述,但是修改、调节、和其他实施方式也是可能的。例如,可以对在图中所示出的元素进行替换、增加、或修改,并且可以通过对所公开的方法进行替换、重新排序、或增加阶段来修改在本文中所描述的方法。由此,以下的详细描述不是限制性的,但替代地,合适的范围是由所附权利要求来限定的。示例可采用硬件实现的形式、全软件实现的形式、或者结合软件和硬件方面的实现的形式。因此,以下详细描述不被认为是限制性意义。
本公开的方面针对电子文档的存储器节约的版本控制的方法、系统和计算机存储介质。现在参考图1,简化框图示出了针对电子文档的存储器节约的版本控制的示例系统100的多个方面。示例系统100包括协作和/或文档管理服务器(在本文中被称为服务器112),其说明了用于协同地创建、管理和共享电子文档的基于端口的计算机系统。在一些示例中,服务器112是位于能够由各种客户端104a-n(统称为104)访问的企业处的共享资源服务器。在其他示例中,服务器112是远离各种客户端104的共享资源服务器,各种客户端用户102a-n(统称为102)可以在其处存储各种电子文档114并且对电子文档114进行协作。
如所示出的,服务器112包括一个或多个电子文档114在其处存储的本地或远程存储库126。根据示例,存储库126可操作以存储每个电子文档114的版本116a-n(统称为116)的历史。存储库126还可操作以存储版本历史元数据,例如有关何时对电子文档114进行改变、进行哪些改变、以及谁来进行改变的信息。客户端用户102被使能查看和访问电子文档114的版本历史。例如,当客户端用户102a单独或者与其他客户端用户b-n协作地对电子文档114工作时,客户端用户102a可以想要查看并退回电子文档114的先前版本116。作为另一示例,客户端用户102a可以想要查看对电子文档114进行的改变的历史,并且可以想要查看谁以及何时进行了所述改变。
客户端用户102被使能经由网络120从多种客户端设备104a-n(统称为104)访问服务器112、电子文档114、和版本历史,所述网络120例如但不限于互联网、广域网、局域网以及它们的组合。合适的客户端设备104的示例包括但不限于台式计算机、膝上型计算机、平板计算机、移动电话、个人数字助理、可穿戴设备、游戏设备、和智能家电。客户端用户102说明了可以生成、编辑或者以其他方式与如本文所描述的电子文档114进行交互的一个或多个用户。
系统100包括用于查看、生成、和编辑电子文档114的一个或多个应用130a、b(统称为130)。合适的应用130的示例包括但不限于文字处理、电子表格、数据库、幻灯片演示、电子邮件、绘图、web浏览器、媒体播放器、和游戏应用。在一些示例中,(多个)应用130是在web应用服务器128上运行并且经由网络120与诸如浏览器之类的用户代理106进行通信的web应用130a。用户代理106提供允许用户102与存储在存储库126中的应用内容、电子文档114、和版本历史进行交互的用户界面。该用户界面被显示在运行用户代理106的客户端设备104的显示器上。在一些实施例中,用户代理106是提供用户界面以及对存储在存储库126中的电子文档114和版本历史进行访问的专用客户端应用。在其他示例中,(多个)应用130是在客户端设备104上存储并执行的本地应用130b,并且提供允许用户102与存储在存储库126中的应用内容、电子文档114、和版本历史进行交互的用户界面。
系统100包括客户端版本控制引擎108和服务器版本控制引擎118,现在参考图2对它们进行描述。根据示例,客户端版本控制引擎108说明了软件模块、系统或设备,它们可操作以将所进行的改变在电子文档114的本地副本与在关联于服务器112的存储库126中所存储的电子文档114的持久副本之间进行同步,并且确定何时应当创建文档114的新版本。当进行创建新版本的肯定确定时,客户端版本控制引擎108还可操作以向服务器112传送将电子文档114的客户端编辑保存为新版本的请求。客户端版本控制引擎108经由如以上所描述的网络120与服务器112进行通信。
根据示例,客户端版本控制引擎108包括至少一个处理器202以及存储代码206的存储器204,所述代码206能够由处理器202所执行以使得客户端版本控制分析器210接收对电子文档114的本地副本所进行的改变,并且分析所述改变以确定是否应当创建电子文档114的新版本或者是否将所述改变保存到存储库126中所存储的电子文档114的当前版本。例如,客户端版本控制分析器210可操作以接收客户端用户102a经由应用130所进行的编辑。
当在客户端设备104处对电子文档114进行编辑时,客户端版本控制分析器210可操作以分析与客户端编辑有关的各种因素以便确定是否请求创建电子文档114的新版本。这些各种因素在本文被称为客户端版本控制因素。以下描述了各种客户端版本控制因素的非限制性列表和描述。
客户端版本控制因素的一个示例包括时间间隔客户端版本控制因素。根据一个方面,客户端版本控制分析器210可操作以分析自客户端编辑的上一次更新请求被发送至服务器112起的时间间隔,并且得出与时间间隔客户端版本控制因素相关联的值。例如,自上一次更新请求或者包括请求服务器112创建新版本的标志的上一次更新请求起的时间间隔越大,客户端版本控制分析器210就看上去越有必要生成电子文档114的新版本。由此,时间间隔越大,由客户端版本控制分析器210所得出的时间间隔客户端版本控制因素值就越高。
客户端版本控制因素的另一个示例包括编辑大小客户端版本控制因素。根据一个示例,客户端版本控制分析器210可操作以分析个体改变的数据大小,并且得出与所述改变的大小相关联的值。例如,编辑的数据大小越大(例如,大型复制和粘贴、视频文件的插入等),就有越多的理由来创建文档114的新版本。由此,编辑的数据大小越大,与编辑大小客户端版本控制因素相关联的值就越高。
客户端版本控制因素的另一个示例包括编辑类型客户端版本控制因素。根据一个方面,客户端版本控制分析器210可操作以分析在客户端编辑中所包括的数据类型,并且得出与该数据类型相关联的值。例如,客户端版本控制分析器210可以基于再现数据的难度等级而得出与数据类型相关联的较高的值。作为一个示例,客户端版本控制分析器210可以针对包括插入文本的编辑而得出比针对包括插入表格的编辑所得出的更高的值。作为另一示例,客户端版本控制分析器210可以针对包括字体颜色改变的编辑而得出比针对线条和形状的插入或操纵(例如,形成绘图)所得出的更高的值。
根据一个方面,编辑类型客户端版本控制因素的值取决于应用,以使得与涉及一个应用130中的具体数据类型的改变相关联的值可以不同于与涉及另一个应用130中的相同数据类型的改变相关联的值。例如,与具体数据类型相关联的改变可以取决于正在使用哪个应用130来编辑文档114而被认为更加重要或更不重要。
取决于应用的客户端版本控制因素取值的说明性示例是在电子文档114中插入图像。例如,如果客户端用户102正在使用幻灯片演示应用来编辑幻灯片演示文档(其中该文档可以包括多个图像),则与使用文字处理应用在文字处理文档中插入图像(其中主要内容是文本)相关联的值相比,与图像的插入相关联的编辑类型客户端版本控制因素可以较小。
根据一个方面,客户端版本控制分析器210基于所得出的各种客户端版本控制因素的值来生成版本控制分数,并且将该版本控制分数与版本控制阈值分数进行比较。当版本控制分数达到或超过版本控制阈值分数时,客户端版本控制分析器210进行应当创建电子文档114的新版本的确定。
根据示例,处理器202还可操作以使得客户端文档同步器208生成用于将对电子文档114的本地副本所进行的改变与存储库126中所存储的电子文档114的主副本进行同步的请求。例如,电子文档同步器208生成更新请求并且将该更新请求发送至服务器112,所述更新请求包括自打开文档起或者自更新该文档的上一请求起对电子文档114的客户端副本所进行的改变。根据一个方面,当客户端版本控制分析器210进行应当创建电子文档114的新版本的确定时(例如,客户端编辑的版本控制分数达到或超过版本控制阈值分数),客户端文档同步器208还可操作以向更新请求附加标志,所述更新请求请求服务器112将所述改变保存为电子文档114的新版本。
根据一些示例,客户端文档同步器208还可操作以从服务器112接收将电子文档114的本地副本与对电子文档114的当前服务器版本所进行的改变进行同步的更新通知。例如,当多于一个的客户端用户102正在编辑电子文档114时,在每个客户端104所进行的改变被传送至服务器112。服务器112可以将更新推送至其他客户端104,或者向其他客户端104推送更新通知,以通知所述客户端存在需要被同步的对电子文档114的改变。在一些示例中,服务器112响应于更新请求而向客户端104发送更新。例如,通信是由客户端104发起的,其中,客户端文档同步器208可操作以从服务器112请求更新(例如,拉取更新)。
根据示例,服务器版本控制引擎118包括至少一个处理器212以及存储代码216的存储器214,所述代码216能够由处理器212执行以使得服务器文档同步器218(其说明软件模块、系统或设备)从客户端104接收用于将对电子文档114的客户端副本所进行的改变与在存储库126中所存储的电子文档的主副本进行同步的请求。例如,服务器文档同步器218接收包括对电子文档114的客户端编辑的更新请求。根据一个方面,客户端编辑是自上一次将文档保存至存储库126起对电子文档114的客户端副本所进行的改变。在一些示例中,该更新请求包括用于将客户端编辑保存至在存储库126中所存储的当前版本的请求。在其他示例中,该更新请求包括请求服务器112将客户端编辑保存为电子文档114的新版本的标志。
根据示例,当客户端用户102与一个或多个其他客户端用户102协作以创建电子文档114时,多个客户端用户102被使能同时编辑该文档。当由客户端用户102中的一个所进行的客户端编辑被保存至电子文档114(当前版本或者新创建的版本之一)时,服务器文档同步器218还可操作以通知其他客户端104关于存在需要与其他客户端用户102正在同时编辑的副本进行同步的对文档114的改变。在一些示例中,服务器文档同步器218向其他客户端104中的每个发送包括客户端编辑和版本信息的更新通知(例如,服务器112向客户端104推送更新)。在其他示例中,服务器文档同步器218向其他客户端104中的每个发送向客户端104通知存着更新的更新通知,以使得每个客户端104能够从服务器112请求客户端编辑更新(例如,客户端104从服务器112拉取更新)。
根据示例,在接收到针对电子文档114的更新请求时,处理器212还可操作以使得服务器版本控制分析器212(其说明软件模块、系统或设备)分析各种服务器版本控制因素以用于确定是否创建电子文档114的新版本。根据一个方面,服务器版本控制分析器220可操作以基于所得出各种服务器版本控制因素的值而生成版本控制分数,并且将该版本控制分数与版本控制阈值分数进行比较。当版本控制分数达到或超过版本控制阈值分数时,服务器版本控制分析器220进行应当创建电子文档114的新版本的确定,并且指示文档版本控制器222创建电子文档114的经更新的版本,其包括自上一次保存文档114起所接收到的客户端编辑。以下列出并描述各种服务器版本控制因素的非限制性描述。
服务器版本控制因素的一个示例包括客户端版本请求标志版本控制因素。例如,服务器版本控制分析器220可操作以确定更新请求是否包括请求将客户端编辑保存为电子文档114的新版本的标志。服务器版本控制分析器220可操作以得出与新版本请求标志是否与更新请求一起被包括相关联的值。在一些示例中,客户端版本控制分数与更新请求一起被包括。由此,服务器版本控制分析器220可操作以基于客户端版本控制分数来得出值。例如,客户端版本控制分数越高,则客户端版本请求标志版本控制因素值就越高。
服务器版本控制因素的另一个示例包括保存时间间隔服务器版本控制因素。例如,服务器版本控制分析器220可操作以分析自上一次进行对客户端编辑的保存起的时间间隔,并且得出与保存时间间隔服务器版本控制因素相关联的值。例如,自上一次保存起的时间间隔越大,与保存时间间隔服务器版本控制因素相关联的值就越高。在一些示例中,单个客户端用户102可以在编辑电子文档114。由此,自上一次保存起的保存时间间隔涉及自该单个客户端用户对电子文档114的编辑的上一次保存起的时间间隔。在其他示例中,多个客户端用户102可以在同时编辑电子文档114。由此,自上一次保存起的保存时间间隔涉及自多个客户端用户中的任何一个对电子文档114的编辑的上一次保存起的时间间隔。
服务器版本控制因素的另一个示例包括版本时间间隔服务器版本控制因素。例如,服务器版本控制分析器220可操作以分析自上一次创建电子文档114的版本起的时间间隔,并且得出与版本时间间隔服务器版本控制因素相关联的值。例如,自上一次版本创建起的时间间隔越大,与版本时间间隔服务器版本控制因素相关联的值就越高。
服务器版本控制因素的另一个示例包括存储服务器版本控制因素。例如,服务器版本控制分析器220可操作以分析可用于特定客户端用户102或客户端用户分组的存储量,并且得出与存储服务器版本控制因素相关联的值。
在一些示例中,可用的存储量是基于与客户端用户102相关联的订阅等级的。例如,如果客户端用户102具有免费消费者订阅,则客户端用户102可能在服务器112上与具有付费订阅的另一个客户端用户102相比具有小于较少的存储空间。由此,如果客户端编辑是从与具有较少可用存储空间的订阅等级相关联的特定客户端用户102接收的,则服务器版本控制分析器220可操作以针对所接收的客户端编辑而得出较低的存储服务器版本控制因素值。可替代地,如果客户端编辑是从与具有较大或无限可用存储空间的订阅等级相关联的特定客户端用户102接收的,则服务器版本控制分析器220可操作以针对所接收的客户端编辑得出较高的存储服务器版本控制因素值。
在一些示例中,服务器版本控制分析器220可操作以基于客户端编辑如何被存储(例如块存储、表格存储等)来得出与存储服务器版本控制因素相关联的值。根据多个方面,通过分析用于确定何时创建电子文档114的新版本的客户端侧因素和服务器侧因素,以及通过在达到重要性等级时智能地创建新版本,被保存至存储库126的版本的数量有所减少,因此减少了电子文档114所需的存储器存储的量。
根据示例,服务器版本控制引擎118包括文档版本控制器222(其说明软件模块、系统、或设备),文档版本控制器222可操作以创建包括自电子文档114的上一次保存起所接收的客户端编辑的电子文档114的经更新的版本。根据一个方面,文档版本控制器222还可操作以生成向电子文档114的经更新的版本指定的版本标识符,并且将电子文档114的经更新的版本存储在存储库126中。根据一个方面,存储库126继续在电子文档114的版本历史中存储电子文档114的先前版本116。
如上文所描述的,客户端用户102被使能查看并访问包括电子文档114的版本116的历史列表的版本历史302。根据一个示例并且参考图3A,包括电子文档114的版本116的历史列表的版本历史302能够在由客户端用户102用来编辑电子文档114的客户端副本314的应用130的应用用户界面300内进行显示。例如,历史列表302可以被显示在应用用户界面300的任务窗格中。
根据图3A中所示出的示例,示例版本历史302包括表示电子文档114的当前版本的列表元素以及表示电子文档114的一个或多个先前版本116的一个或多个列表元素。在一些示例中,先前版本116的列表元素按照时间顺序被列出。历史列表302中的先前版本116的每个列表元素可以包括额外的信息,例如与最后保存的对先前版本116的客户端编辑相关联的日期306和时间戳308,以及为何创建版本116的原因(例如,“由你创建”,“由John共享”,“由Bob重命名”)。
根据一个方面,历史列表302中的列表元素是可选择的,其中,对与先前版本116相关联的列表元素的选择使得客户端用户102能够查看所选择的版本116。例如,如果电子文档114由多个客户端用户102a-n协作地创建,则多个客户端用户102a-n中的一个客户端用户102可以希望查看一个或多个先前版本116,以了解电子文档114如何演进,哪个客户端用户102进行了哪些客户端编辑,以及何时进行。
根据一个方面,提供了功能控件304以用于使得用户102能够恢复所选择的先前版本116。例如,客户端用户102可以想要退回至电子文档114的先前版本116。
根据另一个示例并且参考图3B,示出了第二示例版本历史302。在所示出的示例中,历史列表包括表示电子文档114的当前版本的列表元素,表示对电子文档114的保存312a-c的列表元素,以及表示电子文档114的先前版本116a-d的列表元素。所述列表元素按照时间顺序排列,并且包括与保存312或版本116创建相关联的日期306和时间戳308。
根据一个方面,与先前版本116一起提供可选择的用户界面元素310以使得客户端用户102能够打开电子文档114的先前版本116。如以上关于图3A所描述的,可以提供其他信息,例如,与哪个客户端用户102提供了导致电子文档114的保存312或新版本116的客户端编辑相关联的信息。作为另一个示例,其他信息可以包括与由客户端用户102所执行的导致电子文档114的保存312或新版本116的动作或客户端编辑相关联的信息。如应当意识到的,在图3A和3B中所示出的示例仅仅是示例性的而不旨在进行限制。
已经关于图1-3描述了操作环境、客户端版本控制引擎108和服务器版本控制引擎118的各种组件、以及向用户102提供与电子文档114相关联的版本的视图,图4是示出了在针对电子文档114的存储器节约的版本控制的示例方法400中所涉及的一般阶段的流程图。根据一些示例,示例方法400应用于单个用户实施例。在其他示例中,示例方法400应用于多用户实施例。现在参考图4,方法400在起始操作402处开始,其中客户端设备104的客户端用户102执行对在协作和/或文档管理服务器存储库126中所存储的电子文档114的编辑。例如,客户端用户102可以添加内容、移除内容、修改内容、对电子文档114重命名,或者显式地保存或共享电子文档114。当针对电子文档114的客户端副本314进行客户端编辑时,客户端文档同步器208生成更新请求406,其请求服务器112更新电子文档114的服务器副本以包括所述客户端编辑。
方法400继续至操作408,其中客户端版本控制分析器210对客户端编辑进行分析,并且基于所得出的各种客户端版本控制因素的值来生成版本控制分数。例如,所述各种客户端版本控制因素可以包括以下中的至少一个:时间间隔客户端版本控制因素、编辑大小客户端版本控制因素、编辑类型客户端版本控制因素,以及取决于应用的客户端版本控制因素。也就是说,基于与由客户端104对电子文档114所进行的编辑相关联各种特定于客户端的因素,客户端版本控制分析器210可操作以确定与创建电子文档114的新版本相关联的重要性等级(即,版本控制分数),以用于确保有用的版本同时减少在更频繁且较不智能的基础上创建版本所需的存储器存储的量。
在决策操作410处,客户端版本控制分析器210将版本控制分数与版本控制阈值分数进行比较以用于确定所述版本控制分数是否达到或超过了所述版本控制阈值分数。当进行肯定的确定时(即,所述版本控制分数达到或超过了所述版本控制阈值分数),方法400进行至操作412,其中客户端版本控制分析器210对应当创建电子文档114的新版本进行确定。由此,客户端文档同步器208向更新请求附加标志,其请求服务器112将所述客户端编辑保存为电子文档114的新版本。
如果在决策操作412处进行了否定的确定(即,所述版本控制分数没有达到或超过所述版本控制阈值分数)或者在操作412之后,方法400继续至操作414,其中客户端文档同步器208将更新请求发送至服务器112。
在操作416处,服务器文档同步器218从客户端114接收更新请求以将对电子文档114的客户端副本314所进行的改变同步至在存储库126中所存储的电子文档114的主副本。
方法400进行至操作418,其中版本控制分析器220分析各种服务器版本控制因素,并且基于所得出的各个服务器版本控制因素的值来生成版本控制分数。例如,所述各种服务器版本控制因素可以包括以下中的至少一个:客户端版本请求标志版本控制因素、保存时间间隔服务器版本控制因素、版本时间间隔服务器版本控制因素、以及存储服务器版本控制因素。
也就是说,基于客户端是否针对要创建的新版本以及与保存客户端编辑、对客户端编辑进行版本控制、以及存储能力和功能相关联的各种特定于服务器的因素,服务器版本控制分析器220可操作以确定与创建电子文档114的新版本相关联的重要性等级(即,版本控制分数),以用于确保有用的版本同时减少在更频繁且较不智能的基础上创建版本所需的存储器存储的量。
在决策操作420处,关于服务器生成的版本控制分数是否达到或超过版本控制阈值分数来进行确定。当在操作420处进行肯定的确定时(例如,服务器生成的版本控制分数达到或超过版本控制阈值分数),方法400进行至操作422,其中服务器文档版本控制器222生成针对电子文档114的新版本标识符,并且使用该新版本标识符来保存具有所接收到的客户端编辑的电子文档114。也就是说,服务器文档版本控制器222创建了电子文档114的新版本,其中,由新版本标识符所区分的新版本包括在来自客户端104的更新请求中所接收的客户端编辑。根据一个方面,客户端编辑不被应用于电子文档114的先前版本116。
当在决策操作420处进行了否定的确定(即,版本控制分数没有达到或超过阈值分数)时,方法400继续至操作424,其中服务器文档同步器218将客户端编辑保存至电子文档114的当前版本。
方法400从操作422或操作424进行至操作426,其中如果有一个或多个其他客户端用户102在经由一个或多个其他客户端设备104同时编辑电子文档114(例如,多用户环境),则服务器文档同步器218生成更新通知并将其发送至一个或多个其他客户端设备104。例如,更新通知向客户端104通知关于将客户端编辑保存至电子文档114的当前版本或者将客户端编辑保存至电子文档114的新版本。如以上所描述的,在一些示例中,该更新通知包括客户端编辑(例如,服务器112将客户端编辑推送至客户端104)。在其他示例中,该更新通知则通知客户端104从服务器112取回更新。当客户端104结束编辑会话时,方法400在操作404处重复或者在操作498处结束。
尽管已经在结合在计算机的操作系统上运行的应用程序而执行的程序模块的一般性的上下文中描述了实现,但本领域技术人员将理解的是,也可以结合其他程序模块来实现多个方面。通常而言,程序模块包括例程、程序、组件、数据结构、以及执行特定的任务或实现特定的抽象数据类型的其他类型的结构。
在本文中所描述的方面和功能可以经由多种计算系统来操作,所述多种计算系统包括但不限于:台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板或平面型计算机、笔记本计算机、以及膝上型计算机)、手持设备、多处理器系统、基于微处理器的或可编程的消费性电子产品、小型计算机、以及大型计算机。
另外,根据一个方面,在本文中所描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和取回、以及各种处理功能可以通过分布式计算网络(例如因特网或内联网)彼此远程地进行操作。根据一个方面,可以经由板载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元来显示各种类型的用户界面和信息。例如,各种类型的用户界面和信息是在各种类型的用户界面和信息所透射到的墙面上显示的并且与这样的墙面进行交互。与实现利用其实践的多种计算系统的交互包括:击键输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备装备有用于捕获和解译用户手势的检测(例如,相机)功能,以用于控制计算设备的功能等。
图5-7和相关联的描述提供了可以在其中实践多个示例的多种操作环境的讨论。然而,参考图5-7示出和讨论的设备和系统是出于示例和说明的目的,而不限制用于实践在本文中所描述的方面的大量的计算设备配置。
图5是示出了利用其可以实践本公开的示例的计算设备500的物理组件(例如,硬件)的框图。在基本配置中,计算设备500包括至少一个处理单元502和系统存储器504。根据一个方面,取决于计算设备的配置和类型,系统存储器504包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。系统存储器504包括操作系统505以及适合于运行软件应用550的一个或多个程序模块506。根据一个方面,系统存储器504包括客户端版本控制引擎108。例如,操作系统505可以适用于控制计算设备500的操作。此外,本公开的实施例可以结合图形库、其他操作系统、或任何其他应用来实践,并且不限于任何特定的应用或系统。在图5中由虚线508内的那些组件示出了该基本配置。根据一个方面,计算设备500可以具有额外的特征或功能。例如,根据一个方面,计算设备500包括额外的(可移动的和/或不可移动的)数据存储设备,例如磁盘、光盘、或磁带。在图5中由可移动存储设备509和不可移动存储设备510示出了这样额外的存储。
如在上文中所述,根据一个方面,可以将多个程序模块和数据文件存储在系统存储器504中。当在处理单元502上执行时,程序模块506(例如,客户端版本控制引擎108)执行过程,包括但不限于在图4中所示出的方法400的步骤中的一个或多个。根据一个方面,其他程序模块是根据示例使用的,并且包括以下应用,例如电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
根据一个方面,方面可以在电气电路中实践,该电气电路包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或者包含电子元件或微处理器的单个芯片。例如,多个方面是经由片上系统(SOC)来实践,其中在图5中所示出的组件中的每个或许多个组件可以集成到单个集成电路上。根据一个方面,这样的SOC设备包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,这些全都作为单个集成电路而集成(或“烧制”)到芯片基底上。当经由SOC进行操作时,在本文中所描述的功能可以经由与计算设备500的其他组件一同集成在单个集成电路(芯片)上的专用逻辑来进行操作。根据一个方面,使用能够执行逻辑运算(例如,AND、OR、NOT)的其他技术来实践本公开的方面,所述技术包括但不限于:机械、光学、流体、和量子技术。另外,可以在通用计算机中或者在任何其他电路或系统中实践多个方面。
根据一个方面,计算设备500还可以具有一个或多个输入设备512,例如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。根据一个方面,还包括诸如显示器、扬声器、打印机等之类的输出设备514。前述设备是示例,并且可以使用其他设备。根据一个方面,计算设备500包括允许与其他计算设备518的通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于射频(RF)发射机、接收机、和/或收发机电路;通用串行总线(USB)、并行、和/或串行端口。
如在本文中所用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动的介质。系统存储器504、可移动存储设备509、和不可移动存储设备510全都是计算机存储介质的示例(即,存储器存储)。根据一个方面,计算机存储介质包括:RAM、ROM、电可擦除只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可以用于存储信息并且可以由计算设备500访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都是计算设备500的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据来实施的,并且包括任何信息传递介质。术语“经调制的数据信号”描述具有以关于将信息在信号中进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质(例如,有线网络或直接有线连接)以及无线介质(例如,声学、射频(RF)、红外、和其他无线介质)。
图6A和6B示出了利用其可以实践多个方面的移动计算设备600,例如,移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图6A,示出了用于实现多个方面的移动计算设备600的示例。在基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持计算机。移动计算设备600通常包括显示器605以及允许用户向移动计算设备600中输入信息的一个或多个输入按钮610。根据一个方面,移动计算设备600的显示器605还可以充当输入设备(例如,触摸屏显示器)。如果被包括在内,可选的侧输入元件615允许进一步的用户输入。根据一个方面,侧输入元件615是旋转开关、按钮、或任何其他类型的手动输入元件。在可替代的示例中,移动计算设备600包含更多或更少的输入元件。例如,在一些示例中,显示器605可以不是触摸屏。在可替代的示例中,移动计算设备600是便携式电话系统,例如蜂窝电话。根据一个方面,移动计算设备600包括可选的小键盘635。根据一个方面,可选的小键盘635是物理小键盘。根据另一方面,可选的小键盘635是在触摸屏显示器上生成的“软”小键盘。在各种方面中,输出元件包括用于示出图形用户界面(GUI)的显示器605、视觉指示器620(例如,发光二极管)、和/或音频换能换能器625(例如,扬声器)。在一些示例中,移动计算设备600包含用于给用户提供触觉反馈的振动换能器。在另一个示例中,移动计算设备600包含用于向外部设备发送信号或者从外部设备接收信号的输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、和视频输出(例如,HDMI端口)。在另一个示例中,移动计算设备600包含用于向外部设备发送信号或者从外部设备接收信号的外围设备端口640,例如音频输入端(例如,麦克风插孔)、音频输出端(例如,耳机插孔)、以及视频输出端(例如,HDMI端口)。
图6B是示出了移动计算设备的一个方面的架构的框图。也就是说,移动计算设备600包含用于实现一些示例的系统(即,架构)602。在一个示例中,系统602被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏、和媒体客户端/播放器)的“智能电话”。在一些示例中,系统602被集成为计算设备,例如集成的个人数字助理(PDA)和无线电话。
根据一个方面,一个或多个应用程序650可以被加载到存储器662中并且在操作系统664上运行或者与操作系统664关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等。根据一个方面,客户端版本控制引擎108被加载到存储器662中。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可以用于存储如果系统602断电而不应丢失的持续信息。应用程序650可以在非易失性存储区域668中使用并存储信息,例如电子邮件或者由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统602上,并且被编程为与驻留在主计算机上的对应的同步应用进行交互,从而将存储在非易失性存储区域668中的信息与存储在主计算机上的对应的信息保持同步。应当理解的是,其他应用可以被加载到存储器662中并且在移动计算设备600上运行。
根据一个方面,系统602具有电源670,其可以被实现为一个或多个电池。电源670还包括外部电源,例如AC适配器或给电池供电或充电的加电对接托架。
根据一个方面,系统602还包括执行发送和接收视频通信的功能的无线电设备672。无线电设备672经由通信载波或服务提供商来促成系统602与“外部世界”之间的无线连通性。来往于无线电设备672的传输是在操作系统664的控制下进行的。换句话说,可以将由无线电设备672所接收的通信经由操作系统664散播至应用程序650,反之亦然。
根据一个方面,视觉指示器620用于提供视觉通知,和/或音频接口674可以用于经由音频换能器625产生可听见的通知。在所示的示例中,视觉指示器620是发光二极管(LED),而音频换能器625是扬声器。这些设备可以直接地耦合至电源670,以便当被激活时,即使处理器660和其他组件可以关闭以节省电池电量,这些设备也能保持通电并持续由通知机制所指示的一段时间。LED可以被编程为无限期地保持通电,直到用户采取动作来指示设备的通电状态为止。音频接口674用于向用户提供可听见的信号并从用户接收可听见的信号。例如,除了耦合到音频换能器625之外,音频接口674还可以被耦合至麦克风以接收可听见的输入,例如,以促进电话会话。根据一个方面,系统602还包括视频接口676,其使得车载摄像机630的操作能够记录静止图像、视频流等。
根据一个方面,实现系统602的移动计算设备600具有额外的特征或功能。例如,移动计算设备600包括(可移动的和/或不可移动的)额外的数据存储设备,例如磁盘、光盘、或磁带。在图6B中由非易失性存储区域668示出了这样额外的存储。
根据一个方面,如在上文中所描述的,将由移动计算设备600所生成或捕获的数据/信息以及经由系统602所存储的数据/信息本地地存储在移动计算设备600上。根据另一方面,将数据存储在可以经由无线电设备672或经由移动计算设备600和与移动计算设备600相关联的单独的计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接由设备来访问的任何数量的存储介质上。应当理解的是,可以经由移动计算设备600、经由无线电设备672、或经由分布式计算网络来访问这样的数据/信息。类似地,根据一个方面,根据公知的数据/信息传输和存储方式(包括电子邮件和协同数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间传输以供存储和使用。
图7示出了系统的架构的一个示例,所述系统针对如在上文中所描述的电子文档114的存储器节约的版本控制。使得与客户端版本控制引擎108相关联地开发、交互、或编辑的内容能够被存储在不同的通信信道或者其他存储类型中。例如,各种文档可以使用目录服务722、门户网站724、邮箱服务726、即时消息传送存储728、或社交网站730来存储。如在本文中所描述的,客户端版本控制引擎108可操作以使用针对电子文档114的存储器节约的版本控制的这些类型的系统等中的任何一个。根据一个方面,服务器720向客户端705A、705B、705C提供客户端版本控制引擎108。作为一个示例,服务器720是通过web提供客户端版本控制引擎108的web服务器。服务器720通过网络740在web上向客户端705提供客户端版本控制引擎108。作为示例,客户端计算设备在个人计算机705A、平板计算机705B、和/或移动计算设备705C(例如,智能电话)或者其他计算设备中被实现和实施。客户端计算设备的这些示例中的任何一个都可操作以从存储716获得内容。
例如,在上文中参考方法、系统、和计算机程序产品的框图和/或操作图而描述了根据多个方面的实现。在方框中所记录的功能/操作可以以不同于在任何流程图中所示出的顺序来进行。例如,取决于所涉及的功能/操作,连续地示出的两个方框可以实际上大体上同时执行,或者方框可以有时以相反的顺序执行。
在该申请中所提供的一个或多个示例的描述或示图不旨在以任何方式限制或约束所要求保护的范围。在该公开中所提供的方面、示例、和细节被认为足以传达所有物,并且使得本领域技术人员能够制造并使用最优模式。实现不应该被解释为限于在该申请中所提供的任何方面、示例、或细节。无论是共同地还是单独地示出或描述,(结构上和方法上两者的)各种特征旨在选被择性地包括或省略,以产生具有特定组的特征的示例。在已经提供了本申请的描述和图示之后,本领域技术人员可以预想落入在该申请中所实施的一般的发明概念的更宽泛的方面的精神内的变型、修改和替代示例,而不脱离更宽泛的范围。

Claims (15)

1.一种针对电子文档的存储器节约的版本控制的计算机实现的方法,包括:
在服务器处接收对所述电子文档的客户端编辑;
由所述服务器分析多个服务器版本控制因素以用于确定是否将所述客户端编辑保存为所述电子文档的新版本,其中,所述多个服务器版本控制因素中的一个是基于用于将所述客户端编辑保存为所述电子文档的新版本的客户端请求的;以及
响应于肯定的确定:
生成针对所述电子文档的新版本标识符;并且
使用所述新版本标识符来将所述客户端编辑保存至存储库。
2.根据权利要求1所述的计算机实现的方法,其中,接收对所述电子文档的客户端编辑包括从客户端接收更新请求,并且其中,所述更新请求是针对所述服务器的用所述客户端编辑来更新所述电子文档的请求。
3.根据权利要求2所述的计算机实现的方法,其中,从所述客户端接收所述更新请求包括接收包括将所述客户端编辑保存为所述电子文档的新版本的客户端请求的更新请求。
4.根据权利要求3所述的计算机实现的方法,其中,接收包括将所述客户端编辑保存为所述电子文档的新版本的客户端请求的更新请求是响应于由所述客户端对多个客户端版本控制因素进行分析的。
5.根据权利要求4所述的计算机实现的方法,其中,分析多个客户端版本控制因素包括:
得出针对所述多个客户端版本控制因素中的每个的值;
基于所得出的值来生成版本控制分数;
将所述版本控制分数与版本控制阈值分数进行比较;以及
当所述版本控制分数达到或超过所述版本控制阈值分数时,确定应当创建所述电子文档的新版本。
6.根据权利要求5所述的计算机实现的方法,还包括将所述版本控制分数包括在用于将所述客户端编辑保存为所述电子文档的新版本的客户端请求中。
7.根据权利要求6所述的计算机实现的方法,其中,由所述服务器分析多个服务器版本控制因素包括:
得出针对所述多个服务器版本控制因素中的每个的值;
基于所得出的值来生成版本控制分数;
将所述版本控制分数与版本控制阈值分数进行比较;以及
当所述版本控制分数达到或超过所述版本控制阈值分数时,确定应当创建所述电子文档的新版本。
8.根据权利要求1所述的计算机实现的方法,其中,响应于否定的确定,将所述客户端编辑保存至所述电子文档的当前版本。
9.根据权利要求1所述的计算机实现的方法,还包括:
确定是否至少一个额外的客户端在同时地编辑所述电子文档;以及
响应于肯定的确定,生成更新通知并且将其发送至所述至少一个额外的客户端,其中,所述更新通知向所述至少一个额外的客户端提供关于已经用所述客户端编辑更新了所述电子文档的通知。
10.根据权利要求9所述的计算机实现的方法,其中,所述更新通知向所述至少一个额外的客户端提供关于所述客户端编辑已经被保存至所述电子文档的新版本的通知。
11.一种针对电子文档的存储器节约的版本控制的系统,包括:
一个或多个处理器,其用于执行经编程的指令;
存储器,其耦合至所述一个或多个处理器,以用于存储供所述计算机处理器执行的程序指令步骤;以及
服务器版本控制引擎,包括:
服务器文档同步器,其能够操作以接收包括对所述电子文档的客户端编辑的客户端生成的更新请求;以及
服务器版本控制分析器,其能够操作以分析多个服务器版本控制因素,从而用于确定是否将所述客户端编辑保存为所述电子文档的新版本,其中,所述多个服务器版本控制因素中的一个是基于用于将所述客户端编辑保存为所述电子文档的新版本的客户端请求的;以及
服务器文档版本控制器,其能够操作以:
响应于肯定的确定:
生成针对所述电子文档的新版本标识符;并且
使用所述新版本标识符来将所述客户端编辑保存至存储库;以及
响应于否定的确定,将所述客户端编辑保存至所述电子文档的当前版本。
12.根据权利要求11所述的系统,其中,所述客户端生成的更新请求包括将所述客户端编辑保存为所述电子文档的新版本的客户端请求。
13.根据权利要求12所述的系统,其中,将所述客户端编辑保存为所述电子文档的新版本的所述客户端请求是响应于由所述客户端版本控制分析器所执行的分析而被包括在所述更新请求中的,所述客户端版本控制分析器能够操作以:
得出针对所述多个客户端版本控制因素中的每个的值;
基于所得出的值来生成版本控制分数;
将所述版本控制分数与版本控制阈值分数进行比较;以及
当所述版本控制分数达到或超过所述版本控制阈值分数时,确定应当创建所述电子文档的新版本。
14.根据权利要求11所述的系统,其中,在分析多个服务器版本控制因素时,所述服务器版本控制分析器能够操作以:
得出针对所述多个服务器版本控制因素中的每个的值;
基于所得出的值来生成版本控制分数;
将所述版本控制分数与版本控制阈值分数进行比较;以及
当所述版本控制分数达到或超过所述版本控制阈值分数时,确定应当创建所述电子文档的新版本。
15.一种包含计算机可执行指令的计算机可读介质,所述计算机可执行指令当由计算机执行时,执行一种针对电子文档的存储器节约的版本控制的方法,所述方法包括:
接收客户端生成的更新请求,所述客户端生成的更新请求包括对所述电子文档的客户端编辑以及用于将所述客户端编辑保存为所述电子文档的新版本的客户端请求;
得出针对多个服务器版本控制因素中的每个的值,其中,所述多个服务器版本控制因素中的一个是基于用于将所述客户端编辑保存为所述电子文档的新版本的客户端请求的;
基于所得出的值来生成版本控制分数;
将所述版本控制分数与版本控制阈值分数进行比较;以及
响应于所述版本控制分数达到或超过所述版本控制阈值分数:
确定应当创建所述电子文档的新版本;
生成针对所述电子文档的新版本标识符;以及
使用所述新版本标识符来将所述客户端编辑保存至存储库;并且响应于所述版本控制分数没有达到或超过所述版本控制阈值分数,将所述客户端编辑保存至所述电子文档的当前版本。
CN201680076891.6A 2015-12-28 2016-12-15 电子文档的存储器节约的版本控制 Active CN108431797B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/981,293 2015-12-28
US14/981,293 US10102190B2 (en) 2015-12-28 2015-12-28 Memory conserving versioning of an electronic document
PCT/US2016/066742 WO2017116717A1 (en) 2015-12-28 2016-12-15 Memory conserving versioning of an electronic document

Publications (2)

Publication Number Publication Date
CN108431797A true CN108431797A (zh) 2018-08-21
CN108431797B CN108431797B (zh) 2021-10-08

Family

ID=57758728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680076891.6A Active CN108431797B (zh) 2015-12-28 2016-12-15 电子文档的存储器节约的版本控制

Country Status (4)

Country Link
US (1) US10102190B2 (zh)
EP (1) EP3398079B1 (zh)
CN (1) CN108431797B (zh)
WO (1) WO2017116717A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111936987A (zh) * 2018-03-23 2020-11-13 微软技术许可有限责任公司 文件的智能版本控制

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US11036712B2 (en) * 2016-01-12 2021-06-15 Microsoft Technology Licensing, Llc. Latency-reduced document change discovery
US10642940B2 (en) * 2016-02-05 2020-05-05 Microsoft Technology Licensing, Llc Configurable access to a document's revision history
US20170262417A1 (en) * 2016-03-14 2017-09-14 Agreewithme Inc. Summarized document version map
KR101774267B1 (ko) * 2016-06-27 2017-09-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
US10706069B2 (en) 2016-06-30 2020-07-07 Facebook, Inc. Techniques for replication of a client database to remote devices
US20180004829A1 (en) * 2016-06-30 2018-01-04 Facebook, Inc. Techniques for database replication between client devices
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11960525B2 (en) * 2016-12-28 2024-04-16 Dropbox, Inc Automatically formatting content items for presentation
US10768986B2 (en) 2017-01-06 2020-09-08 International Business Machines Corporation Management and utilization of storage capacities in a converged system
US10824355B2 (en) 2017-01-10 2020-11-03 International Business Machines Corporation Hierarchical management of storage capacity and data volumes in a converged system
US10938901B2 (en) * 2017-01-11 2021-03-02 International Business Machines Corporation Management and utilization of data volumes in a converged system
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US20200099763A1 (en) * 2018-09-21 2020-03-26 Microsoft Technology Licensing, Llc Indication of updates to a cached version of a document
JP2020154611A (ja) * 2019-03-19 2020-09-24 富士ゼロックス株式会社 電子文書管理装置及び電子文書管理プログラム
US11397750B1 (en) * 2019-11-27 2022-07-26 Amazon Technologies, Inc. Automated conflict resolution and synchronization of objects
US20230281178A1 (en) * 2022-03-04 2023-09-07 The Boeing Company Discovering contexts and structured data structures from hazy data
CN114818614A (zh) * 2022-03-12 2022-07-29 上海我云网络科技有限公司 基于块编辑器的文档存储方法、恢复方法、介质及系统
US20230334240A1 (en) * 2022-04-13 2023-10-19 Google Llc Providing fine-grained version histories of electronic documents at a platform

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200235A1 (en) * 2002-04-23 2003-10-23 International Business Machines Corporation System and method for item versioning in a content management system
US20060136511A1 (en) * 2004-12-21 2006-06-22 Nextpage, Inc. Storage-and transport-independent collaborative document-management system
CN101350009A (zh) * 2008-09-05 2009-01-21 中国工商银行股份有限公司 一种协同文档编写系统
CN101354722A (zh) * 2008-09-19 2009-01-28 深圳市金蝶中间件有限公司 版本控制的方法、装置及系统
CN101449268A (zh) * 2006-05-09 2009-06-03 惠普开发有限公司 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容
CN101551817A (zh) * 2009-01-24 2009-10-07 普天信息技术研究院有限公司 一种低冗余数据存储方法
CN101556593A (zh) * 2008-04-11 2009-10-14 北京亿企通信息技术有限公司 一种多人协同工作文档管理的方法和系统
CN101859403A (zh) * 2009-04-09 2010-10-13 黄忍冬 一种点对点实时协同编辑系统
US20110010332A1 (en) * 2009-07-09 2011-01-13 Oracle International Corporation Representing an object as an aggregate of identifiable parts shareable by users of a collaboration system
CN101996076A (zh) * 2009-08-20 2011-03-30 镇江雅迅软件有限责任公司 基于引用寻址技术的电子文档多版本控制方法
CN102436441A (zh) * 2010-10-26 2012-05-02 微软公司 同步在线文档编辑
CN102520922A (zh) * 2011-11-14 2012-06-27 上海交通大学 一种协作环境下的远程开发方法及其系统
CN102541941A (zh) * 2010-12-31 2012-07-04 上海可鲁系统软件有限公司 一种多方协同操作文件的版本管理控制方法
CN102541831A (zh) * 2010-11-04 2012-07-04 微软公司 串行化文档编辑命令
US20140280204A1 (en) * 2013-03-14 2014-09-18 International Business Machines Corporation Document Provenance Scoring Based On Changes Between Document Versions

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058667B2 (en) 2000-12-27 2006-06-06 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a file
US20020107886A1 (en) 2001-02-07 2002-08-08 Gentner Donald R. Method and apparatus for automatic document electronic versioning system
ATE345534T1 (de) 2002-09-04 2006-12-15 Oce Tech Bv Verfahren und vorrichtung zur physikalischen verwaltung eines dokuments
US7171618B2 (en) 2003-07-30 2007-01-30 Xerox Corporation Multi-versioned documents and method for creation and use thereof
US8417673B2 (en) 2003-10-07 2013-04-09 International Business Machines Corporation Method, system, and program for retaining versions of files
US20070150433A1 (en) 2005-12-22 2007-06-28 Mediatek Inc. Method for managing file in version control system
US20090013009A1 (en) 2007-07-02 2009-01-08 Kiyotaka Nakayama Using differential file representing differences of second version of a file compared to first version of the file
US7818293B2 (en) 2008-01-02 2010-10-19 International Business Machines Corporation Method and system to synchronize updated versions of a document edited on a collaborative site that are under document management control
US7974948B2 (en) 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US10055392B2 (en) 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US20100310192A1 (en) 2009-06-05 2010-12-09 Anjaneyulu Seetha Rama Kuchibhotla Document storage system
US20120185762A1 (en) 2011-01-14 2012-07-19 Apple Inc. Saveless Documents
US9002908B2 (en) 2011-06-14 2015-04-07 Ca, Inc. System and method for automatically routing and managing stored documents based on document content
US8504519B1 (en) 2012-06-27 2013-08-06 Dropbox, Inc. Determining a preferred modified version from among multiple modified versions for synchronized files
US9355131B2 (en) * 2012-10-01 2016-05-31 Open Text S.A. System and method for document version curation with reduced storage requirements
US10169552B2 (en) * 2015-07-17 2019-01-01 Box, Inc. Event-driven generation of watermarked previews of an object in a collaboration environment

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200235A1 (en) * 2002-04-23 2003-10-23 International Business Machines Corporation System and method for item versioning in a content management system
US20060136511A1 (en) * 2004-12-21 2006-06-22 Nextpage, Inc. Storage-and transport-independent collaborative document-management system
CN101449268A (zh) * 2006-05-09 2009-06-03 惠普开发有限公司 在硬盘驱动器仿真中维持共同命名的客户端专用文件内容
CN101556593A (zh) * 2008-04-11 2009-10-14 北京亿企通信息技术有限公司 一种多人协同工作文档管理的方法和系统
CN101350009A (zh) * 2008-09-05 2009-01-21 中国工商银行股份有限公司 一种协同文档编写系统
CN101354722A (zh) * 2008-09-19 2009-01-28 深圳市金蝶中间件有限公司 版本控制的方法、装置及系统
CN101551817A (zh) * 2009-01-24 2009-10-07 普天信息技术研究院有限公司 一种低冗余数据存储方法
CN101859403A (zh) * 2009-04-09 2010-10-13 黄忍冬 一种点对点实时协同编辑系统
US20110010332A1 (en) * 2009-07-09 2011-01-13 Oracle International Corporation Representing an object as an aggregate of identifiable parts shareable by users of a collaboration system
CN101996076A (zh) * 2009-08-20 2011-03-30 镇江雅迅软件有限责任公司 基于引用寻址技术的电子文档多版本控制方法
CN102436441A (zh) * 2010-10-26 2012-05-02 微软公司 同步在线文档编辑
CN102541831A (zh) * 2010-11-04 2012-07-04 微软公司 串行化文档编辑命令
CN102541941A (zh) * 2010-12-31 2012-07-04 上海可鲁系统软件有限公司 一种多方协同操作文件的版本管理控制方法
CN102520922A (zh) * 2011-11-14 2012-06-27 上海交通大学 一种协作环境下的远程开发方法及其系统
US20140280204A1 (en) * 2013-03-14 2014-09-18 International Business Machines Corporation Document Provenance Scoring Based On Changes Between Document Versions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111936987A (zh) * 2018-03-23 2020-11-13 微软技术许可有限责任公司 文件的智能版本控制

Also Published As

Publication number Publication date
EP3398079B1 (en) 2021-09-15
WO2017116717A1 (en) 2017-07-06
US10102190B2 (en) 2018-10-16
US20170185573A1 (en) 2017-06-29
CN108431797B (zh) 2021-10-08
EP3398079A1 (en) 2018-11-07

Similar Documents

Publication Publication Date Title
CN108431797A (zh) 电子文档的存储器节约的版本控制
US10873545B2 (en) Automatic action responses
CN105531694B (zh) 在电子表格中显示多个作者的在场
CN105593848B (zh) 在协作式环境中对共享电子文档的更新
CN106164834B (zh) 具有设备感知型缩放的沉浸式文档交互
CN105144063B (zh) 软件应用的自动保存模式及手动保存模式
CN104221011B (zh) 使用文档评论来跟踪共同创作冲突
US11340769B2 (en) Generating content items out of an electronic communication workflow
CN105531699B (zh) 用于组织演示幻灯片的自动化系统
CN105393266B (zh) 将来自不同内容源的内容聚集在云服务处
CN106164908A (zh) 现代文档保存与同步状况
CN106170807A (zh) 沉浸式文档查看
CN106068523A (zh) 基于隐式和显式信号来发现企业内容
TW201537436A (zh) 對於沉浸式文件查看中之部件的使用者互動及動作驅動更新
CN110168539A (zh) 混合应用中的快速页面加载
CN108885557A (zh) 分批的任务
CN104364819A (zh) 增强的电子通信草稿管理
CN108369528A (zh) 用于生产力应用的唤回服务
CN105917326A (zh) 从电子文档中的文本数据创建信息图
CN108139895A (zh) 字体字型预览
CN107003879A (zh) 用于计算机应用软件中的同时协同撤销操作的方法和系统
CN110121726A (zh) 最相关的首先日历事件同步
CN110023943A (zh) 自动会议邀请处理
CN109983488A (zh) 电子邮件项的自动化显示状态
KR102368945B1 (ko) 외부 콘텐츠 아이템과의 인코딩된 연관을 제공하는 기법

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