用于计算机应用软件中的同时协同撤销操作的方法和系统与流程

文档序号:11635174阅读:474来源:国知局
用于计算机应用软件中的同时协同撤销操作的方法和系统与流程



背景技术:

操作转换(ot)允许创建可将来自多个用户的更改同步到共享文档或系统状态的实时协同应用。许多计算机软件应用具有不遵循协同交互有用的一组转换属性的功能或特征,因此不能支持在操作转换算法中指定的撤销操作。



技术实现要素:

提供本发明内容以便以简化的形式来引入下面的具体实现方式部分中进一步描述的概念的选择。本发明内容不是要识别所要求保护的主题的关键特征或主要特征,也不是要用作确定所要求保护的主题的范围的辅助。

多用户实时协同软件应用可以在多个用户或多个设备之间同步数据。当前的方面描述了在协同软件应用中启用撤销操作的方法和系统,在协同软件应用中并非所有可能的动作都遵循操作转换属性。这里的某些方面在没有所谓的反转属性2的情况下进行操作。

在以下附图和描述中阐述了一个或多个方面的细节。通过阅读以下具体实现方式和对相关联的附图的阅览,其他特征和优点将是显而易见的。

附图说明

通过参考以下附图将会更好地理解本公开的进一步的特征、方面和优点,附图中元件并未按比例缩放,以便更清楚地示出细节,并且其中相同的附图标记在若干视图中指示相同的元件。

图1是示出了用于协同编辑的系统的框图。

图2是示出了用于协同编辑的操作环境的框图。

图3示出了应用多个操作的方面。

图4示出了转换期间收敛性的应用。

图5示出了根据本公开的方面的操作转换的实现。

图6示出了根据本公开的方面的更改操作上下文。

图7示出了根据本公开的方面的第一撤消情况。

图8示出了根据本公开的方面的撤销操作的推导。

图9是示出了根据本公开的方面的用于执行撤销操作的示例方法中包含的一般步骤的流程图。

图10是示出了根据本公开的方面的用于执行重做操作的示例方法中包含的一般步骤的流程图。

图11是示出了计算设备的物理组件的一个示例的框图。

图12a和图12b是移动计算设备的简化框图。

具体实现方式

以下的具体实现方式参照了附图。尽可能地,在附图和以下描述中使用相同的附图标记来指代相同或相似的元件。尽管可以描述本公开的各方面,但是修改、改动和其他实现是可能的。例如,可以对附图中所示的元件进行替换、添加或修改,并且可以通过对所公开的方法进行替换、重新排序或添加步骤来修改本文所描述的方法。因此,以下具体实现方式是非限制性的,并且相反,所附权利要求限定了适当的范围。示例可以采取硬件实现、或完全软件实现、或软件和硬件方面组合实现的形式。因此,以下具体实现方式不被认为是限制性的意义。

本公开的方面与一个或多个系统状态的表示相关联。系统状态可以由可以被执行以改变系统状态的动作(称为操作)的集合组成。转换的集合可以在这些操作中的遵循某些属性的集合上执行。方面可以进一步描述在协同环境中将这些操作和元数据从一个系统传送到另一个系统。方面可以采用用于维护系统状态的一致性的控制算法和用于处理撤消和重做操作的算法。可以采用存储器来记录应用于给定系统的操作的历史以及由撤销算法使用的元数据的量。状态表示可以是文档、网页、电路图或可以通过外部动作修改的任何其他系统。

在本公开的方面,算法可以作为通过网络连接到中央服务器的协同文档编辑软件的一部分运行。在那里,系统状态可以表示文档(例如,幻灯片放映演示),并且操作可以表示对文档的用户编辑。撤消和重做可以对应于内容编辑程序中的常规概念。虽然描述的方面可以在协同内容编辑程序的上下文中,但是应当认识到,这些方面通常应用于对其他形式和在其他领域中的文档和系统的操作。

在协同编辑环境中,“撤消”的概念可能不清楚。在一些情况下,撤销可以意味着撤消对文档执行的上一个操作。在其他情况下,撤消可以意味着撤消对文档特定部分所做的上一个操作。在其他情况下,撤销可以意味着撤消由除了请求撤消的用户之外的一个用户所完成的上一个操作。本公开的方面将撤消处理为撤销由请求撤消操作的用户所实现的上一个操作。如果由用户执行的上一个操作是总体上对文档所做的最近的操作,那么可以直观地想到应该怎么做来进行响应。该操作可以被反转,并且可以将反转操作应用于文档。例如,如果上一个用户操作是插入字母t,则撤消操作不是从文档历史中移除该插入,而是要具有删除字母t的第二操作。

