CN108352004B - 对共享文件的私人编辑 - Google Patents
对共享文件的私人编辑 Download PDFInfo
- Publication number
- CN108352004B CN108352004B CN201680067698.6A CN201680067698A CN108352004B CN 108352004 B CN108352004 B CN 108352004B CN 201680067698 A CN201680067698 A CN 201680067698A CN 108352004 B CN108352004 B CN 108352004B
- Authority
- CN
- China
- Prior art keywords
- user
- personal
- file
- shared file
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Abstract
提供了用于对协同空间中的共享文件进行私人编辑的系统、组件、设备和方法。一种非限制示例包括用于允许用户对协同空间中的共享文件进行私人编辑的服务器计算设备。所述服务器计算设备包括被配置为生成用户界面的界面引擎。所述用户界面包括能够在所述协同空间中访问的多个共享文件的列表,以及用于对所述多个共享文件中的所识别的共享文件进行私人编辑的私人编辑控件。当所述私人编辑控件被致动时,所述服务器计算设备生成所识别的共享文件的个人副本,并且更新与所识别的共享文件相关联的元数据以指示所述个人副本已经被生成。
Description
背景技术
文件可以被存储在协同空间中。协同空间是多个用户能够在其中共享文件以例如对一个项目进行协同的位置。协同空间能够由用户经由网络来访问。多个用户能够访问并编辑在协同空间中共享的文件。协同空间的示例包括共享文件夹以及团队站点,例如来自WA州Redmond市的微软公司的
通常而言,协同空间的用户可以利用合适的应用来编辑存储在其中的文件。例如,如果演示文件被存储在协同空间中,则用户可以使用演示编辑程序来编辑该文件。所述演示编辑程序可以是直接在计算设备上运行的传统应用。可替代地,演示编辑程序可以是由网络服务器所提供并且在网络浏览器中运行的基于网络的应用。
发明内容
本公开的非限制性示例描述了对协同空间中的共享文件进行私人编辑。在一个示例中,一种服务器包括私人编辑引擎,所述私人编辑引擎管理对共享文件的访问并且响应于对共享文件进行私人编辑的请求而为用户生成该共享文件的私人副本。还描述了其他示例。
第一方面是一种用于允许用户对协同空间中的共享文件进行私人编辑的服务器计算设备,其包括:被配置为生成用户界面的界面引擎,所述用户界面包括:能够在所述协同空间中访问的多个共享文件的列表;以及用于对所述多个共享文件中的所识别的共享文件进行私人编辑的私人编辑控件;其中,当所述私人编辑控件被致动时,所述服务器计算设备生成所识别的共享文件的个人副本,并且更新与所识别的共享文件相关联的元数据以指示所述个人副本已经被生成。
另一个方面是一种管理对共享文件的私人编辑的方法,所述方法包括:生成用户界面屏幕,所述用户界面屏幕包括能够在所述协同空间中访问的多个共享文件的列表;从用户接收对来自多个共享文件中的所识别的共享文件进行私人编辑的请求;生成所识别的共享文件的个人副本;并且更新与所识别的共享文件相关联的元数据以指示所述个人副本已经被生成。
另一个方面是一种用于允许用户对协同空间中的共享文件进行私人编辑的服务器计算设备,其包括:被配置为生成用户界面的界面引擎,所述用户界面包括:能够在所述协同空间中访问的多个共享文件的列表,所述协同空间包括操作以识别来自多个共享文件中的共享文件的多个文件识别控件;以及用于对所述多个共享文件中的所识别的共享文件进行私人编辑的私人编辑控件,所识别的共享文件被配置为在所述多个识别控件中的一个被致动时被显示;和个人副本引擎,所述个人副本引擎被配置为在所述私人编辑控件被致动时:识别由与用户相关联的基于网络的存储服务器所提供的个人存储位置;在所识别的个人存储位置中生成所识别的共享文件的个人副本;并且更新与所识别的共享文件相关联的元数据以存储所述用户的身份以及包括所述个人副本被生成的日期和时间的时间戳。
示例被实现为计算机进程、计算系统、或者诸如计算机程序产品或计算机可读介质之类的制造品。根据一个方面,所述计算机程序产品是能够由计算机系统读取并且对指令的计算机程序进行编码以执行计算机进程的计算机存储介质。
提供了该发明内容以用简化的形式引入对在以下的具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。示例的额外方面、特征、和/或优点将在以下描述中部分给出,并且部分将通过该描述而是显然的,或者可以通过本公开的实践而习得。
附图说明
参考以下附图对非限制和非穷举的示例进行描述。
图1是用于私人编辑共享文件的系统的一个示例的简化框图。
图2示出了图1的私人编辑引擎的实施例。
图3示出了由图1的系统的实施例所执行的用于生成共享文件的个人副本的示例性方法。
图4示出了由图1的系统的实施例所执行的用于访问共享文件的示例性方法。
图5示出了由图1的系统的实施例所执行的用于发布共享文件的个人副本的示例性方法。
图6示出了由图1的系统的实施例所执行的用于打开共享文件的示例性方法。
图7示出了由图1的系统的实施例所生成的用于查看共享文件的列表以及用于请求对共享文件中的一个进行私人编辑的示例用户界面屏幕。
图8示出了由图1的系统的实施例所生成的用于识别共享文件的个人副本的个人存储位置的示例用户界面屏幕。
图9示出了由图1的系统的实施例所生成的用于在共享文件的个人副本已经被生成之后查看共享文件的列表的示例用户界面屏幕。
图10示出了由图1的系统的实施例所生成的用于在用户尝试访问共享文件时向用户传送有关共享文件的现有个人副本的信息的示例用户界面屏幕。
图11示出了由图1的系统的实施例所生成的用于访问正被私人编辑的共享文件的示例用户界面屏幕。
图12示出了由图1的系统的实施例所生成的供用户查看个人文件存储位置中的文件并且发布共享文件的个人副本的示例用户屏幕。
图13示出了由图1的系统的实施例所生成的用于在形成了个人副本之后向用户传送共享文件被修改并且关于如何发布个人副本向用户进行提示的示例用户界面屏幕。
图14示出了由图1的系统的实施例所生成的供用户查看存储在个人存储位置中的文件并且确认存储在其中的共享文件的个人副本的发布的示例用户界面。
图15是示出了计算设备的示例物理组件的框图。
图16是移动计算设备的简化框图。
图17是移动计算设备的另一个简化框图。
图18示出了用于私人编辑共享文件的系统的架构的一个示例。
具体实施方式
本公开描述了共享文件的私人编辑。共享文件可以被存储在能够由多个用户访问的存储器上的协同空间中。用户可以对协同空间中的文件进行编辑。有时,用户想要编辑文件而并不立即与所有其他用户共享该编辑。例如,如果用户打算对文件进行大量更新,则该用户可能希望在一段时间内对该文件进行私人编辑以便完成所述更新。在用户完成更新之后,接着用户可以想要与其他用户共享经更新的文件。如果由用户所进行的中间改变与其他用户进行共享,则其他用户可能被暴露以不一致且非最终的文件。
在一些版本管理系统中,用户必须在编辑文件之前必须将其签出。当文件被签出时,其他用户无法对其进行编辑。在用户完成对文件的编辑之后,用户可以将文件签回以使得所述改变对其他用户可用。不幸的是,在文件被签出的同时,其他用户通常被完全阻隔于该文件之外而根本无法对其进行修改。因此,签入/签出选项并不是非常协同性的。
可替代地,用户能够人工地创建来自协同空间的共享文件的本地副本。例如,可以在用户的计算机的桌面上形成本地副本。用户接着可以在必要情况下对文件的本地副本进行编辑。在用户已经完成了对文件的编辑之后,用户能够将本地文件复制在协同空间中的共享文件之上,以使得经编辑的版本对其他用户可用。不幸的是,在用户对文件的本地副本进行工作期间,其他用户可以对文件的共享版本进行编辑而甚至不知道该用户的本地版本。在用户将共享文件复制回协同空间时,由其他用户所进行的任何改变将会丢失并且该用户甚至不太可能知道丢失的改变。由此,形成并编辑共享文件的本地副本并不是理想的。
在以下所描述的用于对共享文件进行私人编辑的系统的一些实施例中,在上文中所提及的缺陷中的至少一些得以被克服。该系统响应于来自用户的请求而形成共享文件的个人副本。该个人副本可以在与用户相关联的个人存储空间中形成,例如由基于网络的存储设备所提供的个人存储空间。当所述个人副本被形成时,与所述个人副本相关联的元数据被更新以指示已经形成了该个人副本。该元数据还可以指示谁形成了该个人副本以及何时形成了该个人副本。当其他用户尝试访问共享文件时,该系统可以生成用户界面以向用户通知关于该文件的个人副本并且针对是否继续访问共享文件而对用户进行提示。以该方式,其他用户能够在具有对个人副本的了解的情况下决定是否访问该文件(并且有可能对文件进行改变)。
额外地,用户能够将个人副本的经编辑的版本发布回共享空间。以该方式,用户的编辑将仅在该用户决定文件就绪时才对其他用户可用。在用户发布个人副本时,该系统可以确定共享文件在形成个人副本之后是否被编辑。如果共享文件在形成个人副本之后被编辑,则该系统将生成用户界面以向用户呈现有关对共享文件的改变的信息并且关于如何继续而对用户进行提示。该用户可以选择覆写对共享文件的改变或者将经编辑的个人副本与对共享文件的改变进行合并。有利地,该系统给用户提供了有关对共享文件的改变的信息而非仅仅覆写共享文件。
图1是用于私人编辑共享文件的系统100的一个示例的简化框图。如在图1中所示,系统100包括能够由用户U操作的用户计算设备102、协同服务器104、以及用户存储服务器106。用户计算设备102、协同服务器104、和用户存储服务器106通过网络进行通信。
用户计算设备102包括用户代理108。用户代理108允许用户与诸如共享文件之类的文件进行交互。在一些实施例中,用户代理108是在用户计算设备102上运行的与协同服务器104和用户存储服务器106中的一者或两者进行交互的应用。额外地,用户代理108可以是在用户计算设备102上运行的操作系统的组件。在一些示例中,用户代理108是浏览器应用,其能够操作以基于由协同服务器104或用户存储服务器106所供应的内容而生成交互式图形用户界面。根据示例,扩展作为浏览器应用(即,用户代理108)的外接件或插件被安装在用户计算设备102上,或者被嵌入在浏览器应用中。
协同服务器104操作以提供基于网络的服务,包括文件共享和协同服务。由协同服务器104所提供的基于网络的服务的非限制性示例包括来自WA州Redmond市的微软公司的的团队站点协同服务。基于网络的服务的额外示例包括文档存储和编辑服务,例如来自California州Mountain View市的Google公司的Google for Work企业服务以及来自韩国首尔的Polaris Office公司的Polaris Office;以及基于网络的文件共享服务,例如来自California州Los Alto市的Box公司的Box,来自California州San Francisco市的DropBox公司的Dropbox,来自California州Santa Clara市的Syncplicity公司的Syncplicity,以及其他基于网络的文件共享服务。
如在图1中所示,协同服务器104包括私人编辑引擎110和数据存储112。私人编辑引擎110操作以与用户代理108进行交互,并且提供对存储在数据存储112中的共享文件114的访问,包括用于执行私人编辑的访问。
数据存储112操作以存储文件和其他数据,并且可以包括一个或多个文件系统和数据库(例如,关系数据库)。数据存储112可以包括一个或多个服务器计算设备。在一些实施例中,数据存储112可以包括分布式数据库或分布式文件系统。
用户存储服务器106操作以为用户存储文件。在一些实施例中,用户存储服务器106操作以为多个用户存储文件。用户存储服务器106可以包括个人数据存储116,其中每个可以与至少一个特定的用户相关联。如在图1中所示,用户存储服务器106包括与用户1相关联的个人数据存储118以及与用户U相关联的个人数据存储120。用户存储服务器106的实施例可以包括任何数量的个人数据存储116。在一些实施例中,用户存储服务器106被配置为将对个人数据存储116以及存储在其中的文件的访问限制于相关联的用户(例如,对个人数据存储118的访问可以被限制于用户1,对个人数据存储120的访问可以被限制于用户U)。在一些实施例中,用户能够允许其他用户访问个人数据存储中的文件中的至少一些文件。
在一些实施例中,用户存储服务器106是由基于网络的存储服务器所提供,例如来自WA州Redmond市的微软公司的OneDrive,来自California州Mountain View市的谷歌公司的Google Drive,来自California州Los Alto市的Box公司的Box,来自California州SanFrancisco市的DropBox公司的Dropbox,来自California州Santa Clara市的Syncplicity公司的Syncplicity,以及其他基于网络的文件共享服务。
在图1所示的示例中,与用户U相关联的个人数据存储120存储共享文件的个人副本122。该个人副本122是由私人编辑引擎110基于来自用户代理108的请求而创建的。
尽管图1将协同服务器104和用户存储服务器106示出为分别的服务器,但是在一些实施例中,协同服务器104和用户存储服务器106是相同的服务器。另外,如在本文中所使用的,服务器可以包括一个或多个计算设备,其包括一个或多个服务器群,它们可以位于任何地方,包括接近于用户计算设备102或者分布在整个世界的各个位置。
图2示出了私人编辑引擎110的实施例。在一些实施例中,私人编辑引擎110包括界面引擎150、个人副本引擎152、发布文件引擎154、文件访问和状态引擎156、维护引擎158、和数据存储160。
界面引擎150与用户代理108和用户存储服务器106进行通信以发送和接收请求、命令、数据等。在一些实施例中,界面引擎150接收与共享文件114或者共享文件的个人副本相关的请求。例如,界面引擎150可以接收用于为特定用户创建共享文件的个人副本的请求。作为响应,界面引擎150可以将共享文件的副本发送至用户存储服务器106以用于存储在与用户相关联的个人数据存储中。
额外地,在一些实施例中,界面引擎150为用户生成用户界面以与私人编辑引擎110进行交互。在至少一些实施例中,界面引擎150生成被发送至用户代理108以向用户U呈现的数据或文件。例如,界面引擎150可以以下面的标记语言为格式来生成文件,例如超文本标记语言(HTML)或可扩展超文本标记语言(XHTML)。界面引擎150还可以以下面的客户端脚本语言来生成文件,例如JavaScript、ActionScript、Dart、VBScript、或Typescript。界面引擎150还可以生成其他类型的文件。另外,在一些实施例中,界面引擎150将现有文件发送至用户代理108。所述现有文件可以是标记语言文件、客户端脚本文件、图像文件、样式表文件、视频文件、文档文件、或者任何其他类型的文件。在一些实施例中,用户界面引擎包括网络服务器,例如来自WA州Redmond市的微软公司的互联网信息服务(IIS),来自Maryland州Forest Hill市的Apache Software Foundation公司的Apache HTTP Server,来自California州旧金山市的Nginx公司的Nginx,来自California州Mountain View市的Google公司的Google Web Server,以及其他网络服务器。
个人副本引擎485操作以为用户创建在数据存储112中所存储的一个或多个共享文件的个人副本。在一些实施例中,该个人副本被存储在用户存储服务器106上与用户相关联的个人数据存储中。该个人副本可以是私人的以使得访问被限于特定用户,可以是公共的以使得许多用户都能够访问该文件,或者是半私人的以使得所定义的用户分组能够访问该文件。还至少关于图3说明并描述了个人副本引擎152的操作。
发布文件引擎154操作以发布经私人编辑的文件,例如共享文件的个人副本。例如,在用户已经完成对文件的个人副本的私人编辑之后,发布文件引擎可以将文件发布至协同服务器104(例如,通过替换数据存储112中共享文件的先前版本)。还至少关于图5说明并描述了发布文件引擎154的操作。
文件访问和状态引擎156操作以提供对共享文件的访问并且确定共享文件114的状态。例如,文件访问和状态引擎156可以向希望查看或编辑共享文件的用户提供访问。在一些实施例中,文件访问和状态引擎156利用共享文件的任何个人副本来协调对共享文件的访问。额外地,文件访问和状态引擎156可以确定当前存在共享文件114中的特定一个的多少个人副本。在一些实施例中,文件访问和状态引擎156还操作以确定共享文件的个人副本先前是否已经被编辑。至少关于图4进一步说明和描述了文件访问和状态引擎156的操作。
维护引擎158维护共享文件114。在一些实施例中,维护引擎158评估与共享文件相关联的元数据。在至少一些实施例中,维护引擎158包括对共享文件执行维护操作的一个或多个经调度的任务。一种示例维护操作是评估个人副本的年龄(例如,该个人副本在多久之前形成),并且在一些实施例中,取回比预先定义的持续时间更旧的个人副本。作为另一种示例维护操作,查询个人数据存储以确定共享文件的个人副本的最新修改日期,其接着可以被存储在数据存储160中。有利地,通过将共享文件的个人副本的最新修改日期存储在数据存储160中,最新修改的数据能够在没有与查询个人数据存储116相关联的潜在延迟的情况下被呈现给用户。
数据存储160操作以存储文件和其他数据,并且可以类似于数据存储112。在一些实施例中,数据存储160存储文件元数据162和用户元数据164。作为示例,文件元数据可以包括与共享文件114相关的各种信息,包括是否已经形成了任何个人副本,与个人副本相关联的用户的身份,个人副本何时形成(例如,时间戳),以及个人副本何时被最后编辑。用户元数据164的示例包括相关联的个人数据存储的位置以及针对该个人数据存储的访问信息,例如协议类型、认证信息等。在一些实施例中,数据存储160也存储额外或不同的数据。
图3示出了用于生成共享文件的个人副本的示例性方法210。作为示例,方法210可以由诸如系统100的示例性系统的组件所执行。例如,方法210可以由个人副本引擎152来执行。在示例中,方法210可以在包括至少一个处理器的设备上执行,所述处理器被配置为存储并执行操作、程序或指令。
在操作212处,从用户接收对共享文件进行私人编辑的请求。例如,该请求可以由用户代理108基于来自用户的输入而传送至私人编辑引擎110。在一些实施例中,用户通过致动(例如,触碰触摸屏显示面板或者使用鼠标或另一种用户输入设备进行点击)由用户代理108所生成并且在用户计算设备102上显示的用户界面屏幕的用户可致动界面元素来进行该请求。例如,用户可以从在用户已经识别出特定共享文件之后所显示的菜单中选择“私人编辑”选项。至少关于图7说明和描述了用于请求对文件进行私人编辑的示例用户界面屏幕。
在操作214处,识别与用户相关联的个人存储位置。在一些实施例中,基于存储在用户元数据164中的数据来识别个人存储位置。例如,该元数据可以标识用户存储服务器106的个人数据存储116中的一个。额外地,在一些实施例中,用户可以指定共享文件的个人副本应当被存储于其中的个人存储位置。至少关于图8说明和描述了用于识别共享文件的个人副本的个人存储位置的示例用户界面屏幕。
在操作216处,在所识别的个人存储位置中创建共享文件的个人副本。在一些实施例中,通过向用户存储服务器106发送共享文件以及用于指定所识别的个人存储位置和该文件应当如何被存储在其中(例如,特定目录路径、文件名、访问许可等)的信息来创建个人副本。
在操作218处,更新与共享文件相关联的文件元数据162。在一些实施例中,在元数据162中创建指示个人副本已经形成的记录。该记录可以包括共享文件的标识、用户的身份、个人副本的位置,以及指示个人副本何时形成的时间戳。在一些实施例中,除了更新元数据之外,当前访问共享文件或者已经形成了共享文件的个人副本的其他用户被通知关于个人副本已经形成。该通知可以包括电子邮件、SMS消息、应用(例如,用于访问和编辑共享文件的基于网络的应用)中的弹出消息,或者通知其他用户的任何其他方式。
图4示出了用于访问共享文件的示例性方法260。作为示例,方法260可以由诸如系统100之类的示例性系统的组件来执行。例如,方法260可以至少部分由文件访问和状态引擎156以及文件状态引擎的其他组件来执行。例如,协同服务器104的一些实施例。在示例中,方法260可以在包括至少一个处理器的设备上执行,所述处理器被配置为存储并执行操作、程序或指令。
在操作262处,从用户接收用于访问共享文件的请求。在一些实施例中,该请求可以用于访问(读取或编辑)共享文件。额外地,在一些实施例中,用户可以请求移动或复制共享文件。另外,来自用户的请求可以是用于对共享文件进行私人编辑的请求。
在一些实施例中,该请求由用户代理108基于来自用户的输入而被发送。例如,用户可以选择菜单选项以打开、下载、或移动共享文件。该菜单选项可以通过致动由用户代理108所生成并且在用户计算设备102上显示的用户界面屏幕的用户可致动界面元素而被选择。可替代地,该请求通过致动按钮或者另一种类型的用户界面元素而被发送。
在操作264处,确定另一用户是否具有用于对共享文件进行私人编辑的个人副本。如果另一用户具有文件的个人副本,则方法260进行至操作266。如果没有,则该方法进行至操作270。
在操作266处,向用户传送另一用户具有该文件的个人副本。向用户的传送例如可以包括其他用户的名称或者与之相关的其他标识信息。额外地,传送可以包括个人副本形成的日期和时间以及该个人副本先前是否被编辑过,如果被编辑过,则包括该个人副本何时最后(即,最近)被私人编辑。在一些实施例中,从文件元数据162取回有关共享文件的个人副本的信息。额外地,在一些实施例中,从用户存储服务器106取回有关个人副本的信息。另外,在一些实施例中,多个用户可以同时存储同一共享文件的个人副本。在这些实施例中,向用户呈现的信息可以指示多个用户具有所创建的共享文件的个人副本。有利地,该信息可以允许用户确定是否访问文件的当前版本或者是否等待其他(多个)用户将个人副本发布回共享文件。用户可以使用该信息来联系其他用户以询问共享文件的状态。至少关于图10说明和描述了用于向用户传送有关共享文件的现有个人副本的信息的示例用户界面屏幕。
在操作268处,确定即使存在个人副本,用户是否仍然想要访问该文件。如果是,则方法260继续至操作270。否则,方法260结束。
在操作270处,提供用户对所请求的共享文件的访问。取决于用户已经请求的访问的类型,提供访问可以包括将共享文件发送至用户代理108或用户存储服务器106。额外地,在一些实施例中,可以提供通过由协同服务器104所提供的基于网络的应用界面的访问。至少关于图11说明和描述了用于访问通过基于网络的应用界面的私人编辑的共享文件的示例用户界面屏幕。
图5示出了用于发布共享文件的个人副本的示例性方法290。作为示例,方法290可以由诸如系统100之类的示例性系统的组件来执行。例如,方法290可以由发布文件引擎154来执行。在示例中,方法290可以在包括至少一个处理器的设备上执行,所述处理器被配置为存储并执行操作、程序或指令。
在操作292处,从用户接收用于发布共享文件的个人副本的请求。在一些实施例中,该请求由用户代理108基于来自用户的输入而被发送。例如,用户可以选择菜单选项以发布个人副本。所述菜单选项可以通过致动由用户代理108所生成并且在用户计算设备102上显示的用户界面屏幕的用户可致动界面元素而被选择。可替代地,该请求通过致动按钮或者另一种类型的用户界面元素而被发送。在一些实施例中,用于发布个人副本的菜单选项或其他类型的用户界面元素仅在用户已经针对个人副本进行或保存了个人编辑时是可用的。至少关于图12说明和描述了一种供用户请求发布共享文件的个人副本的示例用户界面屏幕。
在操作294处,确定共享文件自形成该共享文件的个人副本之后是否已经被修改。在一些实施例中,确定共享文件是否已经被修改包括将共享文件的最新编辑日期与形成该共享文件的个人副本的日期进行比较。额外地,在一些实施例中,确定共享文件是否已经被修改包括将与个人副本相关联的版本编号与关联于该共享文件的版本编号进行比较。额外地,在一些实施例中,确定共享文件是否已经被修改包括将该共享文件的签名(例如,Rivest-Shamir-Adleman(RSA)或数字签名算法(DSA)签名)与在个人副本被形成时该共享文件的签名进行比较,所述签名可以连同与用户相关联的个人数据存储中(或其他地方)的该共享文件的个人副本一起存储在文件元数据162中,或者存储在其他地方。如果确定共享文件已经被修改,则方法290进行至操作296。否则,方法290进行至操作302。
在操作296处,向用户传送关于共享文件在形成个人副本之后被修改。除了向用户通知共享文件已经被修改之外,该传送可以包括例如进行改变的日期和时间的列表以及谁进行了该改变的列表。一些实施例还包括与改变相对应的版本编号,并且可以包括用于查看经改变的文件(或者文件中已经被改变的部分)的用户可致动元素。至少关于图13说明和描述了用于向用户传送共享文件在形成个人副本之后被修改的示例用户界面屏幕。
在操作298处,确定个人副本是应当与共享文件合并,还是个人副本应当覆写(即,替换)共享文件。尽管覆写共享文件可能会引起对共享文件的改变被丢弃,但一些实施例将个人副本保存为新的版本。在这些实施例中,看上去丢失的改变能够通过退回至共享文件的先前版本而被恢复。在一些实施例中,对是覆写还是合并的确定是基于对用户的提示而进行的。例如,在操作296中所描述的对用户的传送可以包括用于指示是合并还是覆写共享文件的用户提示。额外地,在一些实施例中,对冲突解决设置进行评估以确定是合并、覆写、还是提示用户。在一些实施例中,该冲突解决设置存储在文件元数据162中,并且定义针对特定文件的冲突解决行为。额外地,在一些实施例中,该冲突解决设置被存储在用户元数据中,并且定义了针对由特定用户所发布的改变的冲突解决行为。作为另一示例,该冲突解决设置被存储在协同服务器104上,并且可以针对存储在协同服务器104上的全部或一些文件来定义冲突解决行为设置。
如果确定应当用共享文件的个人副本来覆写经更新的共享文件,则方法290继续至操作300。如果替代地,确定个人副本应当与经更新的共享文件合并,则方法290继续至操作302。
在操作300处,共享文件的个人副本被存储在协同服务器104上。在一些实施例中,共享文件的个人副本被存储为共享文件的新版本(例如,如果共享版本的经更新的版本为版本2,则共享文件的个人副本的经存储的版本可以是版本3)。
在操作302处,来自共享文件的改变被合并到共享文件的个人版本中。可以使用各种技术来合并文件。在一些实施例中,用来合并文件的具体技术可以取决于文件类型。例如,Microsoft Word文档可以使用Microsoft Word应用内的合并处理来合并,而MicrosoftExcel文档则可以使用Microsoft Excel应用内的合并处理来合并。其他类型的文件也可以使用其他处理来合并。额外地,一些类型的文件可能不适合于合并;在这样的情况下,合并可能失败并且用户可能被建议替代地覆写文件。
合并可以由协同服务器104来执行。额外地,在一些实施例中,用户代理108可以执行合并。例如,协同服务器104可以将经改变的共享文件的副本发送至用户代理108,并且用户代理108接着将经改变的共享文件与该共享文件的个人版本进行合并。可替代地,在一些实施例中,协同服务器104发送对共享文件的改变(例如,通过将用于形成个人副本的共享文件的版本与经更新的共享文件进行比较)而不是整个经改变的共享文件。用户代理108接着将改变合并到共享文件的个人版本中以生成经合并的文件。
在操作304处,经合并的文件在协同服务器104上。在一些实施例中,经合并的文件作为共享文件的新版本而被存储(例如,如果共享文件的更新的版本是版本2,则共享文件的个人副本的所存储的版本可以是版本3)。
图6示出了用于打开共享文件的示例性方法330。作为示例,方法330可以由诸如系统100之类的示例性系统的组件来执行。例如,方法330可以至少部分由文件访问和状态引擎156来执行。在示例中,方法330可以在包括至少一个处理器的设备上执行,所述处理器被配置为存储并执行操作、程序或指令。
在操作332处,打开共享文件的个人副本以便进行私人编辑。在至少一些实施例中,通过致动用户界面屏幕上与个人副本相关联的用户可致动控件来打开个人副本。至少关于图12说明和描述了包括与各种文件(其包括共享文件的个人副本)相关联的用户可致动控件的示例用户界面屏幕。
在一些实施例中,共享文件的个人副本可以由用户代理108或者在用户计算设备102上运行的应用打开。额外地,在一些实施例中,共享文件的网络个人副本是由基于网络的文件编辑应用打开的,例如来自WA州Redmond市的微软公司的Office Online。
在操作334处,确定与个人副本相关联的共享文件的状态。确定相关联共享文件的状态可以包括确定以下中的一个或多个:共享文件在形成个人副本之后是否已经被修改,是否已经形成了个人文件的额外个人副本,以及共享文件的任何个人副本是否已经被修改。
在操作336处,将所确定的状态传送给用户。对用户的传送可以包括在操作334处所确定的状态信息中的任何状态信息。所述状态信息可以在弹出消息中传送,在打开文档的应用所显示的工具栏中传送,或者以其他方式传送。至少关于图11说明和描述了用于向用户传送有关共享文件的现有个人副本的信息的示例用户界面屏幕。
尽管关于打开共享文件的个人副本以供私人编辑而对方法330进行了描述,但是实施例包括用于确定为了查看或编辑而被打开的共享文件的状态的类似方法。例如,这些实施例可以在用户查看了相关联的共享文件之后向其传送个人副本的状态。额外地,在一些实施例中,类似于方法330的方法操作以确定并传送在文件目录或列表中列出的一个或多个文件的状态。
图7示出了用于查看共享文件的列表以及用于请求对共享文件中的一个共享文件进行私人编辑的示例用户界面屏幕370。在一些实施例中,用户界面屏幕370是由用户计算设备102显示的。在一些实施例中,用户界面屏幕370是由用户代理108至少部分地基于由协同服务器104所发送的信息而生成的。
在该示例中,用户界面屏幕370包括列表372和菜单374。列表372包括项目的列表。所述项目的列表可以包括文件和目录。在一些实施例中,列表372包括与特定目录中的所有文件和目录相对应的项目。列表372显示关于项目的各种信息,例如项目类型、名称、最后修改日期、以及最后修改文件的用户的标识符。在其他实施例中,列表372也可以包括额外或不同的信息。在至少一些实施例中,列表372中的项目包括能够由用户致动以从列表372中识别特定文件的文件识别控件。在项目中的一个项目被致动之后,可以在界面上显示诸如菜单374之类的菜单。
菜单374是当列表372中的特定相关联的项目被致动时作为弹出菜单而被显示的示例菜单。菜单374包括能够关于特定相关联的项目执行的各种动作。在该示例中,菜单374包括打开控件376、在线打开控件378、下载控件380、移动至控件382、私人编辑控件384、和属性控件386等。打开控件376、在线打开控件378、下载控件380、移动至控件382是访问文件控件的示例。
在致动之后,打开控件376操作以使用诸如来自WA州Redmond市的微软公司的PowerPoint之类的基于客户端的应用来打开相关联的项目。在一些实施例中,相关联的文件被发送至用户代理108,其在那里至少临时被存储在用户计算设备102上。
在致动之后,在线打开控件378操作以使用诸如来自WA州Redmond市的微软公司的PowerPoint Online之类的基于网络的应用来打开相关联的项目。在一些实施例中,基于网络的应用是由协同服务器104提供的。在其他实施例中,基于网络的应用是由另一服务器提供的,并且相关联的项目被发送至其他服务,因此其能够由基于网络的应用来访问。
在致动之后,下载控件380操作以请求相关联的项目(例如,共享文件)的副本并将其保存在用户计算设备102上或者由用户所指定的另一位置中。在一些实施例中,响应于对下载控件308的致动,显示用户能够在其中指定所述位置的弹出提示。
在致动之后,移动至控件382操作以将相关联项目移动至由用户(例如,通过可以响应于对移动至控件382的致动而显示的弹出提示)所指定的另一位置。在一些实施例中,相关联文件被移动至存储在协同服务器104上的另一目录。额外地,在一些实施例中,相关联文件能够被移动至另一服务器或其他地方。
在致动之后,私人编辑控件384操作以生成相关联项目的个人副本以便进行私人编辑。在一些实施例中,私人编辑控件384仅针对某些相关联的项目而被显示。例如,私人编辑控件384可以在相关联项目是文件时在菜单374上被显示,但在相关联项目是目录时则不被显示。另外,私人编辑控件384可以仅针对某些类型的文件或者具有特定许可等级的文件而在菜单374上被显示。在文本通篇中描述了有关生成和使用文件的个人副本的各种操作。
在致动之后,属性控件386操作以显示有关相关联的项目的信息。在各种实施例中,显示各种属性。例如,在一些实施例中,显示有关创建日期、最后修改日期、用户的最后修改、大小、以及版本编号的属性。额外地,在一些实施例中,显示有关共享文件的个人副本的信息。例如,可以示出已经形成的任何个人副本的列表,以及谁形成了个人副本中的每个,何时形成了个人副本中的每个,以及何时最后修改了个人副本中的每个。
图8示出了用于识别共享文件的个人副本的个人存储位置的示例用户界面屏幕410。在一些实施例中,用户界面屏幕410是由用户计算设备102显示的。在一些实施例中,用户界面屏幕410是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在所示出的示例中,用户界面屏幕410包括提示窗口412。提示窗口412操作以提示用户选择用于存储共享文件的个人副本的位置。在一些实施例中,提示窗口412作为覆盖项目列表的弹出窗口而被显示。在所示出的示例中,提示窗口412包括位置选择器414、通知行为选择器416、复制控件418、以及取消控件420。
位置选择器414操作以接收用户对用于存储共享文件的个人副本的位置的选择。在一些实施例中,位置选择器414包括与用户相关联的位置的列表。额外地,在一些实施例中,位置选择器414将在所列出的位置被致动之后示出与被致动的位置相关联的额外子位置(例如,子目录)。另外,位置选择器414可以循环地呈现子位置以使得用户能够反复地向下钻取以识别个人副本的当前位置。可以至少部分地基于存储在用户元数据166中的数据来确定最初在位置选择器414中呈现的位置。
通知行为选择器416用于指定与个人副本相关的通知行为。在一些实施例中,通知行为选择器416是诸如勾选框之类的布尔选择器。在这些实施例中,通知行为可以在诸如通知和不通知之类的两个值之间切换。在其他实施例中,通知行为选择器416包括额外的选项,并且可以包括下拉列表或另一种类型的用户界面元素。额外的选项可以包括与其他人如何以及何时被通知关于个人副本相关的各种选项。例如,一个选项可以是在形成副本时通知至少一些其他人。另一个选项是在其他用户尝试访问或修改与个人副本相关联的共享文件时通知另一个用户。一些实施例包括使得个人副本的存在保持私密并且在任何情况下都不向其他用户通知其存在的选项。
在致动之后,复制控件418利用由通知行为选择器416所指定的通知行为来使得共享文件的副本在由位置选择器414所识别的位置中被形成。在致动之后,取消控件420取消未完成的复制操作并且使得提示窗口412被隐藏。
图9示出了用于在共享文件的个人副本已经被形成之后查看共享文件的列表的示例用户界面屏幕440。在一些实施例中,用户界面屏幕440是由用户计算设备102显示的。在一些实施例中,用户界面屏幕440是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在该示例中,用户界面屏幕440包括列表442。列表442包括诸如文件和目录的之类项目的列表,并且可以类似于先前已经描述的列表372。列表442包括图标列444。图标列444包括用于显示在列表442中所列出的每个项目的图标的区域。在一些实施例中,图标是信息的图形表示。图标列444可以显示指示对应的项目的类型和状态中的一个或多个的图标。
在示例用户界面屏幕440中示出了多个图标,包括图标446和图标448。图标446指示对应的项目的文件类型。在该情况下,图标446指示对应的项目是PowerPoint文件。图标448也指示对应的项目的文件类型。在该情况下,图标448指示对应的项目也是PowerPoint文件。额外地,图标448指示对应的项目的状态。在该情况下,图标448包括指示存在对应的共享文件的个人副本的绿色箭头。当然,该绿色箭头仅仅是示例,并且其他实施例可以以不同方式指示个人副本的存在。
图10示出了用于在用户尝试访问共享文件时向用户传送有关共享文件的现有个人副本的信息的示例用户界面屏幕470。在一些实施例中,用户界面屏幕470是由用户计算设备102显示的。在一些实施例中,用户界面屏幕470是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在所示出的示例中,用户界面屏幕470包括在用户尝试访问存在针对其的个人副本的特定共享文件时显示的提示窗口472。提示窗口472向用户传送已经形成的对应的共享文件的个人副本,并且提示用户确认是否继续访问该文件。在一些实施例中,提示窗口472被显示为覆盖项目列表的弹出窗口。在所示出的示例中,提示窗口472包括个人副本的列表474、继续控件476、和取消控件478。
列表474包括已经形成的项目的个人副本的列表。列表474显示有关项目的各种信息,例如形成个人副本的用户、个人副本何时被创建、个人副本是否已经被修改、以及个人副本何时最后被修改。在其他实施例中,列表474也可以包括额外或不同的信息。
图11示出了用于访问在进行私人编辑的共享文件的示例用户界面屏幕510。在一些实施例中,用户界面屏幕510是由用户计算设备102显示的。在一些实施例中,用户界面屏幕510是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。例如,用户界面屏幕510可以在用于访问共享文件的基于网络的应用中被显示。可替代地,用户界面屏幕510可以在用于访问共享文件的独立应用中被显示。
示例用户界面屏幕510包括命令条带512、状态消息514、以及文件内容面板516。命令条带512包括与被访问的文件的类型相关的各种用户界面元素以及用于访问该文件的工具。在所示出的示例中,被访问的文件是PowerPoint Online,并且用于编辑PowerPoint文件的内容的各种工具被包括在命令条带512中。
状态消息514向用户传送信息。在所示出的示例中,状态消息514传送存在文件的个人副本以及该个人副本被形成的日期。一些实施例也包括状态消息514中的不同的或额外的消息。额外地,在一些实施例中,状态消息514包括用户状态指示符518和消息控件520。用户状态指示符518操作以指示已经形成文件的个人副本的其他用户的状态。例如,该状态可以涉及其他用户当前是否登录到通信程序中,其他用户当前是否在进行电话通话,根据日历管理程序其他用户是繁忙还是空闲,或者有关其他用户的任何其他类型的状态。
在致动之后,消息控件520操作以开始用于向被识别为已经形成了共享文件的个人副本的其他用户发送消息的过程。在各种实施例中,该消息可以使用各种消息传送技术来发送。示例消息传送技术包括即时消息传送、文本消息传送、和电子邮件。有利地,用户可以使用消息控件520以利用确定共享文件的状态(例如,是否正在主动地对共享文件进行工作,等等)的问题来联系其他用户。
图12示出了供用户查看个人文件存储位置中的文件并且发布共享文件的个人副本的示例用户界面屏幕530。在一些实施例中,用户界面屏幕530是由用户计算设备102显示的。在一些实施例中,用户界面屏幕530是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在该示例中,用户界面屏幕530包括列表532和个人副本状态面板534。列表532包括个人存储空间中的项目(例如,文件和目录)的列表,并且可以类似于先前已经描述的列表372。在该示例中,列表532包括多个文件和文件夹,其包括所选择的文件536。
个人副本状态面板534操作以指示所选择文件是否是共享文件的个人副本。在一些实施例中,如果所选择文件是共享文件的个人副本,则个人副本状态面板534还包括其他信息和元素。例如,个人副本状态面板534可以包括共享文件信息消息538和发布控件540。
共享文件信息消息538可以指示所选择文件是共享文件的个人副本,并且可以标识所选择的文件从其复制的位置。在一些实施例中,以其他方式呈现有关文件是否是共享文件的个人副本的信息。例如,可以在列表532中显示图标或其他指示符以指示哪些所列出项目(如果存在的话)是共享文件的个人列表。
发布控件540操作以开始将所选择的个人副本发布回共享文件的过程。如在本文其他地方所描述的,共享文件可以覆盖现有共享文件而保存或者与现有共享文件合并。在一些实施例中,将所选择的个人副本发布回共享文件在协同服务器104上创建该共享文件的新版本。在一些实施例中,在个人副本还没有被修改时省略发布控件540。在这些实施例中的一些中,替代地包括清除控件。所述清除控件可以从文件元数据162中清除与共享副本相关的元数据,并且在一些实施例中,从用户计算设备102中删除个人副本。
图13示出了用于在形成个人副本之后向用户传送共享文件被修改并且关于如何发布个人副本对用户进行提示的示例用户界面屏幕550。在一些实施例中,用户界面屏幕550是由用户计算设备102显示的。在一些实施例中,用户界面屏幕550是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在所示出的示例中,用户界面屏幕550包括提示窗口552。提示窗口552操作以传送有关对共享文件的改变的信息并且提示用户选择针对共享文件的发布行为。在一些实施例中,提示窗口552被显示为覆盖项目列表的弹出窗口。在所示出的示例中,提示窗口552包括改变的列表554、覆写控件556、合并控件558、和取消控件560。
列表554包括有关在形成个人副本之后对共享文件所进行的改变的信息。在一些实施例中,列表554包括版本编号、修改日期,以及修改文件的用户的名称。额外地,在一些实施例中,列表554中的行可以是用户可致动的控件,其在被致动之后示出所识别版本的文件。一些实施例也包括额外的或不同的信息。
在致动之后,覆写控件556使得个人副本作为共享文件被存储,有可能覆写由其他用户在该个人副本形成之后所进行的任何改变。在一些实施例中,个人副本作为新版本被存储在协同服务器104上。
在致动之后,合并控件558使得个人副本被合并,并且经合并的文件作为共享文件被存储。在一些实施例中,经合并的文件作为新版本被存储在协同服务器104上。在一些实施例中,如果自个人副本被创建起已经对共享文件进行了多次改变,则可以提示用户要在合并时使用共享文件的哪个版本。在其他实施例中,个人副本与共享文件的最新近的版本合并而不提示用户。
在致动之后,取消控件560取消未完成的发布操作并且使得提示窗口552被隐藏。通常而言,共享文件的个人版本被留存以使得用户能够在之后选择将其发布。
图14示出了供用户查看存储在个人存储位置中的文件并且确认对存储于其中的共享文件的个人副本的发布的示例用户界面580。在一些实施例中,用户界面屏幕580是由用户计算设备102显示的。在一些实施例中,用户界面屏幕580是由用户代理108至少部分地基于由协同服务器104所发送的信息生成的。
在该示例中,用户界面屏幕580包括列表582和个人副本状态面板584。列表582包括个人存储空间中诸如文件和目录之类的项目的列表,并且可以类似于先前已经描述的列表532。在该示例中,列表582包括多个文件和文件夹,其包括所选择的文件586。
个人副本状态面板584操作以指示所选择文件是否是共享文件的个人副本,并且可以类似于先前已经描述的个人副本状态面板534。在一些实施例中,如果所选择文件是最近已经发布的共享文件的个人副本,则个人副本状态面板584也包括其他信息和元素。例如,个人副本状态面板584可以包括共享文件信息消息588和发布状态消息590。共享文件信息消息588可以类似于先前所描述的共享文件信息消息538。
发布状态消息590操作以指示个人副本已经被发布回共享文件。在一些实施例中,发布状态消息590还包括额外的信息,例如向所发布的文件指定的版本编号以及改变何时被发布。在一些实施例中,发布状态消息590在个人副本发布之后的预先确定的时间段内被显示。可替代地,发布状态消息590可以被显示直到在列表582中选择了不同文件为止。
图15是示出了可以利用其实践本公开的示例的计算设备600的物理组件(即,硬件)的框图。在基本配置中,计算设备600包括至少一个处理单元602和系统存储器604。根据一个方面,取决于计算设备的配置和类型,系统存储器604可以包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这些存储器的任何组合。根据一个方面,系统存储器604可以包括操作系统605和适用于运行软件应用650的一个或多个程序模块606。操作系统605例如适用于控制计算设备600的操作。此外,结合图形库、其他操作系统或任何其他应用程序来实践多个方面,而并不限于任何特定应用或系统。该基本配置在图15中由虚线608内的那些组件示出。根据一个方面,计算设备600可以具有额外的特征或功能。例如,根据一个方面,计算设备600还可以具有额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘或磁带。这些额外的存储在图15中由可移动存储设备609和不可移动存储设备610示出。
如上所述,根据一个方面,在系统存储器604中可以存储多个程序模块和数据文件。当在至少一个处理单元602上执行的同时,程序模块606(例如,私人编辑引擎110)执行包括但并不限于在图3-6中所示出的方法210、260、290、330的一个或多个阶段的过程。根据一个方面,其他程序模块根据示例被使用,并且包括诸如电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、或计算机辅助绘图应用程序等之类的应用。
根据一个方面,方面可以在电气电路中实践,该电气电路包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或者包含电子元件或微处理器的单个芯片。例如,方面经由片上系统(SOC)来实践,其中图15中所示出的每个或许多组件可以被集成到单个集成电路上。根据一个方面,这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都作为单个集成电路被集成到(或“烧制”)到芯片基底上。当经由SOC操作时,在本文中所描述的功能可以经由在单个集成电路(芯片)上集成有计算设备600的其他组件的专用逻辑来操作。根据一个方面,还可以使用能够执行逻辑运算(例如,AND、OR、NOT)的其他技术来实践本公开的方面,所述技术包括但不限于:机械、光学、流体、和量子技术。另外,可以在通用计算机中或者在任何其他电路或系统中实践多个方面。
根据一个方面,计算设备600具有一个或多个输入设备612,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。根据一个方面,还包括输出设备614,例如显示器、扬声器、打印机等。前述设备是示例并且可以使用其他设备。根据一个方面,计算设备600包括允许与其他计算设备618进行通信的一个或多个通信连接616。合适的通信连接616的示例包括但不限于射频(RF)发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
如本文所使用的术语计算机可读介质包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动的介质。系统存储器604、可移动存储设备609、和不可移动存储设备610都是计算机存储介质(即,存储器存储)的示例。根据一个方面,计算机存储介质包括:RAM、ROM、电可擦除只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可以用于存储信息并且可以由计算设备600所访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都是计算设备600的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据来实施的,并且包括任何信息传递介质或传输介质。根据一个方面,术语“经调制的数据信号”可以包括具有其特征集合中的一个或多个的信号,或者以关于在将信息在信号中进行编码的方式而改变。作为示例而非限制,通信介质包括有线介质(例如,有线网络或直接有线连接)以及无线介质(例如,声学、射频(RF)、红外、和其它无线介质)。
图16和17示出了可以利用其实践多个方面的移动计算设备700,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图16,示出了用于实施该方面的移动计算设备700的一个示例。在基本配置中,移动计算设备700是具有输入元件和输出元件两者的手持计算机。移动计算设备700通常包括显示器705以及允许用户向移动计算设备700中输入信息的一个或多个输入按钮710。根据一个方面,移动计算设备700的显示器705还可以充当输入设备(例如,触摸屏显示器)。如果被包括在内,可选的侧输入元件715允许进一步的用户输入。根据一个方面,侧输入元件715是旋转开关、按钮、或任何其他类型的手动输入元件。在可替代的示例中,移动计算设备700包含更多或更少的输入元件。例如,在一些方面中,显示器705可以不是触摸屏。在可替代的方面中,移动计算设备700是便携式电话系统,例如蜂窝电话。移动计算设备700包括可选的小键盘735。根据一个示例,可选的小键盘735是物理小键盘或者是在触摸屏显示器上生成的“软”小键盘。在一些示例中,输出元件包括用于示出图形用户界面(GUI)的显示器705、视觉指示器720(例如,发光二极管)、和/或音频换能换能器725(例如,扬声器)。在一些示例中,移动计算设备700包含用于给用户提供触觉反馈的振动换能器。在另一个示例中,移动计算设备700包含用于向外部设备发送信号或者从外部设备接收信号的输入和/或输出外围设备端口740,例如音频输入端(例如,麦克风插孔)、音频输出端(例如,耳机插孔)、以及视频输出端(例如,HDMI端口)。
图17是图示移动计算设备的一个示例的架构的框图。也就是说,移动计算设备700包含用于实现一些示例的系统(即,架构)702。在一个示例中,系统702被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏以及媒体客户端/播放器)的“智能手机”。在一些示例中,系统702被集成为计算设备,例如集成的个人数字助理(PDA)和无线电话。
根据一个方面,一个或多个应用程序750被加载到存储器762中并在操作系统764上运行或者与操作系统764相关联地运行。应用程序的示例包括电话拨号应用、电子邮件应用、个人信息管理(PIM)应用、文字处理应用、电子表格应用、互联网浏览器应用、消息传送应用,等等。根据一个方面,用户代理108被加载到存储器762中。系统702还包括存储器762内的非易失性存储区768。非易失性存储区768用于存储在系统702断电的情况下不应丢失的持续信息。应用程序750可以使用信息并将信息存储在非易失性存储区768中,例如用户代理108所使用的文件和其他信息等。在一些实施例中,同步应用(未示出)也驻留于系统702上并且被编程为与驻留在主机计算机(例如,用户存储服务器106)上的对应的同步应用进行交互,以保持存储在非易失性存储区768中的信息与主机计算机处诸如在个人数据存储116之一中存储的对应的信息同步。如应当理解的是,其他应用也可被加载到存储器762中并且在移动计算设备700上运行。
根据一个方面,系统702具有被实现为一个或多个电池的电源770。根据一个方面,电源770还包括外部电源,例如AC适配器或给电池供电或充电的加电对接托架。
根据一个方面,系统702包括执行发送和接收视频通信的功能的无线电设备772。无线电设备772经由通信载波或服务提供商来促成系统702与“外部世界”之间的无线连通性。来往于无线电设备772的传输是在操作系统764的控制下进行的。换句话说,可以将由无线电设备772所接收的通信经由操作系统764散播至应用程序750,反之亦然。
根据一个方面,视觉指示符720用于提供视觉通知,和/或音频接口774用于经由音频换能器725来产生听觉通知。在所示出的示例中,视觉指示符720是发光二极管(LED),并且音频换能器725是扬声器。这些设备可直接耦合至电源770,以便当被激活时,即使处理器760和其他组件可以关闭以节省电池电量,这些设备也能保持通电并持续由通知机制所指示的一段时间。LED可以被编程为无限期地保持通电,直到用户采取动作来指示设备的通电状态为止。音频接口774用于向用户提供可听见的信号并从用户接收可听见的信号。例如,除了耦合到音频换能器725之外,音频接口774还可以被耦合至麦克风以接收可听见的输入,例如,以促进电话会话。根据一个方面,系统702还可以包括视频接口776,其使得板载相机730的操作能够记录静止图像、视频流等。
根据一个方面,实现系统702的移动计算设备700具有额外的特征或功能。例如,移动计算设备700包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘或磁带。这样的额外存储在图7B中由非易失性存储区768示出。
根据一个方面,如上文所描述的,由移动计算设备700所生成或捕获并且经由系统702存储的数据/信息被本地地存储在移动计算设备700上。根据另一方面,将数据存储在可以经由无线电设备772或经由移动计算设备700和与移动计算设备700相关联的单独的计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接由设备来访问的任何数量的存储介质上。如所应当意识到的,这样的数据/信息能够经由移动计算设备700、经由无线电772或者经由分布式计算网络来访问。类似地,根据一个方面,根据公知的数据/信息传输和存储方式(包括电子邮件和协同数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间传输以供存储和使用。
图18示出了用于如在上文中所描述的对共享文件进行私人编辑的系统的架构的一个示例。关联于私人编辑引擎所生成、访问或编辑的文件可以源自于或者存储在不同通信信道或其他存储类型中。例如,各种文档可以使用目录服务822、门户网站824、邮箱服务826、即时消息存储828或社交网络站点830来存储。私人编辑引擎110能够操作以使用任何这些类型的系统等以便促成如这里所描述的组织中的一个或多个用户对共享文件的私人编辑。根据一个方面,协同服务器104向客户端805A、805B、805C提供私人编辑引擎110。作为一个示例,协同服务器104是通过网络提供私人编辑引擎110的网络服务器。协同服务器104通过网络810向客户端805提供web上的私人副本引擎。作为示例,客户端计算设备以个人计算机805A、平板计算机805B和/或移动计算设备805C(例如,智能电话)或者其他计算设备而被实现和实施。客户端计算设备的任何这些示例都能够操作以对存储在存储816中的共享文件进行私人编辑。
例如,在上文中参考方法、系统、和计算机程序产品的框图和/或操作图而描述了实现。在方框中所记录的功能/操作可以以不同于在任何流程图中所示出的顺序来进行。例如,取决于所涉及的功能/操作,连续地示出的两个方框可以实际上大体上同时执行,或者方框可以有时以相反的顺序执行。
在该申请中所提供的一个或多个示例的描述或示图不旨在以任何方式限制或约束所要求保护的发明的范围。在该申请中所提供的方面、示例、和细节被认为足以传达所有物,并且使得本领域技术人员能够制造并使用所要求保护的发明的最佳模式。实现不应该被解释为限于在该申请中所提供的任何方面、示例、或细节。无论是共同地还是单独地示出或描述,(结构上和方法上两者的)各种特征旨在选被择性地包括或省略,以产生具有特定组的特征的示例。在已经提供了本申请的描述和图示之后,本领域技术人员可以预想落入在该申请中所实施的一般的发明概念的更宽泛的方面的精神内的变型、修改和替代示例,而不脱离所要求保护的发明的更宽泛的范围。
Claims (13)
1.一种管理对共享文件的私人编辑的系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在被所述至少一个处理器执行时使得所述系统:
使得客户端设备显示用户界面,所述用户界面包括:
存储在协同空间中的多个共享文件的列表,以及
私人编辑控件,其是与所述多个共享文件中的个体共享文件相关联地显示的,
接收对所述个体共享文件进行私人编辑的请求;
确定与用户身份唯一对应的个人存储空间,所述用户身份是与从其接收到对所述个体共享文件进行私人编辑的所述请求的所述客户端设备相关联的;
使得所述个体共享文件的个人副本在所述个人存储空间中被生成;
从所述客户端设备接收通过所述用户身份进行的对所述个人副本的编辑;
更新与所述个体共享文件相关联的元数据以指示所述个人副本已经被生成;
从另一客户端设备接收用于访问所述个体共享文件的另一请求;以及
基于所述元数据,使得所述另一客户端设备显示关于所述个人副本已经被与所述用户身份相关联地生成的通知。
2.根据权利要求1所述的系统,其中,共享文件的所述列表包括多个文件识别控件,所述多个文件识别控件操作以从所述多个共享文件中识别共享文件,其中,在致动所述多个文件识别控件中的一个时,显示所述私人编辑控件。
3.根据权利要求1所述的系统,其中,当所述私人编辑控件被致动时,识别针对所述用户的个人存储位置,并且所识别的共享文件的所述个人副本是在所述个人存储位置中生成的。
4.根据权利要求3所述的系统,其中,所述个人存储位置是由基于网络的存储服务器提供的。
5.根据权利要求1所述的系统,其中,更新所述元数据包括:生成与所述个体共享文件相关联的记录,所述记录包括所述用户身份以及包括生成所述个人副本的日期和时间的时间戳。
6.根据权利要求1所述的系统,其中,与所述个人副本相关的信息包括与所述个人副本相关联的所述用户身份以及所述个人副本的最后修改日期。
7.根据权利要求1所述的系统,其中,所述列表包括与所述多个共享文件中的共享文件相关联的指示符,所述指示符用于指示所述共享文件的个人副本已经被形成。
8.一种管理对共享文件的私人编辑的方法,所述方法包括:
生成用户界面,所述用户界面包括能够在协同空间中访问的多个共享文件的列表;
接收与用户身份相关联的私人编辑请求以及所述多个共享文件中的个体共享文件;
使得在个人存储空间中生成所述个体共享文件的个人副本,所述个人存储空间对应于与所述私人编辑请求相关联的所述用户身份;
确定对所述个人副本的编辑已经通过所述用户身份被形成并且所述编辑已经经由发布指令被合并到所述个体共享文件中;
更新与所述个体共享文件相关联的元数据以指示所述个人副本已经被生成;
从与另一用户身份相关联的设备接收用于访问所述个体共享文件的访问请求;以及
基于所述元数据,使得通知被显示在与所述另一用户身份相关联的所述设备上,所述通知包括所述个体共享文件的所述个人副本被生成的日期和时间。
9.根据权利要求8所述的方法,还包括将用户界面数据发送至在用户计算设备上运行的用户代理,其中,所述用户界面屏幕被配置为在所述用户计算设备上显示。
10.根据权利要求9所述的方法,其中,所述用户界面包括网页并且被配置为由在所述用户计算设备上运行的浏览器来显示。
11.根据权利要求9所述的方法,其中,接收所述私人编辑请求包括通过网络从所述用户代理接收所述私人编辑请求。
12.一种协同服务器,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在被所述至少一个处理器执行时使得所述协同服务器:
使得客户端设备显示用户界面,所述用户界面包括:
能够在协同空间中访问的多个共享文件的列表,
私人编辑控件,其是与所述多个共享文件中的个体共享文件相关联地显示的;
接收与用户身份相关联的私人编辑请求;
识别促成与所述用户身份相关联的基于网络的存储的个人存储空间;
在所述个人存储存储空间中生成所述个体共享文件的个人副本;
确定对所述个人副本的编辑已经通过所述用户身份被形成并且所述编辑已经经由发布指令被合并到所述个体共享文件中;
更新与所述个体共享文件相关联的元数据以指示所述个人副本被与所述用户身份相关联地生成;
从与另一用户身份相关联的设备接收用于访问所述个体共享文件的访问请求;以及
基于所述元数据,使得通知被显示在与所述另一用户身份相关联的所述设备上,所述通知包括所述个体共享文件的所述个人副本被生成的日期和时间。
13.根据权利要求12所述的协同服务器,所述用户界面还包括用于将所述个体共享文件的所述个人副本发布至所述协同空间的发布控件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/946,579 US11128717B2 (en) | 2015-11-19 | 2015-11-19 | Private editing of shared files |
US14/946,579 | 2015-11-19 | ||
PCT/US2016/061805 WO2017087310A1 (en) | 2015-11-19 | 2016-11-14 | Private editing of shared files |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108352004A CN108352004A (zh) | 2018-07-31 |
CN108352004B true CN108352004B (zh) | 2022-05-24 |
Family
ID=57394692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067698.6A Active CN108352004B (zh) | 2015-11-19 | 2016-11-14 | 对共享文件的私人编辑 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11128717B2 (zh) |
EP (1) | EP3378021A1 (zh) |
CN (1) | CN108352004B (zh) |
WO (1) | WO2017087310A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8749495B2 (en) | 2008-09-24 | 2014-06-10 | Immersion Corporation | Multiple actuation handheld device |
US10162972B2 (en) | 2015-04-17 | 2018-12-25 | Dropbox, Inc. | Collection folder for collecting and publishing file submissions |
US10078433B2 (en) * | 2015-12-07 | 2018-09-18 | Dropbox, Inc. | Sharing a template file |
US20170193001A1 (en) * | 2015-12-30 | 2017-07-06 | Dropbox, Inc. | Control transfer of shared content |
US10713966B2 (en) | 2015-12-31 | 2020-07-14 | Dropbox, Inc. | Assignments for classrooms |
US10721084B2 (en) | 2017-09-25 | 2020-07-21 | Microsoft Technology Licensing, Llc | Providing a private mode in asynchronous collaboration for a synchronous collaboration environment |
US11012402B1 (en) * | 2017-11-20 | 2021-05-18 | CGS, Inc. | System and method for recipe sharing and management |
CN109408476A (zh) * | 2018-09-19 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 一种文件共享管理方法、设备及存储介质 |
US11409716B2 (en) * | 2019-01-30 | 2022-08-09 | Citrix Systems, Inc. | File conflict detection |
US11349848B2 (en) * | 2020-06-30 | 2022-05-31 | Microsoft Technology Licensing, Llc | Experience for sharing computer resources and modifying access control rules using mentions |
US20220012102A1 (en) * | 2020-07-07 | 2022-01-13 | Calgary Scientific Inc | Highly scalable, peer-based, real-time agent architecture |
CN113688110A (zh) * | 2020-08-06 | 2021-11-23 | 珠海金山办公软件有限公司 | 一种共享文件的管理方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787443A (zh) * | 2005-12-02 | 2006-06-14 | 无锡永中科技有限公司 | 一种实现文件协同处理的方法 |
CN101933013A (zh) * | 2006-01-25 | 2010-12-29 | 谷歌公司 | 多客户端搜索方法和系统 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255387A (en) | 1990-04-27 | 1993-10-19 | International Business Machines Corporation | Method and apparatus for concurrency control of shared data updates and queries |
WO2001077816A2 (en) | 2000-04-11 | 2001-10-18 | Gausa L.L.C. | System and method for real-time multi-directional file-based data streaming editor |
US7783665B1 (en) | 2002-03-27 | 2010-08-24 | Parallels Holdings, Ltd. | Effective file-sharing among virtual environments |
US20040015522A1 (en) | 2002-06-13 | 2004-01-22 | International Business Machines Corporation | Apparatus, system and method of providing a stackable private write file system |
US8447827B2 (en) * | 2005-09-15 | 2013-05-21 | Emc Corporation | Providing local access to managed content |
US7933871B2 (en) * | 2007-12-28 | 2011-04-26 | Microsoft Corporation | Discovering and updating templates |
US20100198871A1 (en) | 2009-02-03 | 2010-08-05 | Hewlett-Packard Development Company, L.P. | Intuitive file sharing with transparent security |
US20110055177A1 (en) * | 2009-08-26 | 2011-03-03 | International Business Machines Corporation | Collaborative content retrieval using calendar task lists |
US9367530B2 (en) * | 2011-01-21 | 2016-06-14 | Jive Software | Distributed document co-authoring and processing |
WO2013009337A2 (en) * | 2011-07-08 | 2013-01-17 | Arnold Goldberg | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US8849759B2 (en) | 2012-01-13 | 2014-09-30 | Nexenta Systems, Inc. | Unified local storage supporting file and cloud object access |
US20130226876A1 (en) | 2012-02-29 | 2013-08-29 | Construcs, Inc. | Synchronizing local clients with a cloud-based data storage system |
US8922579B2 (en) | 2012-03-05 | 2014-12-30 | Microsoft Corporation | Deterministic visual indication of user data context |
US9307006B2 (en) | 2012-04-11 | 2016-04-05 | Salesforce.Com, Inc. | System and method for synchronizing data objects in a cloud based social networking environment |
US20130282830A1 (en) | 2012-04-23 | 2013-10-24 | Google, Inc. | Sharing and synchronizing electronically stored files |
CN102799664B (zh) | 2012-07-13 | 2015-05-13 | 成都东方盛行电子有限责任公司 | 泛编辑平台云盘服务器文件管理方法 |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US8819138B2 (en) | 2012-10-29 | 2014-08-26 | Dropbox, Inc. | Identifying content items for inclusion in a shared collection |
US8856256B1 (en) | 2013-03-13 | 2014-10-07 | CoralTree Inc. | System and method for file sharing and updating |
US9189533B2 (en) * | 2013-05-29 | 2015-11-17 | Microsoft Technology Licensing, Llc | Sync framework extensibility |
US9998555B2 (en) | 2014-04-08 | 2018-06-12 | Dropbox, Inc. | Displaying presence in an application accessing shared and synchronized content |
US10409781B2 (en) * | 2015-04-29 | 2019-09-10 | Box, Inc. | Multi-regime caching in a virtual file system for cloud-based shared content |
US10146915B2 (en) * | 2015-09-14 | 2018-12-04 | Salesforce.Com, Inc. | Publication of collaborative file to library |
-
2015
- 2015-11-19 US US14/946,579 patent/US11128717B2/en active Active
-
2016
- 2016-11-14 WO PCT/US2016/061805 patent/WO2017087310A1/en active Application Filing
- 2016-11-14 EP EP16801364.7A patent/EP3378021A1/en not_active Ceased
- 2016-11-14 CN CN201680067698.6A patent/CN108352004B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787443A (zh) * | 2005-12-02 | 2006-06-14 | 无锡永中科技有限公司 | 一种实现文件协同处理的方法 |
CN101933013A (zh) * | 2006-01-25 | 2010-12-29 | 谷歌公司 | 多客户端搜索方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3378021A1 (en) | 2018-09-26 |
CN108352004A (zh) | 2018-07-31 |
WO2017087310A1 (en) | 2017-05-26 |
US11128717B2 (en) | 2021-09-21 |
US20170149906A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108352004B (zh) | 对共享文件的私人编辑 | |
CN105793840B (zh) | 在撰写电子邮件的同时文件预览和许可 | |
US11165727B2 (en) | Automatic uploading of attachments to group cloud storage at send time | |
US10528653B2 (en) | Collaborative communication in a web application | |
US10466882B2 (en) | Collaborative co-authoring via an electronic user interface | |
KR102329149B1 (ko) | 캘린더를 네비게이트하는 동안 생활 사건들의 디스플레이 | |
JP6438969B2 (ja) | 没入型ドキュメントビュー | |
US20170185574A1 (en) | Document history interface | |
US20160342665A1 (en) | Interactive command line for content creation | |
US20160140139A1 (en) | Local representation of shared files in disparate locations | |
US10102183B2 (en) | System for transferring annotations between documents displayed side by side | |
EP2439692A1 (en) | Platform enabling web-based interpersonal communication within shared digital media | |
US20140351716A1 (en) | Notes Page Sharing and Notification Features | |
CN109313589B (zh) | 实现与外部功能的交互 | |
US20230385534A1 (en) | Electronic document management system with a content status designation interface | |
US10963635B2 (en) | Extensibility of compound data objects | |
US20190079949A1 (en) | Synchronizing virtualized file systems | |
US10678809B2 (en) | Synchronizing non-file content stored on a collaborative workspace environment | |
TW201539218A (zh) | 與外部內容項目之間的編碼的關聯性 | |
US20180121406A1 (en) | Embedded service provider display for a collaborative workspace environment | |
US20180227255A1 (en) | Method and system for distributing digital content | |
US20180007133A1 (en) | Server-to-server content distribution |
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 |