CN102981843B - 绘图工具中的共同创作 - Google Patents

绘图工具中的共同创作 Download PDF

Info

Publication number
CN102981843B
CN102981843B CN201210448739.XA CN201210448739A CN102981843B CN 102981843 B CN102981843 B CN 102981843B CN 201210448739 A CN201210448739 A CN 201210448739A CN 102981843 B CN102981843 B CN 102981843B
Authority
CN
China
Prior art keywords
user
server
shape
copy
instruction
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
Application number
CN201210448739.XA
Other languages
English (en)
Other versions
CN102981843A (zh
Inventor
L·T·海特非尔德
A·G·卡尔森
L·Y·Y·翁
M·J·史密斯
B·T·希尔
R·J·斯塔瓦德森
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 CN102981843A publication Critical patent/CN102981843A/zh
Application granted granted Critical
Publication of CN102981843B publication Critical patent/CN102981843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Abstract

本发明公开了绘图工具中的共同创作。描述了用于在绘图工具中进行共同创作的方法和系统。一种计算机实现的方法包括与绘图上的第一形状相关联地显示第一用户的第一用户名,并且接收第二用户正在共同创作该绘图的指示。该方法包括接收第二用户已经修改绘图上的第二形状的指示。该方法还包括响应于第二用户已经修改第二形状的指示,与绘图上的第二形状相关联地显示第二用户的第二用户名。这些方法和系统还可包括在某些情况下在共同创作者之间对元数据进行周期性共享以指示其他共同创作者做出的编辑。

Description

绘图工具中的共同创作
技术领域
本发明涉及绘图工具中的共同创作。
背景技术
通常在其中多个用户能够访问服务器上的共同文件集的协作环境中,多个用户经常希望如果可能的话同时编辑同一文档。在这些情况下,会发生许多问题,这是因为可能在各个用户的编辑之间出现的潜在冲突。例如,如果第一用户和第二用户同时编辑一单词或移动绘图对象,则难以确定应将哪一个用户的改变应用于文档。由此,在许多情况下,对文档的“编辑”访问被限于一次一个用户,以避免这样的编辑冲突的可能性。从用户的观点来看,这是不方便的,因为一次只有一个用户能够编辑文档,而所有其他用户要么被完全锁在文档之外,要么只被主存该文档的服务器或应用软件给予对该文档的“只读”访问。
为了克服由于对文档的受限编辑访问而产生的低效率,一些软件系统允许两个用户对同一文件进行编辑访问,但由于冲突编辑发生的高概率,仍然提供某种水平的编辑锁定。例如,在某些情况下,可以对文档进行分段以允许用户编辑(并锁定其他用户以防止他们编辑)该文档的一个特定分段,同时不同的用户将被允许编辑(并锁定其他用户以防止他们编辑)该文档的不同分段。分段锁定方案的这一示例可以在来自华盛顿州雷蒙德市的微软公司的MicrosoftWord创作软件中看到,其中各分段能够在逐段的基础上定义。在该软件应用中,在进行编辑时不将这些编辑发布给其他用户,并且这些编辑涉及锁定文档的至少该分段(例如,幻灯片或段落)以防止其他用户同时编辑该同一分段,从而导致冲突。
在某些情况下,已经尝试各种解决方案,其中任何用户都能够编辑文档的任何部分,并且在主机服务器上基于“最后编辑获胜”基础来解决任何冲突。然而,特别是在到服务器的连接或特定时间戳是不可靠的情况下,可能难以确切地确定每一个编辑何时被应用于文档以解决将要应用对文档中的相同对象的哪一个编辑(例如,在其中最近改变优先于早先的改变的安排中)。此外,甚至在这些情况下,那些用户也可能难以避免冲突,即使他们小心地避免争相进行编辑。这是因为一个用户的软件难以用其他远程用户可选择不编辑文档的相同部分的足够通知来将正在编辑的用户正在应用的改变告知那些其他用户。
在诸如来自华盛顿州雷蒙德市的微软公司的设计和绘图工具之类的绘图工具的情况下,这些冲突问题依旧存在。然而,因为该软件中的每一个绘图元素具有相对较大数量的独立属性,所以可能的情况是两个用户可能希望编辑相同的绘图对象的不同且不相关的属性;在这种情况下,不会发生冲突。这只会恶化上述低效率,因为存在被阻止以避免冲突可能性的并发协作编辑或“共同创作”的更大机率。
发明内容
根据以下公开,上述和其他问题通过以下各方面来解决:
在一方面,一种计算机实现的方法包括与绘图上的第一形状相关联地显示第一用户的第一用户名,并且接收第二用户正在共同创作该绘图的指示。该方法包括接收第二用户已经修改绘图上的第二形状的指示,并且响应于第二用户已经修改第二形状的指示,与绘图上的第二形状相关联地显示第二用户的第二用户名。
在第二方面,一种可在服务器计算系统上执行的方法包括从第一客户机用户接收访问服务器处的绘图的第一请求,以及从第二客户机用户接收访问该服务器处的绘图的第二请求。该方法还包括将第一和第二客户机用户注册为同时编辑绘图。该方法还包括从第一客户机用户接收第一客户机用户应用于绘图中的对象的编辑的指示,并将该指示传送至第二客户机用户以便显示在第二客户机用户处,该指示定义被应用了编辑的对象,而不定义被应用于对象的编辑。
在第三方面,能够提供协作绘图环境的计算系统包括一种绘图工具,该绘图工具可以在该计算系统上执行并被配置成允许第一用户修改绘图。该绘图包括操作副本、基础副本和下载副本。该绘图工具被配置成与绘图上的第一形状相关联地显示第一用户的第一用户名,并且接收第二用户正就该绘图进行协作的指示。该绘图工具还被配置成接收第二用户已经修改绘图上的第二形状的指示,而不接收对第二形状的修改,并且响应于第二用户已经修改第二形状的指示,与绘图上的第二形状相关联地显示第二用户的第二用户名。该绘图工具被配置成基于接收自服务器的修改来周期性地更新绘图的下载副本,该修改包括第二用户做出的修改。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。
附图说明
图1示出了其中可进行绘图工具中的共同创作的示例联网安排。
图2示出了根据示例实施例的用于管理绘图工具中的共同创作的示例系统。
图3是示出根据示例实施例的用于在接收到保存对绘图的改变的用户请求时解决共同创作的绘图中的冲突的过程的流程图。
图4示出了由两个不同用户执行的对绘图的并发修改的示例。
图5示出了由两个不同用户执行的对绘图的并发修改的第二示例,其中在这些修改之间可能发生冲突。
图6是示出根据示例实施例的用于将正在共同创作的用户应用的对绘图的修改通知给正在共同创作的用户的过程的流程图。
图7是示出根据示例实施例的用于管理关于共同创作者应用的对绘图的修改的用户通知的过程的流程图。
图8是示出根据示例实施例的应用于第一和第二客户机计算系统和服务器计算系统处的绘图文件和相关元数据的更新的示意图。
图9是示出根据示例实施例的呈现给支持共同创作的绘图工具的用户的通知的示例用户界面。
图10示出了根据示例实施例的呈现给绘图工具的共同创作用户的示例绘图对象和通知特征。
图11示出了图10所示的示例绘图对象和通知特征的旋转版本。
图12示出了根据示例实施例的呈现给绘图工具的共同创作用户的不规则形状的绘图对象和相关通知特征。
图13-15示出了根据示例实施例的与两个绘图对象之间的连接符相关联的通知特征。
图16示出了图13-15的通知特征相对于各个方向上的连接符的示例定位。
图17示出了根据示例实施例的通知特征相对于相邻绘图对象的示例层次分层。
图18示出了根据示例实施例的与由绘图工具定义的一组绘图对象相关联的通知特征。
图19-20示出了根据示例实施例的通知特征对于一组用户定义的绘图对象的示例定位。
图21-22示出了根据示例实施例的与绘图对象相关联的示出已经修改该对象的用户的详细通知特征。
图23示出了根据可能的实施例的用户界面中包括绘图工具中的共同创作用户的列表的部分。
图24示出了绘图工具中的用户界面中的提供关于图23所示列表中所包括的共同创作者的联系人信息的部分。
图25示出了根据示例实施例的出现在绘图工具中的通知,该通知告知第一用户共同创作用户正在访问绘图。
图26示出了根据示例实施例的出现在绘图工具中的通知,该通知告知第一用户共同创作用户结束对绘图的访问。
图27示出了在绘图工具的用户界面中可用的通知,该通知指示共同创作者提交给绘图的改变可供集成到该绘图的本地副本中。
图28示出了根据可能的实施例的呈现在绘图工具的用户界面中的进度条,该进度条指示正在绘图中解决本地改变。
图29示出了根据示例实施例的呈现在绘图工具的用户界面中的进度条,该进度条指示在绘图的本地副本中提交的改变正被传递至服务器。
图30示出了根据示例实施例的当在客户机计算系统处同步时呈现给绘图工具的用户的共同创作者做出的对绘图的修改的通知窗口。
图31是可用来实施本发明的各实施例的计算设备的简化框图。
图32A和32B是可用来实施本发明的各实施例的移动计算设备的简化框图。
图33是可在其中实施本发明的各实施例的分布式计算系统的简化框图。
具体实施方式
本发明的各实施例将参考附图来详细描述,其中相同的附图标记表示这些附图中的相同部分和部件。对各实施例的引用不限制本公开的范围,该范围只由所附权利要求书的范围来限制。另外,本说明书中阐述的任何示例都不旨在是限制性的,而是仅仅阐述许多可能的实施例中的某一些。
本文描述的本发明的各实施例的逻辑操作被实现为:(1)在计算机中的可编程电路上运行的一系列计算机实现的步骤、操作或过程和/或(2)在目录系统、数据库或编译器中的可编程电路上运行的一系列计算机实现的步骤、操作或过程。
本发明的各实施例涉及被配置成提供对绘图工具中的绘图的并发共同创作的方法、系统和用户界面。一般而言,共同创作将允许绘图工具的用户使用服务器主存的文件和客户机同步过程的组合来在相同的绘图中同时操作。通过使用本文描述的特征,绘图工具中的共同创作用户将得到特定特征正由其他共同创作者编辑的通知,以使得每一个用户都能够选择避免(或不避免)编辑绘图中的相同绘图对象,从而提供了比先前的系统中所提供的更大的灵活性和协作功能,先前的系统在整个文档或分段的基础上被锁定于一次一个用户。本文描述的方法和系统向绘图的共同创作者提供关于可能的冲突的信息,但一般不阻止共同创作用户盖写彼此对绘图的修改。可以合并共同创作者做出的编辑,以使得能够解决任何这样的冲突。
现在参考图1,示出了其中可进行绘图工具中的共同创作的联网安排100的示例。在所示实施例中,联网安排100包括通过诸如因特网等网络106通信地连接到服务器设备104的多个客户机设备102a-c(被统称为或单独地称为客户机设备102)。客户机设备102一般各自包括绘图工具,诸如由华盛顿州雷蒙德市的微软公司提供的绘图和布局软件。服务器104可以是多种类型的计算系统中的任一种计算系统,并且在特定实施例中,该服务器包括诸如也可从微软公司获取的服务器软件之类的协作软件。
一般而言,本发明涉及两个不同客户机设备102的用户想要访问存储在服务器104上的特定绘图文档的情况。在所示实施例中,客户机设备102a和102c已经访问文档108,并将该文档108分别作为本地文档108'、108”存储在那些设备上。当那些相应客户机设备102a、102c的用户编辑从服务器104取得的文档时,绘图文档108'、108”出现差异。然而,如下文中结合图2-8讨论的,通过经由服务器104跨两个设备102a、102c(以及与共同创作用户相关联的其他设备)同步数据并且通过将其他用户做出的编辑通知给共同创作用户,可管理共同创作者的并发编辑。
在本文描述的一些实施例中,服务器104被配置成管理出于共同创作目的访问绘图文档108的客户机设备的用户的列表。例如,在上文解释的示例中,服务器104将包括设备102a、102c的用户的列表,但不会在列表中包括设备102b的用户。如下文结合图6-7进一步讨论的,与绘图文档相关联的用户的列表可用于在并发共同创作者之间共享绘图修改的通知。另外,访问绘图文档的用户的列表可包括各种联系人信息,由此共同创作用户可以用关于解决每一个用户应用的编辑之间的任何潜在冲突的方法的问题或关注来彼此联系。
一般而言,为了实现相对于本文描述的绘图对象的冲突解决和编辑系统,需要维护原始绘图,以及维护每一个共同创作用户的经编辑的绘图以确定何时及哪里发生这些冲突。如图2所示,示出了根据示例实施例的用于管理绘图工具中的共同创作的系统200。系统200一般包括服务器存储和同步区域202,该区域与本地文档高速缓存204对接,诸如在图1的客户机计算设备102中的任一个和服务器104之间示出的客户机-服务器安排中所提供的。
在所示实施例中,系统200包括其中可存储绘图的副本的服务器存储区域206。在这些实施例中,服务器存储区域206可以是诸如也可从微软公司获取的服务器软件之类的数据库或服务器操作流管理系统。客户机102可以从服务器存储区域206中取得绘图的下载副本208。下载副本208对应于服务器存储区域206中可用的最新副本。为了使客户机保持对在服务器存储区域202中维护的文档的当前状态的知识,从下载副本208中创建基础副本210,且该基础副本表示在进行客户机和服务器副本的最后一次成功合并之后进行的下载的副本(如下文进一步讨论的)。操作副本212也从下载副本208中创建,并且用于供用户进行本地编辑/修改。当用户编辑绘图的操作副本212时,该用户可能希望将他/她的改变上传回到服务器以便保存。该用户可选择绘图工具中的“保存”选项,该选项进而将创建绘图的上传副本214,该上传副本可被返回到服务器存储区域206。
尽管在只有一个用户访问来自服务器存储区域206的绘图时该过程通常是直接的,但当第二用户同时向服务器存储区域206请求绘图并且在创建下载副本208的时间和上传副本214被返回到服务器的时间之间改变服务器存储区域中的绘图的副本时,出现复杂性。为了解决这些冲突,执行用于解决共同创作的绘图中的冲突的过程。一个示例过程300结合图3示出。
现在参考图3,在所示实施例中,在客户机计算设备的本地用户选择保存在该用户正在操作的绘图(即,图2的操作副本212)中做出的编辑时,实例化过程300。一般而言,加阴影的过程步骤可以在绘图工具本身内进行,而未加阴影的过程步骤可以在绘图工具内或绘图工具外进行,例如在客户机计算设备的较大的应用框架或操作系统中进行。一般而言,并且如以下图9的示例用户界面所示,当存在等待同步的改变时,本地创作者将被提示保存和更新绘图文档的本地版本,并且将只在保存/更新完成后看见来自其他创作者的已更新改变。
在所示实施例中,客户机计算设备接收保存请求(步骤302),并且绘图工具创建绘图的上传副本214(步骤304)。绘图工具然后请求将上传副本214传送至服务器存储区域206(步骤306)。同步层尝试建立连接以允许将绘图传送到服务器(步骤308)。在步骤309,可做出判定以确定是否可能存在连接到服务器的错误。例如,客户机设备可能在创建下载副本208之后与服务器断开连接,以使得用户在完全与服务器断开连接时做出多个改变。如果未与服务器重新建立连接,则失败操作将传达保存改变并将其合并到绘图的服务器版本中失败(步骤310),并且可重试连接,返回到步骤308。如果到服务器存储区域206的连接是成功的,则将基础副本210的版本号与服务器存储区域206处的绘图副本的版本号进行比较,以确定服务器存储区域206处的副本的版本号是否已被改变,这指示服务器副本自从最初被下载以来是否发生过任何改变(步骤312)。如果未发生改变,则将上传副本214保存到服务器并覆盖(copyover)高速缓存的服务器副本(步骤314)。
如果发生过改变以使得基础副本210的版本号不匹配存储在服务器存储区域208处的文档副本的版本号,则必须执行合并过程以解决可能发生的任何冲突。因此,客户机设备将下载绘图文档的服务器副本的已更新版本(步骤316),并再次指示将上传副本214传送到服务器(步骤318)。客户机应用将新服务器副本(即,绘图文档的已更新下载副本208)与绘图文档的基础副本210进行比较以确定其他用户应用的改变,并且将上传副本214与基础副本210进行比较以确定本地用户做出的所有改变,并确定那些修改之间是否存在任何冲突(例如,对相同绘图对象的相同属性的修改或不同绘图对象的重叠布置,如图3所示)(步骤320)。如果在绘图工具中定位到冲突,则绘图工具将通过创建包括如已经解决的远程改变和本地改变的新合并的操作副本212来解决那些冲突(步骤322),此时该过程在步骤304处重新开始,创建上传副本214并重新尝试同步到服务器存储区域206。然后可向用户呈现绘图的已解决副本。
具体参考过程300的步骤322,意识到基于下载副本208、基础副本210和当前操作副本212创建的合并的操作副本212是基于对绘图文档执行的改变的日志来创建的。具体而言,合并过程基于绘图文档中的每一个绘图对象的状态来执行;形状如何到达该状态对于该合并过程而言是不重要的。如结合图9和29进一步讨论的,在合并过程期间不允许对绘图文档进行改变;另外,不管与服务器(例如,服务器104)处的文档相关的用户数量有多少,客户机都将绘图文档的本地副本与服务器处的绘图文档的最近保存或更新的版本(如在下载副本208中反映的)合并。一般而言,合并的修改在“后进先出”的基础上管理,其中在对于相同或重叠的绘图对象发生冲突的情况下,在比较绘图文档的下载和操作副本时最后做出的改变将取得优先。可任选地,合并冲突可能需要用户干预(例如,在重叠绘图对象的情况下);在这些情况下,可能需要用户干预。
一般而言,并且如以下结合图10-30的用户界面特征讨论的,当远程文档改变时,例如当成功地将本地文档更新到服务器存储区域206时,可通知客户机计算系统的用户。另外,可使用图标来指示远程共同创作用户最近已经改变或当前正在编辑的区域,如结合图6-8更详细地讨论的。
大致参考图3所示的过程300,冲突解决(如果有的话)发生在客户机系统上,而不是服务器处。这减轻了多个客户机向服务器上传相同绘图并且服务器需要一次解决多组冲突的潜在问题。而是每一个客户机解决由于在该客户机设备上执行的编辑而造成的任何冲突。另外,可以看到在不同时用绘图文档的服务器副本中表示的改变来更新本地绘图文档的情况下,用户无法将他/她自己的改变保存到服务器;同样,在不同时通过选择将本地绘图文档保存回到服务器来共享他/她对绘图文档的改变的情况下,用户无法只查看来自其他用户的更新。
现在参考图4-5,示出了由两个不同的共同创作用户做出的对绘图的示例编辑。图4-5所示的示例突出显示由于允许多个用户同时编辑绘图文档而遇到的可能的问题以及用于解决这些冲突的可能的方法。
在图4中,描绘了原始绘图400,该绘图由第一用户和第二用户(例如,客户机设备102a、102c的用户)同时编辑。图4被分成各个象限,左上象限表示原始绘图400;右上象限表示包括被称为“创作者A”的第一用户做出的绘图改变的经修改的绘图402;左下象限表示包括被称为“创作者B”的第二用户做出的绘图改变的第二经修改的绘图404;以及右下象限包括表示对第一和第二用户的绘图改变的解决的所得绘图406。在该示例中,第一和第二用户两者都对原始绘图400做出了改变。在第一用户对绘图中的两个绘图对象“A”和“C”做出编辑(重新排列这两个元素)时,第二用户改变与第一用户修改的对象不同的一个对象“B”的位置。
在所示示例中,不管做出编辑的次序如何,因为第一和第二用户只编辑单独的对象,所以所得绘图406包括重新排序的绘图,其中“B”对象被向下移动,而“A”和“C”对象被移动成垂直方向。维护对象之间的每一个连接符(即,“A”连接到“B”,“B”又连接到“C”)。
现在参考图5,示出了稍微更复杂的示例,其中尽管两个用户未编辑相同的绘图对象,但他们编辑两个不同的绘图对象以使得这些对象完全重叠。在该示例中,原始绘图500包括垂直方向上的三个绘图对象。第一用户可编辑该绘图以将最上面的绘图对象移至相对于中间对象的水平位置,如绘图520所示。同时(或至少在重新同步第一用户对绘图的编辑之前),第二用户可编辑该绘图以便将最下面的绘图对象移至相对于中间对象的水平位置,如绘图540所示。
在该示例中,尽管用户未尝试编辑相同的绘图对象,但用户希望将其编辑的对象放置成彼此完全叠加是不太可能的。在本文讨论的一些实施例中,对该冲突的解决可采取各种形式;在一个示例中,来自原始绘图500的最上面和最下面的对象中的一个可以偏离它被移动到的位置,以允许所有对象可见。或者,第一和第二用户做出的编辑(绘图520、540所示)中的一个或两个可被拒绝。其他冲突解决方法也是可能的。
在某些情况下,可能需要用户交互来解决冲突。例如,这一冲突可能在一个创作者的改变完全消除第二共同创作者的工作时发生。这种情况的一常见情形可能是当第二用户继续对一形状做出改变时,第一用户删除该形状并保存/更新。为了避免被感知为数据丢失的改变,优选地给予其改变被丢失的创作者保存改变的机会。因此,根据本发明的特定实施例执行的合并过程提供了经修改的合并,其中将已删除项目标记成要删除而不是已删除,从而允许这些对象的编辑者确认期望该删除。
尽管在图5中示出了一种冲突的一个示例,但也可能发生其他冲突类型,特别是在更复杂的绘图和设计软件中。例如,第一和第二用户可选择修改相同绘图对象的大小、位置、颜色或其他属性,而不是使不同的绘图对象彼此叠加。在绘图和布局软件中,绘图对象通常是由一系列单元格形成的形状,每一个单元格都表示该形状的属性。特定绘图对象的示例属性包括:前景颜色、背景颜色、线条样式、填充样式、位置、对其他形状的引用、连接点、形状中的几何线条和其他特征。在本发明的上下文中,绘图对象之间的冲突解决可以在逐个属性的基础上执行,而不在逐个对象的基础上执行。因此,如果第一用户改变一形状上的文本,同时第二用户改变该相同形状的背景颜色;则对相同绘图对象的这些修改可以在没有冲突的情况下合并。然而,对相同形状或属性的不一致动作(例如,相同形状的两次移动或移动和调整大小操作)将导致非预期结果;在这些情况下,特定绘图对象的属性是不相关的,并且整个绘图对象出于该目的被视作一个整体。
在某些情况下,无法容易地合并绘图对象之间的冲突,而在其他情况下,可解决冲突。示例类型的冲突包括假冲突、改变冲突、灾难性冲突、删除冲突、不可合并冲突。假冲突涉及多个用户对单个绘图对象做出将在没有非预期行为的情况下合并的改变,例如第一用户改变形状的位置,而第二用户改变该相同形状的颜色。改变冲突涉及看上去表示冲突,但可以在“最后编辑获胜”的基础上解决的改变,诸如第一和第二用户移动同一对象。在被称为“灾难性”或删除冲突的另一种类型的冲突中,数据丢失将以不可接受且不可恢复的方式产生;由此,已被删除或冲突的元素可被保存在单独的文件中。也可存在其他类型的冲突。总而言之,因为难以确定对特定绘图对象的期望动作是否可能是冲突,所以这些决策不受绘图软件限制,而改由共同创作者本身通过在这些共同创作者之间传递共同创作信息来管理。
为了方便在共同创作者之间进行通信以使得冲突最少化,如结合图6-8更详细地示出的,示出了关于这些共同创作者之间的改变传递的细节。图6示出了例如由另一共同创作者来将发生在远程客户机上的改变通知给使用客户机计算系统的共同创作者的示例方法600。在方法600中,客户机计算系统接收第一用户已经修改第一绘图对象的指示(步骤602)。例如,这可对应于接收到该第一用户对绘图对象的本地修改。在这些情况下,客户机计算系统将一组元数据传送到服务器以供分发给当前被注册为正在编辑文档的其他共同创作用户(步骤604)。在所示实施例中,该元数据被称为“辅助元数据”,因为它表示关于自从进行上一次成功的合并以来发生在客户机计算系统上的改变的信息。如结合图7更详细地讨论的,服务器可接收该辅助元数据并将其重新分发至其他共同创作用户,因此在其他客户机设备处的绘图工具能够显示关于经编辑的绘图对象的通知。另一方面,主要元数据指的是在用户保存及合并来自其他用户(即,来自服务器)的改变的同时保存的元数据。因此,在任何给定时间,主要元数据都包括其他用户已经做出的、但已被结合到本地绘图文档中的所有改变。对主要和辅助元数据的其他描述在下文中结合图8来提供。
在所示实施例中,方法600继续显示与第一绘图对象相关联的第一用户名(步骤606)。该第一用户名可以是例如本地用户的用户名,并且可被包括在该用户已经编辑特定绘图对象的图形通知特征中。关于通知特征的细节在以下图9-22中更详细地提供。
在所示实施例中,客户机计算系统还可接收第二用户正与该客户机计算系统的用户就绘图文档进行协作的指示(步骤608)。该通知可采取许多形式。例如,该通知可作为一个整体与文档相关联,并且可以与在另一用户进入或退出绘图文档时被呈现给该客户机计算系统的用户的通知(例如,图25-26所示)配对。或者,该通知可以与诸如绘图对象等文档中的一部分相关联,或者可以简单地指示改变可供合并,而不是具体标识另一用户(例如,如图27的通知中所指示的)。其他类型的通知也是可能的。
在各实施例中,客户机计算系统能够以各种方式接收通知。在一具体实施例中,对于某些通知,客户机计算系统被配置成周期性地轮询服务器以确定是否发生对文档的已保存版本的任何改变。对于其他通知,这些通知可以被抢先从服务器发送到客户机计算系统。
在所示实施例中,方法600继续接收诸如远程共同创作者等第二用户已经修改与本地用户编辑的绘图对象不同的第二绘图对象的指示(步骤610)。在该实施例中,该指示可对应于在该远程共同创作者的客户机设备处生成并经由服务器(例如,服务器102)被路由至客户机计算设备的辅助元数据。根据本发明,在典型的实施例中,辅助元数据包括关于正由第二用户编辑的绘图对象以及这些编辑发生的时间的信息。然后可以与第二绘图对象(即,该第二用户编辑的绘图对象)相关联地显示第二用户的用户名(步骤612)。
现在参考图7,描述了示出用于管理关于共同创作者用户所应用的对绘图的修改的用户通知的方法700的流程图。方法700可以例如由诸如图1的服务器104等服务器来执行,该服务器管理对特定绘图对象的访问以及访问该特定绘图对象的用户的列表。
在所示实施例中,方法700包括从两个或更多用户接收访问请求,以使得至少两个用户同时访问绘图文档(即,共同创作者)(步骤702)。向服务器注册用户的每一个访问请求(步骤704),以使得服务器管理当前访问任何特定绘图文档的共同创作者的列表。
当不同客户机设备处的每一个共同创作者编辑或修改绘图文档中的对象时,将元数据传送回服务器(步骤706)。在所示实施例中,元数据指示被修改的对象以及进行修改的时间。如果服务器接收到这一元数据,则它例如通过将该元数据中继到那些其他已注册用户/客户机设备来通知其他用户(除了传送该元数据的客户机设备的用户之外)(步骤708)。如果未发生改变,则由此不进行通知。
另外,在一些实施例中,服务器管理计时器以监视自从接收到来自特定用户的上一次编辑以来流逝的时间。如果用户未在预定时间内编辑绘图文档或者如果用户已关闭该用户的客户机计算系统上的文档(步骤710),则可以从绘图文档的当前用户的列表中移除该用户(步骤712)。甚至可将此通知给除了被移除的该用户之外的其他共同创作用户,如步骤708所示。如果未流逝更新计时,则服务器可继续监视以便从一个或多个共同创作者用户接收关于对绘图对象的改变的元数据。
现在大致参考图6-7,可以看到,通过用元数据来更新共同创作者用户,第一用户对特定绘图对象的编辑的事实可被传递回到其他用户,而无需传递该编辑所伴随的内容的所有细节。这允许就应用的编辑向每一个共同创作用户快速更新,以使得共同创作用户能够在需要时选择避免编辑或修改正由该第一用户修改的相同对象。然而,通常在不为一个特定用户的专用编辑锁定绘图或绘图对象的情况下向每一个共同创作者用户呈现关于可能的覆盖编辑的信息,由此提高可使用绘图工具来输入编辑的灵活性。另外,且大致参考图6-7,尽管结合这些附图描述了特定操作次序,但可以理解,也可执行不同的操作次序。
图8是示出根据示例实施例的系统800的示意图,其中更新在第一和第二客户机计算系统和服务器计算系统处被应用于绘图文件和相关元数据。系统800一般表示用于绘图修改或用户选择保存他/她的编辑以使其可被传播至共同创作者的总数据流。
在所示实施例中,第一客户机设备802a和第二客户机设备802b通信地连接到服务器804。第一客户机设备802a和第二客户机设备802b各自具有从存储在服务器804处的副本导出的本地绘图文档806a-b。根据本发明,每一个本地绘图文档806a-b都分别在客户机设备802a-b处包括操作副本808a-b、基础副本810a-b和下载副本812a-b。操作副本808a-b、基础副本810a-b和下载副本812a-b在特定实施例中可以对应于图2的类似元素808-812。
另外,绘图文档806a-b中的每一个都与元数据814a-b相关联,元数据814a-b分别包括主要元数据816a-b和辅助元数据818a-b(或者,摘要中的或如存储在服务器804上的主要元数据816和辅助元数据818)。元数据814用于跟踪文档的客户机和服务器版本之间的改变,以便适当地合并修改和驱动用户界面(如图6-7所示)以便向本地共同创作者告知当前正由其他共同创作者编辑的文档对象以及已经在合并期间接收到的改变。主要元数据816指在用户(例如第一客户机设备802a的用户)将改变保存及合并到服务器804的同时保存的元数据,并且是已经做出并被提交至服务器的改变的列表。主要元数据816是在每次在客户机设备(例如,设备802a)处本地地接收到下载副本812a时下载的。辅助元数据818表示关于自从进行上一次成功的合并以来发生在本地计算系统上的改变的信息,并且包括用于跟踪已经做出的所有改变而没有内容改变本身的信息。主要元数据816和辅助元数据818之间的差异表示文档中的未合并改变。在本文描述的示例中,第一客户机设备802a通常被认为是在其处输入编辑的设备;然而;可以理解,根据本文讨论的原理,类似的过程可以同时在反方向上进行。
如图所示,编辑或保存操作820可由第一客户机设备802a的用户选择。如果选择保存操作,则与第一本地绘图文档806a相关联的主要元数据816a连同对文档808a的改变一起被传播至服务器804并被存储为元数据816,对文档808a的改变由在第一客户机设备802a处执行的合并操作指示(例如,如上文结合图3解释的)。如果第一客户机设备802a的用户选择编辑操作,则响应于对绘图文档806a的操作副本808a的任何编辑来生成辅助元数据。辅助元数据被传播至服务器804以便被传递至第二客户机设备804。在主要元数据816或辅助元数据818的情况下,元数据816作为一个整体被写到服务器804并通过时间戳来排序。
另外,如果选择保存操作,则辅助元数据被传送到服务器,并且合并操作导致绘图文档806a的下载副本812a和基础副本810a的修改,一旦辅助元数据中所反映的改变被提交至服务器804,辅助元数据此时本质上变为主要元数据的一部分。表示对绘图文档806的改变的辅助元数据可用于更新第二客户机设备802b处的文档822。
值得注意的是,元数据816与上文结合图2-3描述的合并过程分开维护;该元数据816改为用作基于其他共同创作用户提出的改变来确定向用户提供什么用户界面反馈的基础。尽管在各实施例中,可跟踪不同类型的元数据,但在一些实施例中,元数据可包括关于绘图中的绘图对象的信息,包括已删除、页ID、形状ID、创作者ID和时间戳(GTC)属性。其他属性也可使用元数据来跟踪。
图9是示出根据示例实施例的呈现给用户的支持共同创作的绘图工具的通知的示例用户界面900。在各实施例中,用户界面900可以被呈现给在客户机计算系统处的用户,并且示出了多个特征,包括在绘图工具中可用来方便共同创作的通知特征。在所示实施例中,用户界面包括绘图面板902和侧面板904,以及沿着用户界面的下边缘的工具栏906和沿着绘图面板902的侧面板904的上边缘的带状面板908。
在所示实施例中,绘图面板902显示如已知是由绘图工具显示的多个绘图对象910。另外,与一个或多个绘图对象910相关联的是通知特征912。通知特征912向绘图工具的用户显示关于其他共同创作者做出的改变的信息。如以下结合图10-22进一步讨论的,通知特征可包括例如指示绘图对象已被改变以及当前正在编辑绘图对象的用户的列表的信息。另外,通知特征912可包括文档的查看者或共同创作者输入的一个或多个评论。
在工具栏906中,多个附加指示符可供显示与其他共同创作者的绘图共享的状态。在所示实施例中,在场指示符914呈现与当前正在访问绘图文档的多个用户相关联的图标。在场指示符914还可任选地包括那些用户的姓名的列表(例如,在用户将鼠标悬停在图标上方的情况下)。另外,当姓名列表中发生改变时,也可显示将用户列表的改变通知给用户的一个或多个弹出气球916。弹出气球916的示例以下结合图25-26来提供。
另外,在工具栏906中,当更新在绘图文档的服务器版本中可用时,可显示更新指示符918。为了查看这些更新,提示用户键击更新指示符918以保存该用户做出的本地改变,启动合并过程,如以上结合图3-5讨论的。当用户启动合并过程时,也可以在工具栏906中呈现状态条920,以便向用户示出对绘图文档的更新和修改的合并的状态。另外,在带状面板908中,也可使用保存和更新图标920来启动上文讨论的合并过程。弹出窗口924示出传递给用户的指示保存和更新过程已完成的消息。
现在大致参考图10-22,示出了关于同绘图对象相关联的通知特征的附加细节。一般而言,这些附图中示出的通知特征是与特定绘图对象相关的,从而指示该绘图对象正在使用中或以其他方式由用户编辑。图10-22大致示出了具有相关联的通知特征1002的绘图对象。在每一个示例中,通知特征1002包括多个域,包括更新通知域1004、共同创作者通知域1006和评论通知域1008。通知域1004在保存更新后被显示,以指示自从上一次更新以来已经改变一对象。一旦用户编辑绘图对象,就在元数据更新期间向每一个其他共同创作者呈现通知域1004。对于所有远程创作者用户,通知域1004保持不动直到该远程创作者已经上传他/她自己的改变并将其与通知域1004中所反映的改变合并。
在各实施例中,更新通知域1004和共同创作者通知域1006例如基于轮询操作来被周期性地更新,其中客户机计算设备上的绘图工具查询服务器以确定任何改变在服务器上的存在。虽然更新通知域1004基于在服务器处从各共同创作者接收到的元数据,但共同创作者通知域1006基于文档的基础副本和下载副本之间的差别。共同创作者通知域因此基于远程创作者提交的最近改变来生成。一般而言,在共同创作者编辑绘图对象时,可以至少部分地基于对该改变的检测来生成更新通知域1004;在共同创作者保存他/她的改变时,更新通知域1004可以消失并且共同创作者通知域1006将替代它。这允许其他共同创作者继续查看谁正在编辑文档(经由更新通知域1004),但只看见共同创作者实际上已经提交以便保存的那些编辑(经由共同创作者通知域1006)。
图10-12还示出了通知特征1002相对于不同绘图对象的定位。在图10中,通知特征1002沿着绘图对象1000的右上角呈现。在表示绘图对象1000的旋转版本1100的图11中,通知特征1002也沿着右上角呈现。在图12中,绘图对象1200包括也在几何学上的右上位置的通知特征1002。
参考图13-16,示出了沿着两个对象之间的连接符的通知特征1002的示例位置。在图13中,通知特征1002沿着两个对象1302a-b之间的连接符1300的最长水平分段的中点呈现。在其中所示连接符1400是两个对象1402a-b之间的直线箭头的图14中,通知特征1002被呈现在连接符1400之下的中点处。在示出两个对象1502a-b之间的具有相关联的文本的连接符1500的图15中,通知特征1002被呈现在该连接符的中点处的文本的上方。图16示出了通知特征1002与连接符1600a-d相关联的示例布局;通知特征与每一个连接符相关联的位置基于相关联的连接符的方向和角度。
如图17所示,呈现在绘图面板中的通知特征1002通常将不与其他相邻形状对接,因为如该附图所示,活动形状1700将被带到前面,而与相邻对象1702相关联的通知特征1002被呈现在该活动形状1700之后。相反,当未选择通知特征与其重叠的形状时,通知特征被带到相邻对象的前面(例如,在该附图中的最左边的对象1704-1706示出的)。
在图18中,通知特征1002与组对象1800(被示为小房间)相关联地呈现。在该安排中,组对象先前已经通过绘图工具来组合;因此,对对象1800的子元素的任何改变都作为对总体对象的改变来传播,并且通知特征1002相应地更新。
相反,在图19-20中,通知特征1002与手动组合的一组对象1900相关联;在这样的安排中,通知特征被显示在该组的子对象上,而不是针对总体组。然而,如图20所示,当选择组2000时,通知特征的布置遵循如图17所示的“带到前面”和“发到后面”特征。
参考图21-22,示出了关于由通知特征1002呈现的信息的附加细节。如图21-22所示,通过悬停在更新通知域1004或共同创作者通知域1006的上方,分别示出了已经编辑或正在编辑绘图对象2100、2200的用户的列表1010。
现在参考图23-26,示出了附加通知,这些附加通知示出当前正在编辑绘图文档的用户的列表的通知。图23示出了用户界面2300中的列出当前正在编辑文档的所有共同创作者的部分,而图24示出了呈现选自用户界面2300示出的列表的用户的联系人信息的另一用户界面2400。使用这些界面,查看正在编辑绘图文档的其他用户并与这些用户通信是可能的,例如以便在两个共同创作者编辑绘图文档时讨论对冲突的避免。图25-26示出了来自总绘图工具的更新,指示特定共同创作者用户何时向服务器注册为正在访问绘图文档。图25示出了与共同创作者用户首次访问文档(或在离线一段时间后回到在线)相关联的消息2500,而图26示出了与用户通过关闭文档或通过服务器管理的超时过程来离开文档相关联的消息2600。
现在参考图27-30,示出了用户界面中的各种通知,这些通知呈现与上文结合图3和8概述的合并过程相关的信息。图27示出了在绘图工具的用户界面中可用的通知2700的示例,该通知指示共同创作者提交给绘图的改变可供集成到该绘图的本地副本中。通知2700突出显示用户界面中的将触发如上文结合图3(例如,在步骤302)讨论的合并操作的“保存”选项。图28示出了呈现在绘图工具的用户界面中的进度条2800,该进度条指示例如在执行图3的合并过程期间正在绘图中解决本地改变。图29示出了呈现在绘图工具的用户界面中的进度条2900,该进度条指示在合并改变时(例如,在步骤314中)在绘图的本地副本中提交的改变正被传递至服务器。最后,图30示出了当在客户机计算系统处同步时呈现给绘图工具的用户的共同创作者做出的对绘图的修改的通知窗口3000。当成功完成如上文结合图3描述的合并操作时(例如,在步骤314后),可将通知窗口3000呈现给客户机设备的用户。
尽管图27-30中提供的通知向本地用户示出合并过程的一个示例图形描绘通信状态,但可以认识到也可使用对这些状态的各种其他图形描绘。
本文描述的实施例和功能可经由许多计算系统来操作,诸如上面参考图1所描述的服务器104和客户机设备102,包括有线和无线计算系统、移动计算系统(如移动电话、图形输入板或平板型计算机、膝上型计算机等)。此外,本文所述的实施例和功能可在分布式系统上操作(如基于云的计算系统),其中应用功能、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算系统的交互包括:键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测(如相机)功能)等。图31到33以及相关描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。然而,关于图31到33所示出和讨论的设备和系统是用于示例的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备配置的限制。
图31是示出可用来实施本发明的各实施例的计算设备3100的示例物理组件的框图。下面描述的计算设备组件可适用于上述计算设备,例如服务器104或客户机计算设备102。在基本配置中,计算设备3100可包括至少一个处理单元3102和系统存储器3104。取决于计算设备的配置和类型,系统存储器3104可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。系统存储器3104可包括操作系统3105和一个或多个编程模块3106,该编程模块306适合于运行应用,诸如应用和客户机应用(例如,用户代理/web浏览器或绘图工具)或服务器应用(例如,主机应用3120、web浏览器应用3122或其他服务应用)。操作系统3105例如可适合于控制计算设备3100的操作。此外,本发明的实施例可结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图31中由虚线3108内的那些组件示出。
计算设备3100可具有附加特征或功能。例如,计算设备3100还可包括附加数据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘、或磁带。这些附加存储在图31中由可移动存储3109和不可移动存储3110示出。
如上所述,可在系统存储器3104中存储包括操作系统3105在内的多个程序模块和数据文件。当在处理单元3102上执行时,编程模块3106可执行各个过程,包括例如,外部服务应用发现过程200的各阶段中的一个或多个。上述过程是一个示例,且处理单元3102可执行其他过程。根据本发明的实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。
一般而言,根据本发明的实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的实施例可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的实施例还可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实践。例如,可以通过片上系统(SOC)来实施本发明的各实施例,其中,可以将图31中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,服务器应用3120或客户机应用3122的功能可以通过在单个集成电路(芯片)上集成有计算设备3100的其它组件的应用专用逻辑来实现。本发明的实施例还可使用能够执行诸如例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的实施例可在通用计算机或任何其他电路或系统中实践。
例如,本发明的实施例可被实现为计算机过程(方法)、计算系统、或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是计算机系统可读并对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。
本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器3104、可移动存储3109和不可移动存储3110都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者可用于存储信息且可由计算设备3100访问的任何其他介质。任何这样的计算机存储介质都可以是设备3100的一部分。计算设备3100还可以具有输入设备3112,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备3114。上述设备是示例,并且可使用其他设备。
本文所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可描述具有以对该信号中的信息编码的方式设定或者改变的一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。计算设备3100可包括允许与其他计算设备3118通信的通信连接3116。合适的通信连接3116的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行或串行端口、以及适用于与适用的计算机可读介质一起使用的其他连接。
图32A和32B示出可用来实施本发明的各实施例的合适的移动计算环境,例如移动电话3200、智能电话、输入板个人计算机、膝上型计算机等。参考图32A,示出了用于实现各实施例的示例移动计算设备3200。在一基本配置中,移动计算设备3200是具有输入元件和输出元件两者的手持式计算机。输入元件可包括允许用户将信息输入到移动计算设备3200中的触摸屏显示器3205和输入按钮3210。移动计算设备3200还可结合允许进一步的用户输入的可选的侧面输入元件3215。可选的侧面输入元件3215可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备3200可结合更多或更少的输入元件。例如,在某些实施例中,显示器3205可以不是触摸屏。在又一替代实施例中,移动计算设备是便携式电话系统,如具有显示器3205和输入按钮3210的蜂窝电话。移动计算设备3200还可包括可选的小键盘3235。可任选小键盘3235可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。
移动计算设备3200结合输出元件,如可显示图形用户界面(GUI)的显示器3205。其他输出元件包括扬声器3225和LED光3220。另外,移动计算设备3200可包含振动模块(未示出),该振动模块使得移动计算设备3200振动以将事件通知给用户。在又一实施例中,移动计算设备3200可结合耳机插孔(未示出),用于提供另一手段来提供输出信号。
尽管此处组合移动计算设备3200来描述,但在替代实施例中,本发明还可组合任何数量的计算机系统来被使用,如在台式环境中、膝上型或笔记本计算机系统、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明的实施例也可在分布式计算环境中实践,其中任务由分布式计算环境中通过通信网络链接的远程处理设备来执行;程序可位于本机和远程存储器存储设备中。总而言之,具有多个环境传感器、向用户提供通知的多个输出元件和多个通知事件类型的任何计算机系统可结合本发明的实施例。
图32B是示出在一个实施例中使用的诸如图32A中所示的计算设备之类的移动计算设备的组件的框图。即,移动计算设备3200可结合系统3202以实现某些实施例。例如,系统3202可被用于实现可运行与台式或笔记本计算机的应用类似的一个或多个应用的“智能电话”,这些应用例如浏览器、电子邮件、日程安排、即时消息收发、以及媒体播放器应用。在某些实施例中,系统3202被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
一个或多个应用程序3266可被加载到存储器3262中并在操作系统3264上或与操作系统3264相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、PIM(个人信息管理)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。系统3202还包括存储器3262内的非易失性存储3268。非易失性存储3268可被用于存储在系统3202断电时不会丢失的持久信息。应用3266可使用信息并将信息存储在非易失性存储3268中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统3202上并被编程为与驻留在主机计算机上的对应同步应用进行交互,以保持存储在非易失性存储3268中的信息与存储在主机计算机上的对应信息相同步。如应被理解的,其他应用可被加载到存储器3262中且在设备3200上运行,包括此处描述的各种客户机和服务器应用。
系统3202具有可被实现为一个或多个电池的电源3270。电源3270还可包括外部电源,如补充电池或对电池重新充电的AC适配器或加电对接托架。
系统3202还可包括执行发射和接收无线电频率通信的功能的无线电3272。无线电3272通过通信运营商或服务供应商方便了系统3202与“外部世界”之间的无线连接。来往无线电3272的传输是在操作系统3264的控制下进行的。换言之,无线电3272接收的通信可通过操作系统3266传播到应用程序3264,反之亦然。
无线电3272允许系统3202例如通过网络与其他计算设备通信。无线电3272是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。术语“已调制数据信号”是指其一个或多个特征以在信号中对信息进行编码的方式来设置或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语“计算机可读介质”包括存储介质和通信介质两者。
系统3202的该实施例是以两种类型的通知输出设备来示出的:可被用于提供视觉通知的发光二极管(LED)3220,以及可被用于扬声器3225提供音频通知的音频接口3274。这些设备可直接耦合到电源3270,使得当被激活时,即使为了节省电池功率而可能关闭处理器3260和其它组件,它们也保留一段由通知机制指示的保持通电时间。LED3220可被编程为无限地保持通电,直到用户采取行动指示该设备的通电状态。音频接口3274用于向用户提供听觉信号并从用户接受听觉信号。例如,除被耦合到扬声器3225以外,音频接口3274还可被耦合到话筒以接收听觉输入,诸如便于电话对话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统3202可进一步包括允许板载相机3230的操作来记录静止图像、视频流等的视频接口3276。
移动计算设备实现系统3202可具有附加特征或功能。例如,设备还可包括附加数据存储设备(可移动的/或不可移动的),诸如磁盘、光盘或磁带。这些另外的存储在图32B中由存储3268示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。
设备3200生成或捕捉的且经系统3202存储的数据/信息可如上所述本地存储在设备3200上,或数据可被存储在可由设备通过无线电3272或通过设备3200和与设备3200相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经设备3200、经无线电3272或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以供存储和使用,这些手段包括电子邮件和协作数据/信息共享系统。
图33示出了用于向如上所述的一个或多个客户机设备提供主机应用3120的系统体系结构。与这些主机应用3120相关联地被开发、交互或编辑的内容可被存储在不同通信信道或其他存储类型中。例如,可使用目录服务3322、web门户3324、邮箱服务3326、即时消息收发存储3328以及社交联网站点3330来存储各种文档。主机应用3120可使用用于实现数据利用的这些类型的系统等中的任一种系统,如此处所描述的。服务器3320可向客户机提供主机应用3120。作为一个示例,服务器3320可以是通过web提供主机应用3120的web服务器。服务器3320可通过网络3315在web上向客户机提供主机应用3120。可访问主机不可知文档访问系统3100的客户机的示例包括计算设备3100,计算设备可包括任何通用个人计算机3302、平板计算设备3304和/或诸如智能电话的移动计算设备3306。这些设备中的任一个可从存储3316获得内容。
以上参考例如根据本发明的实施例的方法、系统和计算机程序产品的框图和/或操作示图描述了本发明的实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本同时执行,或者这些框有时可按相反的次序执行。
尽管已描述了本发明的特定实施例,但也可能存在其他实施例。此外,虽然本发明的实施例被描述为与存储在存储器和其他存储介质中的数据相关联,但是数据还可被存储在其他类型的计算机可读介质上或从其读取,诸如辅助存储设备(像硬盘、软盘、或CD-ROM)、来自因特网的载波、或其他形式的RAM或ROM。此外,所公开的方法的各阶段可以按任何方式进行修改,包括通过对阶段进行重新排序和/或插入或删除阶段,而不会背离本发明。
在各种实施例中,用于在构成本发明的计算设备之间进行通信的网络的类型包括但不限于互联网、内联网、广域网(WAN)、局域网(LAN)、以及虚拟专用网络(VPN)。在本申请中,网络包括企业网络和客户机计算设备用来访问企业网络的网络(即客户机网络)。在一个实施例中,客户机网络是企业网络的一部分。在另一实施例中,客户机网络是通过外部可用的接入点(如网关、远程访问协议、或公共或专用互联网地址)来访问企业网络的一分开的网络。
本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的发明范围。本申请中提供的实施例、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的最佳模式。所要求保护的发明不应被理解为限制于本申请中所提供的任何实施例、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的特征集的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在所要求保护的发明的更宽泛方面以及本申请中所具体化的一般发明概念的精神内的替代实施例并不背离该更宽泛的范围。