如果其他服务器操作自上次用户(客户端)操作以来已经被干预,则可以出现另一个问题。其中,选择撤消不会导致立即反转该操作并应用它。需要确定转换,以便用户可以将其应用到当前文档状态,而不是当原始操作生成时的文档状态。

许多协同编辑应用维护撤消堆栈,所述撤消堆栈可以是可反转的被执行的操作的列表或要应用的反转操作的列表。在某些方面,可以以类似的方式维护重做堆栈。服务器可以维护包括服务器操作以及客户端操作的历史,以允许正确的转换。如果在两个客户端操作之间存在多个服务器操作,那么服务器操作可以被精简为表示一系列操作的单个操作和用于执行序列的转换的算法。

在一些方面,重做和撤销堆栈历史可以通过控制算法转换被创建,因为它们从文档中被读取并应用于文档。有时转换也可以导致无操作(no-op)。例如,可以在幻灯片中的位置3处插入字母,但是如果幻灯片已被删除,则该转换将导致no-op,并且如果在撤消操作期间发生这种情况,则必须对关于发生什么做出选择。根据一个方面,没有任何事情会发生,这是因为本来会发生的操作不再产生逻辑意义。在一些方面,可以进一步提供警告用户撤销操作不再产生逻辑意义的通知。在其他方面,可以继续执行撤消操作,直到发现不转换为no-op的撤消操作。这些方面可以确保在用户选择撤消操作时发生一些结果。一旦应用了操作,其可以被放在出站队列上以被发送到服务器。

图1是示出了根据本公开的方面的用于协同编辑的系统的框图。如图1所示,系统100包括可由第一用户u1操作的第一用户计算设备102以及服务器计算设备104。用户计算设备102和服务器计算设备104通过网络进行通信。用户计算设备102包括内容编辑器106。在图1所示的示例中,内容文件110a可以从服务器计算设备104被发送到第一用户计算设备102。

系统100还可以包括连接到服务器计算设备104的可由第二用户u2操作的第二用户计算设备108。第二用户计算设备108和服务器计算设备104通过网络进行通信。第二用户计算设备108包括内容编辑器110。在图1所示的示例中,内容文件110b可以从服务器计算设备104被发送到第二用户计算设备102。

应当理解,第一用户u1和第二用户u2都可以使用内容编辑器来编辑同一文档的单独的版本。在这种情况下,第一用户u1正在编辑文档版本110a,而第二用户u2正在编辑文档版本110b。文档版本110a和110b是同一文档的若干版本。当用户正在协同环境中编辑文档时,其中由两个用户做出的更改应被更新到该文档的主版本。

系统100表示用于与共享状态的协同交互的公共拓扑,以用于用户与诸如内容编辑器之类的客户端软件进行交互,其中利用其它客户端软件经由诸如服务器104的中央服务器向其他用户(可以是任何数量的其他用户)传播状态的改变,但许多其他方法(例如对等交互)是可能的。在一些方面,诸如内容编辑器106和110之类的内容编辑器是在用户计算设备上运行的可操作的以用于协同地编辑内容文件的应用。另外,在一些方面,内容编辑器与服务器计算设备104进行交互。在一些示例中,内容编辑者可以是浏览器应用,该浏览器应用是可操作的以基于由诸如服务器计算设备104之类的远程计算设备或另一计算设备所提供的内容来生成协同编辑。根据示例,扩展作为浏览器应用的插件或附加件(即,内容编辑器106)而被安装在用户计算设备上,或者被嵌入在浏览器应用中。

在一个示例中,内容编辑器是协同文档编辑器,例如来自华盛顿州雷德蒙德的微软公司的word文档编辑器或者诸如也来自微软公司的电子表格编辑器的电子表格编辑器。类似的非限制性示例内容编辑器可以包括来自华盛顿州雷德蒙德的微软公司的演示图形程序。

图2是用于将更改从一个文档传播到另一个文档的系统200的一个示例的详细框图。系统200可以包含与许多客户端(例如,移动客户端210、第一客户端215和第二客户端220)通信的服务器205。服务器205可以维护基本文档,例如,示例基础powerpoint文件225。基础powerpoint文件225可以是移动客户端210、第一客户端215和第二客户端220中的每一个正在服务器205上进行协同并向服务器205提供编辑的文件。服务器205维护操作历史230。操作历史230可以包括向基础powerpoint文件225和服务器205发送的每个操作更改的记录。服务器205还可以维护用于基础powerpoint文件225的注释235的列表。在示例操作中,在系统200中,移动客户端210可以向基础powerpoint文件225提供文本编辑。客户端220可以向基础powerpoint文件225提供不透明的操作更改。客户端215可以向基础powerpoint文件225提供包括不透明操作和图像更改的更改。

用户计算设备102、服务器计算设备104、服务器205、移动客户端210、第一客户端215和第二客户端220是多个计算系统的示意性示出,多个计算系统包括但不限于桌上型计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板计算机或片式计算机、笔记本计算机和膝上型计算机)、手持设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机和主机型计算机。

此外,本文描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和获取以及各种处理功能通过分布式计算网络(如因特网或内联网)彼此远程地操作。根据一个方面,各种类型的用户界面和信息经由板载计算设备显示器或经由与一个或多个计算设备相关联的远程显示单元来显示。例如,各种类型的用户界面和信息被显示在墙表面上并且与在其上投射有各种类型的用户界面和信息的墙表面进行交互。利用其来实践所述方面的与多个计算系统的交互包括:按键输入、触摸屏输入、语音或其他音频输入、姿势输入,其中相关联的计算设备配备有检测(例如,照相机)功能,其用于捕获和解释控制计算设备功能的用户姿势等等。

以下描述有助于描述与本公开的方面相关的操作转换的操作、状态、上下文和其他方面的方面。操作可以是将文档从一个状态转换到另一个状态的任何功能,例如“将形状从蓝色转换为红色”或“在特定位置插入文本‘猫’”。单个操作也可以是多个操作的组合,例如“将形状从蓝色转换为红色并在特定位置插入文本‘猫’”。在图3和图4中,大写字母可用于指示给定的文档状态,并且小写字母可用于指示操作,以及“+”可用于指示操作的应用。转到图3,示出了a+a+b=c,并且这意味着在状态“a”上应用操作“a”随后是操作“b”得到状态“c”。

给定的操作可以仅在应用于被称为操作的上下文的特定状态时是有效的,例如,将形状从蓝色改变为红色仅在该形状为蓝色的状态下是有意义的。在上述示例中,“a”的上下文是“a”,“b”的上下文是“b”。在本公开的方面中,可以允许多个用户对同一文档执行操作并且使用操作转换来确保文档的状态在用户之间是一致的。共享同一上下文的两个操作可以经过彼此来转换。例如,如果操作“a”是“将形状从蓝色变为红色”,而操作“b”是“删除蓝色形状”,经过“a”转换“b”,写为τ(b,a)或b',导致“删除红色形状”并经过b转换a,写为τ(a,b)或a',导致空操作或无操作,因为形状不再存在。

这种类型的转换被称为包含转换(it)。它产生新版本的操作“a”,其上下文包括“b”的效果。如图4所示,转换确保a+a+τ(b,a)≡a+b+τ(a,b),其中≡是指等效的文档状态。这被称为收敛性属性。

图5示出了根据本公开的方面的操作转换(ot)的实现。基础文档(版本1)可以包含文本短语“foo”。用户a和用户b都可以协同编辑该基础文档。用户a可以尝试在基础文档的索引位置3处插入文本“bar”。类似地,用户b可以尝试在索引位置3处插入文本“quux”。用户a的编辑可以产生包含文本“foobar”的文档版本2。用户b的编辑可以产生包含文本“fooquux”的文档版本3。因此,ot系统需要对操作采用包含转换以创建正确包含两个文本编辑的文档版本4。文档版本4应包含“foobarquux”的最终文本结果。在一些方面,结果也可以是“fooquuxbar”、“foo”或简单的空字符串。这些结果中的每一个仍然可以满足一致性属性。转换的起草者可以确定哪种结果是期望的。

应用的包含转换(it)表明为α'=it(α,β)。这是利用第二个用户动作β对第一用户动作α进行的包含转换。换句话说,α'是如下的操作,其与对已经应用β的文档应用α具有相同效果。这遵循一致性属性,其表明为:如果α'=it(α,β)并且β'=iτ(β,α),则α+β'=β+α')。