Claims (10)

1.一种计算机实现的方法,包括:
与绘图上的第一形状相关联地显示第一用户的第一用户名;
接收第二用户正就所述绘图进行协作的指示;
接收所述第二用户已经修改所述绘图上的第二形状的指示;以及
响应于所述第二用户已经修改所述第二形状的所述指示,与所述绘图上的所述第二形状相关联地显示所述第二用户的第二用户名,其中所述第一和第二用户都能够选择避免或不避免编辑所述绘图中的相同形状。
2.如权利要求1所述的计算机实现的方法,其特征在于,与所述第一形状相关联地显示所述第一用户的第一用户名是响应于所述第一用户应用于所述第一形状的编辑而进行的。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述绘图包括主要元数据和辅助元数据,并且其中所述辅助元数据包括所述第一用户已经修改所述第一形状的指示。
4.如权利要求3所述的计算机实现的方法,其特征在于,还包括将所述辅助元数据传送到服务器。
5.如权利要求1所述的计算机实现的方法,其特征在于,所述绘图包括所述绘图的操作副本、基础副本和下载副本。
6.如权利要求5所述的计算机实现的方法,其特征在于,还包括基于接收自服务器的修改来周期性地更新所述绘图的下载副本,接收自所述服务器的所述修改包括所述第二用户应用的修改。
7.如权利要求6所述的计算机实现的方法,其特征在于,还包括将所述第一用户和所述第二用户做出的修改合并到所述绘图中。
8.如权利要求6所述的计算机实现的方法,其特征在于,合并改变包括:
将基础文档与下载文档进行比较以确定除了所述第一用户之外的用户修改的一个或多个形状的第一列表;
将所述基础文档与操作文档进行比较以确定所述第一用户修改的一个或多个形状的第二列表;
基于所述第一列表和所述第二列表来创建上传文件;以及
将所述上传文件传送到服务器。
9.一种可在服务器计算系统上执行的方法,所述方法包括:
在服务器处从第一客户机用户接收访问绘图的第一请求;
在所述服务器处从第二客户机用户接收访问所述绘图的第二请求;
将所述第一和第二客户机用户注册为同时编辑所述绘图;
从所述第一客户机用户接收所述第一客户机用户应用于所述绘图中的对象的编辑的指示;
将所述指示传送到所述第二客户机用户以便显示在所述第二客户机用户处,所述指示定义对其应用所述编辑的对象,而不定义被应用于所述对象的编辑,其中所述第一和第二客户机用户都能够选择避免或不避免编辑所述绘图中的相同对象。
10.一种能够提供协作绘图环境的计算系统,所述计算系统包括:
可在所述计算系统的可编程电路上执行的绘图工具,所述绘图工具被配置成允许第一用户修改绘图,所述绘图包括操作副本、基础副本和下载副本,所述绘图工具被配置成:
与绘图上的第一形状相关联地显示第一用户的第一用户名;
接收第二用户正就所述绘图进行协作的指示;
接收所述第二用户已经修改所述绘图上的第二形状的指示,而不接收对所述第二形状的修改;
响应于所述第二用户已经修改所述第二形状的所述指示,与所述绘图上的第二形状相关联地显示所述第二用户的第二用户名,其中所述第一和第二用户都能够选择避免或不避免编辑所述绘图中的相同形状;以及
基于接收自服务器的修改来周期性地更新所述绘图的下载副本,所述修改包括所述第二用户做出的修改。
CN201210448739.XA 2011-11-11 2012-11-09 绘图工具中的共同创作 Active CN102981843B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/294,943 2011-11-11
US13/294,943 US20130124956A1 (en) 2011-11-11 2011-11-11 Coauthoring in a Drawing Tool