图6示出了根据本公开的方面的更改操作上下文。每个更改操作可以隐含地与应用该更改操作的文档状态相关联。it可以产生具有相同效果的新操作,但是新操作可以与不同的文档状态相关联。换句话说,β'2=β'1+α=ιτ(β1,α1),使得新上下文包括α的效果,并且使得it中的用户动作的上下文是相同的。其中这里的上标明确指示了上下文(应用该操作的文档状态)。从其他方程中省略文本上下文以便于符号化,并且文本上下文可以被推断。

具有上下文a的操作“a”的反转被定义为具有上下文a+a的操作使得这被称为反转属性1(ip1)。例如,“将形状从蓝色变成红色”的反转是“将形状从红色变成蓝色”。本公开的方面可以要求以下反转属性对于所有操作也都是适用的:本领域技术人员称为反转属性2(ip2)。这里,符号≡是指等效的操作效果。更改已删除的形状的颜色导致空操作的转换示例证实了ip2不能成立的情况。本公开的方面要求反转属性3(ip3)成立,使得

使用上述定义,可以解释在反转属性2(ip2)不成立的情况下,当前方面如何在多个用户之间实现撤销。撤销操作“a”可以被定义为应用将文档置于如下状态的操作:如果“a”从未被应用文档也将合理地处于该状态。首先,用户仅可以撤消他们所执行的操作,或用例如ai的下标指示的用户操作。第二,多用户情况可以通过将所有非自身操作视为来自单个用户的操作而将多用户情况简化为两用户情况,这称为用下标“s”例如as指示的服务器操作。由于操作可以级联到复合操作中,所以服务器操作可以被尽可能多地级联,使得任何两个连续的用户操作恰好由一个服务器操作(其可以是或可以不是空操作)分离。

当用户触发撤销时,可以生成撤消操作以应用于所有其他用户并且发送给所有其他用户,这是最近用户操作的撤销,所述最近用户操作既不是撤消操作也不是已经被撤销的做(do)操作。发送撤销操作时,其可以不被指示为撤消操作,并因此,在操作的历史中不必将撤消服务器操作与普通的服务器操作进行区分。然而,可以跟踪用户操作是撤消操作还是非撤消操作,非撤消操作有时被称为“做(do)”操作。每个撤消操作在历史上都可以有它撤销的对应的做操作。使用操作转换并且已知ip1和ip3,可以假设撤消操作将被正确地实现并且所有用户之间的状态将保持一致。

图7的左侧示出了最近的用户操作是没有中间服务器操作的做操作ai的撤消情况。这里,可以简单地应用反转操作注意,这经由ip1返回到原始状态。可替代地,在图7的右侧,其中最近的用户操作是做操作ai,并且存在中间操作bs(虽然在这里示出为单个服务器操作,但是它可以是仅由服务器操作组成的任何中间复合操作),可以应用反转操作经过服务器操作的转换,由于中间服务器操作,这可以创建新的状态。使用ip3,这可以被证明是等同于将bs应用于状态a。换句话说,d相当于将bs的效果应用于状态a。

在更一般的情况下,用户操作可以由服务器操作分离。此外,可以需要执行多个用户操作。操作只能撤消一次(尽管重做操作可以是单独的操作),因此,为了处理撤消,方面必须找到尚未被撤销的最近的操作,并且转换其反转经过任何中间操作。中间操作可以是服务器操作或者是做-撤销对(do-undopair)。换句话说,中间操作可以是已被撤销的操作及其对应的撤销操作。由于方面可以总是选择未被撤消的最近的操作作为下一步撤消的操作。做-撤销操作对总是整齐地嵌套,如括号,即不是有效的操作历史,因为在撤消更近的操作“b”之前,“a”将不具有撤消操作。因此,在任何做-撤销操作对之间仅可以存在服务器操作或者有序的做-撤销操作对。可以总是有一个最内层的做-撤销操作对,只由单个(可以是复合的,可以是空的)服务器操作分离。

因为ip2不一定成立,因此转换经过做-撤销操作对可以证明是有挑战性的。图8示出了从做-撤销对之间将服务器操作转换出去,使得它们可以被安全地与周围的服务器操作级联成复合操作。在做-撤销操作对之间没有中间服务器操作的情况下,操作对可以被视为no-op。然而,如果存在中间操作,则在做-撤销操作对之间的bs、ai和这三个操作的集合可以减少到等同于的单个操作,这相当于可以与任何其他相邻的服务器操作级联为复合操作的单个服务器操作。

已经参照图1-8描述了本公开的示例架构和其他方面,图9是示出了用于处理连续的撤销请求的示例方法900中包含的一般步骤的流程图。方法900可以在步骤905开始。接下来,在步骤910,可以选择先前未被撤销并且本身不是撤销操作的最近的用户操作ai1。在步骤920,从最内层服务器操作开始,做-撤销操作对之间的所有中间服务器操作可以被递归地精简。可以使用等价关系以及通过将连续的服务器操作级联成单个复合操作而将这些对精简成单个操作。这里符号≡表示等效的效果,并且符号+表示级联。然后,操作920的结果可以是单个服务器操作bs*

接下来,在步骤930,操作可以作为相对应的撤销操作应用于ai1。然后,可以将该对应的撤消操作发送到要被应用的协同环境中的所有其他用户。最后,在步骤940,可以在操作历史记录中将该操作标记为撤消操作。标记可以进一步指示什么操作被撤销以创建做-撤销操作对。用户/服务器和撤消/重做的概念可以相对于给定的用户,因此如果撤销/重做历史存储在服务器上,则还需要跟踪哪个用户与哪个操作相关联。如果客户端上保留了撤消/重做历史记录,则用户是谁是清楚的。

图10是示出了用于处理重做请求的示例方法1000中包含的一般步骤的流程图,其中ip2不一定确实成立。虽然这样的方法可以类似于用于生成撤消操作的方法,但是重做可以被认为是撤消操作的撤消。在这些方面,重做算法可以跟踪撤消-重做操作对(undo-redooperationpair),而不是跟踪做-撤销操作对。

方法1000可以在步骤1005开始并且进行到步骤1010。在步骤1010,可以选择先前未被重做的最近的撤消操作ai1。接下来,在步骤1020,从最内层的服务器操作开始,可以递归地精简撤销-重做操作对之间的所有中间服务器操作。使用等价关系ai+bs+τ(air,bs)≡τ(bs,air)以及通过将相邻服务器操作级联成单个复合操作,精简可以得到单个操作。步骤1020的结果可以是单个服务器操作bs*

接下来,在步骤1030,可以将操作作为相对应的重做操作应用于ai1。然后,可以将该对应的重做操作发送到要被应用的协同环境中的所有其他用户。最后,在步骤1040,可以在操作历史中将该操作标记为重做操作。标记还可以指示什么操作被撤销以创建撤销-重做操作对。

图11-图12a和图12b以及相关联的描述提供了在其中对实现本公开的示例的各种操作环境的讨论。然而,关于图1-图12a和图12b示出和讨论的设备和系统是出于示例和说明的目的,而不是限制用于实践这里描述的方面的大量计算设备配置。

图11是示出了利用其可以实践本公开的示例的计算设备1100的物理组件(即,硬件)的框图。在基本配置中,计算设备1100包括至少一个处理单元1102和系统存储器1104。根据一个方面,取决于计算设备的配置和类型,系统存储器1104包括但不限于易失性存储装置(例如,随机存取存储器)、非易失性存储装置(例如,只读存储器)、闪速存储器或这种存储器的任何组合。根据一个方面,系统存储器1104包括操作系统1105和适于运行包括内容编辑器106的软件应用1150的一个或多个程序模块1106。根据一个方面,系统存储器1104包括用于并入撤消和重做操作的软件。例如,操作系统1105适合于控制计算设备1100的操作。此外,方面结合图形库、其他操作系统或任何其他应用程序来实现,并且不限于任何特定应用或系统。该基本配置在图11中由虚线1108中的那些组件示出。根据一方面,计算设备1100具有额外特征或功能。例如,根据一个方面,计算设备1100包括例如磁盘、光盘或磁带的额外数据存储设备(可移动和/或不可移动)。图11中通过可移动存储设备1109和不可移动存储设备1110示出了这样的额外存储。