Publications (2)

Publication Number Publication Date
CN102981843A CN102981843A (zh) 2013-03-20
CN102981843B true CN102981843B (zh) 2016-06-15

Family

ID=47855908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210448739.XA Active CN102981843B (zh) 2011-11-11 2012-11-09 绘图工具中的共同创作

Country Status (2)

Country Link
US (1) US20130124956A1 (zh)
CN (1) CN102981843B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US11210610B2 (en) 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US10482638B2 (en) 2011-11-11 2019-11-19 Microsoft Technology Licensing, Llc Collaborative commenting in a drawing tool
US11232481B2 (en) * 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US20130283147A1 (en) * 2012-04-19 2013-10-24 Sharon Wong Web-based collaborative document review system
CN103425385A (zh) * 2012-05-23 2013-12-04 鸿富锦精密工业(深圳)有限公司 交互绘图系统及方法
US20140082473A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies Of Event Content Based Document Editing, Generating Of Respective Events Comprising Event Content, Then Defining A Selected Set Of Events, And Generating Of A Display Presentation Responsive To Processing Said Selected Set Of Events, For One To Multiple Users
US20140082472A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies For Event Processing Of Events For Edits Made Relative To A Presentation, Selecting A Selected Set Of Events; And Generating A Modified Presentation Of The Events In The Selected Set
US9785307B1 (en) * 2012-09-27 2017-10-10 Open Text Corporation Reorder and selection persistence of displayed objects
CN104123126B (zh) * 2013-04-26 2018-04-10 阿里巴巴集团控股有限公司 一种用于生成合并冲突记录列表的方法和装置
US9817804B2 (en) * 2013-09-12 2017-11-14 Wix.Com Ltd. System for comparison and merging of versions in edited websites and interactive applications
US10152470B2 (en) * 2014-10-10 2018-12-11 Apple Inc. Updating formulas in response to table transposition
IN2015MU00904A (zh) * 2015-03-19 2015-04-10 Zycus Infotech Pvt Ltd
US10198411B2 (en) * 2015-05-01 2019-02-05 Microsoft Technology Licensing, Llc Storing additional document information through change tracking
US10740297B2 (en) 2015-12-17 2020-08-11 Box, Inc. Adaptive tool selection for conflict resolution in a multi-session collaboration setting
US11036712B2 (en) * 2016-01-12 2021-06-15 Microsoft Technology Licensing, Llc. Latency-reduced document change discovery
US10789423B2 (en) * 2016-12-19 2020-09-29 Sap Se Controlling a collaborative data preparation process
US10303420B2 (en) * 2017-05-02 2019-05-28 Microsoft Technology Licensing, Llc Proactive staged distribution of document activity indicators
CN110505256B (zh) * 2018-05-16 2021-09-07 腾讯科技(深圳)有限公司 协作任务状态处理方法、装置、存储介质和计算机设备
CN110163555A (zh) * 2019-04-11 2019-08-23 厦门亿力吉奥信息科技有限公司 协同制图管理方法、存储介质
US10929814B2 (en) * 2019-05-02 2021-02-23 Microsoft Technology Licensing, Llc In-context display of out-of-context contact activity
WO2023285019A1 (en) * 2021-07-15 2023-01-19 Myscript Resolving conflicts during synchronization of document objects
US11921695B2 (en) * 2021-10-05 2024-03-05 Dell Products L.P. Techniques for recording metadata changes
US20230376680A1 (en) * 2022-05-17 2023-11-23 Klaviyo Inc. Method and system for template reconciliation
US20240070333A1 (en) * 2022-08-30 2024-02-29 Hexagon Technology Center Gmbh Virtual environment for large-scale capital projects
CN115661292A (zh) * 2022-10-24 2023-01-31 武汉兆格信息技术有限公司 标绘方法、装置、电子设备、存储介质及计算机程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577279A (zh) * 2003-06-27 2005-02-09 微软公司 从共享文档的上下文中观看和管理协作数据的方法和设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023559A2 (en) * 2001-09-07 2003-03-20 Purdue Research Foundation Systems and methods for collaborative shape design
US6711718B2 (en) * 2001-12-10 2004-03-23 Charles Pfeil Parallel electronic design automation: distributed simultaneous editing
US20030154243A1 (en) * 2002-02-14 2003-08-14 Crockett Douglas M. Method and an apparatus for registering a user in a group communication network
US7389309B2 (en) * 2003-02-28 2008-06-17 Microsoft Corporation Method for managing file replication in applications
US7792788B2 (en) * 2005-03-04 2010-09-07 Microsoft Corporation Method and system for resolving conflicts operations in a collaborative editing environment
US8407670B2 (en) * 2006-06-02 2013-03-26 Microsoft Corporation Collaborative code conflict detection, notification and resolution
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8352870B2 (en) * 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8417666B2 (en) * 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
US10127524B2 (en) * 2009-05-26 2018-11-13 Microsoft Technology Licensing, Llc Shared collaboration canvas
US8749588B2 (en) * 2009-09-15 2014-06-10 HNTB Holdings, Ltd. Positioning labels in an engineering drawing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577279A (zh) * 2003-06-27 2005-02-09 微软公司 从共享文档的上下文中观看和管理协作数据的方法和设备