如上所述,根据一个方面,多个程序模块和数据文件被存储在系统存储器1104中。当在处理单元1102上执行时,程序模块1106、应用1150和内容编辑器106(例如,用于并入撤消和重做操作的软件)执行处理,包括但不限于图9和图10所示的方法900和1000中的步骤中的一个或多个。根据一个方面,可以根据本公开的示例使用其他程序模块,并且其他程序模块包括诸如电子邮件和通讯录应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等应用。

本公开的方面在包括分立的电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路或包含电子元件或微处理器的单个芯片上实现。例如,经由片上系统(soc)实现方面,其中图11中所示的组件中的每一个或许多组件被集成到单个集成电路上。根据一个方面,这种soc设备包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,它们都被集成(或“烧录”)到芯片基板上作为单个集成电路。当经由soc操作时,本文描述的功能经由与计算设备1100的其他组件集成到单个集成电路(芯片)上的专用逻辑来操作。根据一个方面,本公开的方面使用能够执行诸如,例如与(and)、或(or)和非(not)的逻辑操作的其他技术来实现,其他技术包括但不限于机械、光学、流体和量子技术。此外,方面在通用计算机或任何其他电路或系统中实践。

根据一个方面,计算设备1100具有一个或多个输入设备1112,例如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面,还包括输出设备1114,如显示器、扬声器、打印机等。前述设备是示例,并且可以使用其他设备。根据一方面,计算设备1100包括允许与其他计算设备1118进行通信的一个或多个通信连接1116。合适的通信连接1116的示例包括但不限于:rf发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。

本文使用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构或程序模块之类的信息的易失性和非易失性、可移动和不可移动介质。系统存储器1104、可移动存储设备1109和不可移动存储设备1110都是计算机存储介质示例(即,存储器存储)。根据一个方面,计算机存储介质包括ram、rom、电可擦除可编程只读存储器(eeprom)、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储装置、磁带盒、磁带、磁盘存储或其他磁存储设备,或任何其他可以用于存储信息并且可以由计算设备1100访问的制品。根据一个方面,任何这样的计算机存储介质是计算设备1100的一部分。计算机存储介质不包括载波或其他传播的数据信号。

根据一个方面,通信介质由计算机可读指令、数据结构、程序模块或例如载波或其他传输机制的调制的数据信号中的其他数据来实现,并且包括任何信息传递介质或传输介质。根据一个方面,术语“调制的数据信号”描述了以将信息编码在信号中的方式设置或改变一个或多个特性的信号。作为示例而非限制,通信介质包括例如有线网络或直接有线连接的有线介质,以及例如声学、无线电频率(rf)、红外和其它无线介质的无线介质。

图12a和图12b示出了可以实现这些方面的移动计算设备1200,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图12a,示出了用于实现这些方面的移动计算设备1200的示例。在基本配置中,移动计算设备1200是具有输入元件和输出元件的手持式计算机。移动计算设备1200通常包括显示器1205和允许用户将信息输入到移动计算设备1200中的一个或多个输入按钮1210。根据一个方面,移动计算设备1200的显示器1205用作输入设备(例如,触摸屏显示器)。如果被包括,则可选的侧边输入元件1215允许进一步的用户输入。根据一方面,侧边输入元件1215是旋转开关、按钮或任何其它类型的手动输入元件。在替代示例中,移动计算设备1200包含更多或更少的输入元件。例如,在一些示例中,显示器1205可以不是触摸屏。在替代示例中,移动计算设备1200是诸如蜂窝电话之类的便携式电话系统。根据一个方面,移动计算设备1200包括可选小键盘1235。根据一个方面,可选小键盘1235是物理键盘。根据另一方面,可选小键盘1235是在触摸屏显示器上生成的“软”小键盘。在各个方面,输出元件包括用于显示图形用户界面(gui)的显示器1205、视觉指示器1220(例如,发光二极管)和/或音频换能器1225(例如,扬声器)。在一些示例中,移动计算设备1200包含用于向用户提供触觉反馈的振动换能器。在另一示例中,移动计算设备1200包含外围设备端口1240(例如,音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口))以用于向外部设备发送信号或从外部设备接收信号。

图12b是示出了移动计算设备的一个示例的架构的框图。也就是说,移动计算设备1200包含系统(即,架构)1202以用于实现一些示例。在一个示例中,系统1202被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,系统1202被集成为诸如集成的个人数字助理(pda)和无线电话之类的计算设备。

根据一个方面,将一个或多个应用程序1250加载到存储器1262中并在操作系统1264上运行或与操作系统1264相关联。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息程序、内容编辑器106等。根据一个方面,用于并入撤消和重做操作的软件被加载到存储器1262中。系统1202还包括存储器1262内的非易失性存储区域1268。非易失性存储区域1268用于存储持续信息,如果系统1202断电,则该持续信息不会丢失。应用程序1250可以使用非易失性存储区域1268中的信息并且可以将信息存储在非易失性存储区域1268中,所述信息例如电子邮件或由电子邮件应用使用的其它消息等。同步应用(未示出)也驻留在系统1202上,并且被编程为与驻留在主计算机上的相对应的同步应用进行交互,以将存储在非易失性存储区域1268中的信息与存储在主计算机上的相对应的信息进行同步。应当理解,其他应用可以被加载到存储器1262中并在移动计算设备1200上运行。

根据一个方面,系统1202具有电源1270,电源1270被实现为一个或多个电池。根据一方面,电源1270还包括外部电源,例如ac适配器或用于补充电池或再对电池充电的电源对接支架。

根据一个方面,系统1202包括执行发送和接收无线电频率通信功能的无线电1272。无线电1272有助于在系统1202和“外界”之间经由通信运营商或服务提供商的无线连接。到无线电1272的传输和自无线电1272的传输是在操作系统1264的控制下进行的。换句话说,无线电1272接收到的通信可以经由操作系统1264散播到应用1250,反之亦然。

根据一个方面,视觉指示器1220用于提供视觉通知和/或音频接口1274用于经由音频换能器1225产生可听的通知。在所示示例中,视觉指示器1220是发光的二极管(led),并且音频换能器1225是扬声器。这些设备可以直接耦合到电源1270,使得当被激活时,它们在由通知机制规定的持续时间内保持接通,即使处理器1260和其他组件可以关闭以保持电池电力。led可以被编程为无限期地接通,直到用户采取动作来指示设备的通电状态。音频接口1274用于向用户提供可听的信号并从用户接收可听的信号。例如,除了耦合到音频换能器1225之外,音频接口1274还可以耦合到麦克风以接收可听的输入,例如有助于电话通话。根据一个方面,系统1202还包括视频接口1276,其使得板载照相机1230的操作能够记录静止图像、视频流等。

根据一个方面,实现系统1202的移动计算设备1200具有附加的特征或功能。例如,移动计算设备1200包括诸如磁盘、光盘或磁带之类的附加数据存储设备(可移动和/或不可移动)。这种附加存储在图12b中由非易失性存储区域1268示出。

根据一个方面,由移动计算设备1200生成或捕获的并且经由系统1202存储的数据/信息被本地存储在移动计算设备1200上,如上所述。根据另一方面,数据可以存储在任意数量的存储介质上,该存储介质可由设备经由无线电1272或者经由移动计算设备1200与和移动计算设备1200相关联的单独的计算设备(例如,诸如因特网之类的分布式计算网络中的服务器计算机)之间的有线连接来访问。应当理解的是,这些数据/信息可以通过移动计算设备1200经由无线电1272或者经由分布式计算网络来访问。类似地,根据一个方面,根据公知的数据/信息传输和存储手段,包括电子邮件和协同数据/信息共享系统,这些数据/信息可轻易地在计算设备之间传输以用于存储和使用。

例如,上面参照方法、系统和计算机程序产品的框图和/或可操作的说明来描述本公开的方面。方框中记载的功能/动作可以不按照任何流程图所示的顺序发生。例如,取决于所包含的功能/动作,连续示出的两个方框实际上可以基本同时被执行,或者有时可以以相反的顺序执行。

在本申请中提供的一个或多个示例的描述和说明不是要以任何方式限制或约束所要求保护的本公开的范围。在本申请中提供的方面实现、示例和细节被视为足以传达所有权并且使得其他技术人员能够实现和使用所要求保护的最佳方式。本公开不应被解释为被限制于本申请中提供的任何方面、示例或细节。无论是组合地或者单独地显示和描述,各种特征(结构上的和方法上的)都是要被选择性地包含或省略以产生具有特定特征集合的示例。已经提供有本申请的描述和说明,本领域技术人员可以设想落入在本申请包含实现的总发明构思的较宽方面的精神内的、没有脱离本公开的较宽范围的变型例、修改例和可替代示例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1