Also Published As

Publication number Publication date
US20130124956A1 (en) 2013-05-16
CN102981843A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN102981843B (zh) 绘图工具中的共同创作
CN101855629B (zh) 协作创作
CN101896915B (zh) 协作创作模式
US11611595B2 (en) Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
CN103065346A (zh) 制图工具中的协作式评论
US8875011B2 (en) Systems and methodologies providing for collaboration among a plurality of users at a plurality of computing appliances
TWI598750B (zh) 利用特徵的多重編輯器或多數版本之合作之方法及用於紀錄相關指令的電腦可讀儲存媒介
CN104094251B (zh) Web应用中的协作通信
US8806352B2 (en) System for collaboration of a specific image and utilizing selected annotations while viewing and relative to providing a display presentation
KR102239587B1 (ko) 프리젠테이션 슬라이드를 구조화하기 위한 자동화된 시스템
US20160140139A1 (en) Local representation of shared files in disparate locations
US20160048486A1 (en) Multi-user stream collaborative document editing tool
US20130254336A1 (en) System and method for abstraction of objects for cross virtual universe deployment
US20120284646A1 (en) Systems And Methodologies Providing Collaboration And Display Among A Plurality Of Users
CN102929642B (zh) 格式对象任务窗格的方法和系统
CN105144153A (zh) 用于内容组织的应用编程接口
CN105190604A (zh) 在协作创作环境中跟踪改变
CN105051720A (zh) 提供内容可访问性而不管内容格式和类型的虚拟库
US11144275B1 (en) Method for sharing content and tools independently from devices, applications, users, and times
CN101821731B (zh) 通用模型编辑框架
US10721084B2 (en) Providing a private mode in asynchronous collaboration for a synchronous collaboration environment
US11048862B2 (en) Enhanced design collaboration using design-based feedback
TW201445422A (zh) 筆記頁面共享及通知特徵
CN107003879B (zh) 用于计算机应用软件中的同时协同撤消操作的方法和系统
US20230401172A1 (en) Visual file manager

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150723

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150723

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant