云内容状态确定逻辑的制作方法

文档序号:17123823发布日期:2019-03-16 00:06阅读:324来源:国知局
云内容状态确定逻辑的制作方法

可用于帮助用户管理文档和其他内容的文件存储和同步解决方案将内容存储“在云中”,并且通过网络从各种设备访问云内容正日益变得更常见。传统上,在文件如何被处理和/或向用户呈现方面,应用和文件系统不在本地保存的内容(例如,本地文件)与云内容(例如,同步的文件)之间进行区分。不同的文件可能实质上是由设备以相同的方式处理的,而不考虑文件是保留在本地的还是与其他设备同步的。由此,当前并不存在合适的机制以识别云内容、将云内容与对应的提供商相关联、和/或使能针对云内容的定制化处理。



技术实现要素:

在本文中描述了针对云内容状态框架的确定逻辑。在一个或多个实现中,框架被配置为在计算设备处代表云存储提供商执行对云内容文件进行管理的操作。该框架可操作以管理和确定从多个云存储服务可访问的云内容文件的状态。该框架还利用对云内容文件的文件系统表示来管理和输出状态指示符。该框架可以被实现为客户端设备的操作系统的一个或多个组件。所述状态包括至少一组主要状态,其指示由该框架所控制以用于跨多个云存储服务使用的同步状态。所述状态可以可选地包括与云存储服务中的一个或多个云存储服务相关联的定制状态,所述定制状态是经由由框架所展现的接口来定义的。在操作中,结合对用户界面进行渲染来确定与云内容文件相关联的状态,所述用户界面被配置为显示对云内容文件的文件系统表示。接着,在用户界面中与对云内容文件的文件系统表示一起展现反映所识别的一个或多个状态的状态指示符。

在一个或多个实现中,利用针对云内容状态框架的确定逻辑以取决于所定义的一组文件同步属性来进行状态确定。该框架操作以对文件同步属性进行评估并且根据所述评估来设置文件的状态。文件同步属性评估可以依赖于与由云存储提供商所声明的属性相关的指示以及与由框架/os独立于云存储提供商所确定的属性相关的指示。文件同步属性和对应的状态涉及以下同步状态,例如文件是否可用、处于在线还是离线、活动地下载(例如,在进行中)、排队等待下载、与服务同步或不同步、或者与错误相关联等。

在一个或多个实现中,文件同步属性通过将文件同步属性值映射至不同状态的映射数据结构来与对应的状态相关。映射数据结构可以被配置为表格、数据库、库文件(例如,dll)、或者可以用于基于属性值来查找状态的其他合适的数据结构。框架利用并参考映射数据结构以将针对云内容文件所识别的文件同步属性与对应的状态进行匹配,并且接着相应地设置云内容文件的状态。在示例方法中,映射数据结构定义了状态的经排序的列表,其以确定性方式被采用以将状态分配至文件。当采用该经排序的列表时,通过以所定义的顺序针对映射数据结构中的状态对文件同步属性进行评估来进行对文件的状态的确定,直到找到匹配的状态为止。接着,匹配的状态被选择并且被分配至文件。

提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图说明

参考附图描述了具体实施方式。在附图中,附图标记中最左边的数字标识了该附图标记第一次出现的图。在说明书和附图中的不同实例中使用相同的附图标记可以指示相似或相同的项。在附图中所表示的实体可以指示一个或多个实体,并因此可以在以下的讨论中可交换地指代单数或复数形式的实体。

图1是可操作以采用用于实现云内容状态确定逻辑的技术的示例操作环境。

图2是描绘了根据一个或多个实现的用于呈现云内容状态的示例场景的图。

图3是描绘了根据一个或多个实现的关于一组主要状态的细节的图。

图4是描绘了根据一个或多个实现的关于示例映射数据结构的细节的图。

图5是描绘了根据一个或多个实现的具有文件系统表示的图标视图的示例用户界面的图。

图6是描绘了根据一个或多个实现的用于确定云内容状态的示例过程的流程图。

图7是描绘了根据一个或多个实现的在其中采用映射数据结构以用于云内容状态确定的示例过程的流程图。

图8示出了示例系统,其包括可以用于实现在本文中所描述的云内容状态确定逻辑的方面的各种设备和组件。

具体实施方式

概览

传统上,在如何处理文件和/或向用户呈现方面,应用和文件系统不在本地保存的内容(例如,本地文件)与云内容(例如,同步的文件)之间进行区分。由此,当前并不存在合适的机制以识别云内容、将云内容与对应的提供商相关联、和/或使能针对云内容的定制化处理。

在本文中描述了针对云内容状态框架的确定逻辑。在一个或多个实现中,框架被配置为执行在代表云存储提供商的计算设备处对云内容文件进行管理的操作。针对云内容状态框架的确定逻辑被用于依赖于所定义的一组文件同步属性来进行状态确定。框架操作以对文件同步属性进行评估并根据所述评估来设置文件的状态。文件同步属性评估可以依赖于与由云存储提供商所声明的属性相关的指示以及与由框架/os独立于云存储提供商所确定的属性相关的指示。文件同步属性和对应的状态涉及以下同步状态,例如文件是否可用、处于在线还是离线、活动地下载(例如,在进行中)、排队等待下载、与服务同步或不同步、或者与错误相关联等。

在一个或多个实现中,文件同步属性通过将文件同步属性值映射至不同状态的映射数据结构来与对应的状态相关。映射数据结构可以被配置为表格、数据库、库文件(例如,dll)、以代码实现的决策树、逻辑指令、或者可以用于基于属性值来查找和/或评估状态的其他合适的数据结构。框架利用并参考映射数据结构以将针对云内容文件所识别的文件同步属性与对应的状态进行匹配,并且接着相应地设置云内容文件的状态。在示例方法中,映射数据结构定义了状态的经排序的列表,其以确定性方式被采用以将状态分配至文件。当采用该经排序的列表时,通过以所定义的顺序针对映射数据结构中的状态对文件同步属性进行评估来进行对文件的状态的确定,直到找到匹配的状态为止。接着,匹配的状态被选择并且被分配至文件。

在本文中描述的云内容状态框架和确定逻辑技术提供了一种用于跨不同种类的视图来识别和使用云内容的状态的机制。不同的云存储提供商可以利用该框架,这使得提供商更容易支持状态信息。因为跨多个提供商、应用、和文件系统视图采用一致的一组状态和对状态的呈现,所以增强了用户体验。此外,状态是由框架和/或os控制的,并且由此,文件状态的准确表示不取决于到网络或个体服务的连通性。

在以下的讨论中,首先描述了可以使用在本文中描述的针对云内容状态的技术的示例环境。接着,描述了可以在该示例环境以及其他环境中实现的示例场景、用户界面、和过程。因此,示例场景、用户界面、和过程不限于该示例环境并且该示例环境不限于说明性示例。最后,讨论了可以用于实现在本文中所描述的技术的方面的示例系统和该系统的组件。

示例环境

图1是可操作以采用在本文中所描述的技术的示例实现中的环境100的示图。所示出的环境100包括可通信地经由网络108耦合的客户端设备102、其他客户端设备104、以及服务提供商106。客户端设备102、其他客户端设备104、以及服务提供商106可以由一个或多个计算设备实现并且还可以代表一个或多个实体。

计算设备可以以多种方式来配置。例如,一种计算设备可以被配置为能够通过网络108进行通信的计算机,例如台式计算机、移动站、娱乐家电、通信地耦合至显示设备的机顶盒、无线电话、游戏机等。因此,计算设备的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏机)到具有受限的存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持式游戏机)。另外地,尽管在一些实例中示出了单个计算设备,但是该计算设备可以代表多个不同的设备,例如由企业利用以执行操作的服务提供商106的多个服务器等。关于图7在下文中描述了适合实现在本文中所描述的技术的计算系统和设备的另外的示例。

尽管网络108被示出为互联网,但是网络可以假定宽泛的多种配置。例如,网络108可以包括广域网(wan)、局域网(lan)、无线网络、公共电话网络、内联网等。另外,尽管示出了单个网络108,但网络108可以被配置为包括多个网络。

客户端设备102还被示出为包括操作系统110。操作系统110被配置将底层设备的底层功能抽象为在客户端设备102上执行的应用。例如,操作系统110可以抽象处理、存储器、网络、和/或显示功能,以使得应用112可以在不知道该底层功能“如何”被实现的情况下被写。例如,应用112可以将数据提供至操作系统110以由显示设备如所示出的那样渲染和显示,而不知道该渲染将如何被执行。预期到通常与客户端设备相关联的多种应用112,包括但不限于集成了多个办公生产力模块的生产力套件、web浏览器、游戏、多媒体播放器、文字处理器、电子表格程序、照片管理器等。

客户端设备102还被示出为包括文件系统114以及云内容管理器115。在该示例中,文件系统114和云内容管理器115被描绘为被实现为操作系统110的组件。可替代地,文件系统114和云内容管理器115中的一者或两者可以被提供为单独的应用和/或被提供为另一应用112的组件。

文件系统114表示用于定义和控制文件被命名的方式以及在逻辑上将它们放置在何处以供存储和取回的功能。文件系统可以采用层级(树)结构。在该方法中,文件被组织在与存储器中向所述文件分配的空间相对应的目录(或文件夹)中。文件系统114还包括用于通过目录结构指定到文件的路径的格式。文件系统114可以采用指向各种存储位置的路径,所述存储位置例如内置硬盘驱动、外置存储设备、以及网络文件位置。根据在该文档中所描述的技术,文件系统114还支持对与一个或多个在线提供商相关联的云内容文件的枚举。与操作系统110相结合的文件系统114在本地、离线文件旁边并且以与本地、离线文件相同的方式在文件系统结构的各种视图中展现云内容文件。

云内容管理器115表示用于通过网络108使能对各种文件的各种同步的客户端侧功能。例如,客户端设备102可以包括能够用于存储本地文件以及能够与其他设备同步的云内容118(例如,“同步的文件”)的本地存储116。云内容管理器115可以操作以连接到由服务提供商106提供的多个云内容服务从而执行文件同步和相关操作。作为示例,云内容118在图1中被示出为与客户端设备102和其他客户端设备104两者相关联。在该上下文中,云内容118可以表示在多个不同设备的相应本地存储116中保存并且能够经由部署至设备的云内容管理器115跨多个不同设备同步的文件的本地版本。云内容118还可以包括对非同步文件的表示和/或至非同步文件的链接,所述非同步文件是在能够经由云存储提供商访问的远程在线存储中保存。如所记录的,文件系统114被配置为在经由操作系统110并且通过各种应用112的文件访问功能可获得的公共视图中管理和提供对本地和在线文件两者的表示。另外地,可以展现与文件相关联的状态信息以用在本文中所描述的方式来提供关于文件的状态的指示。可以通过经由操作系统110和/或不同的应用112所输出的用户界面120来以各种不同的形式和视图呈现文件系统表示和状态信息。

特别地,云内容管理器115还表示用于实现如上文和下文所描述的云内容状态框架和确定逻辑的功能。框架使得状态信息能够与云内容文件相关联,并且与包括云内容文件的文件系统表示的各种视图相结合地使用。框架可以定义并控制与文件的同步状态相关的一组主要状态。因此,针对主要状态定义的图标或其他状态指示符可以与文件系统表示中的项目一起被示出,以视觉地显示对应的云内容文件的同步状态。另外地,框架支持可以与主要状态一起使用的定制状态,以扩展框架并支持定制交互场景。关于以下附图讨论了与用于实现云内容状态的技术的这些和其他方面有关的细节。

服务提供商106包括能够由服务提供商106操作以管理通过网络108可获得的各种资源122的功能。例如,各种资源122可以经由网页或通过网络传送的其他用户界面120来提供,以用于由一个或多个客户端经由web浏览器或其他客户端应用来输出。服务提供商106管理对资源122的访问、资源的执行、以及用户界面120的配置,以提供资源122等。服务提供商106可以表示用于提供各种资源122的一个或多个服务器设备。

一般而言,能够由服务提供商106访问的资源122可以包括通常通过网络可由一个或多个提供商获得的服务和/或内容的任何合适的组合。服务的一些示例包括但不限于搜索服务、电子邮件服务、即时消息传送服务、在线生成力套件、以及用于控制客户对资源122的访问的认证服务。内容可以包括文本、多媒体流、文档、应用文件、照片、音频/视频文件动画、图像、网页、web应用、设备应用、用于由浏览器或其他客户端应用显示的内容等的各种组合。

可以由服务提供商106提供的资源122的一个特定示例是如在图1中所描绘的云存储服务124。在本文中所描述的技术可应用于能够由多个不同的服务提供商(例如,多个云存储提供商)提供的多个不同的云存储服务。在该上下文中,云存储服务124代表可操作以提供和管理能够向与服务提供商106相关联的用户账户分配的在线存储126的功能。在线存储126针对诸如文档、应用文件、照片、移动上传、以及音频/视频文件之类的云内容118向用户提供“云中的”存储,因此用户可以通过网络108从任何地方访问其内容项目,并且分享内容以与其他用户合作。云存储服务124还使得用户能够跨由用户指定的多个不同的设备来同步文件。由第三方(例如,其他提供商)提供的多个云存储服务还可以提供相应的存储和文件同步。因此,云内容118可以通过与向客户端设备部署的云内容管理器115相对应的交互、经由不同的云存储服务跨多个设备来同步。

如在图1中所表示的,与特定云存储服务124相关联的、与云内容118相对应的文件的相应版本可以由本地存储116中的每个客户端设备本地地存储。另外或可替代地,文件系统114可以包括到在云中保存的内容的链接以及对在云中保存的内容的表示,例如不同步的文件或指定仅用于在线访问的文件。一般而言,除了在每个设备处本地地存储和同步内容之外,云存储服务124还被配置为将至少一些文件的相应版本存储在在线存储126中以供在线访问。

通过客户端向其认证的客户端/用户账户,客户端可以访问由服务提供商106所提供的云存储服务124和其他资源122。例如,为了访问资源122,客户端设备可以提供通过认证服务认证的用户名和密码。当认证成功(例如,该客户端“是他们说他们是的人”)时,则认证服务可以传递令牌(或其他合适的认证标识符/秘密)以使能访问对应的资源。单个认证可以与一个或多个资源相对应,以使得通过“单一登录”对单个账户的认证可以提供对单个资源、对来自多个服务提供商106的资源、和/或对从服务提供商106可获得的整套资源的访问。

云内容状态确定逻辑

在考虑了示例操作环境的前述讨论之后,现在考虑与用于实现在该部分中描述的云内容状态确定逻辑的技术相关的另外的细节。特别地,关于示例场景、用户界面、以及针对图2-图7所表示和描述的技术讨论了云内内容状态框架的方面。

呈现云内容状态

图2在200处一般地描绘了示出用于实现云内容状态的示例场景的图。特别地,图2表示可以在云内容管理器115与云存储服务124之间发生的用于呈现云内容状态的交互和操作。如所表示的,云内容管理器115可以展现接口202,其使得云存储服务124能够与云内容管理器115通信和交互。可以预期针对接口202的各种格式和协议。在一个实现中,接口202被配置为应用编程接口(api),该应用编程接口被设计为使得多个云存储服务能够插入到框架中,该框架被提供用于代表多个云存储服务对云内容进行管理。一般而言,接口202使得云存储服务124能够利用向一个或多个终端用户设备部署的云内容管理器115来传送、注册、和同步文件。接口202还如在本文中所描述的那样促进对定制状态的创建和部署。

云内容管理器115包括或利用定义可用于云内容118的状态的一些状态定义204。一般而言,状态定义204包括状态的描述、用于表示状态的图标或其他状态指示符、以及用于建立何时将状态应用至内容项目的标准。状态定义204还可以包括对状态的优先级的指示,这用于基于所述优先级来控制对状态的处理、排序、和呈现。状态定义204包括至少一组主要状态206。主要状态206是由框架/os定义和控制的一组标准状态。主要状态206旨在使得对多个不同的云存储服务124可获得并且跨多个不同的云存储服务124被使用。通过这样做,状态表示是一致的并且能够由用户容易理解,而不管用户选择哪个或哪些服务以用于云存储。主要状态206可以以各种方式来实现,在下文针对图3讨论了其细节。

状态定义204还可以可选地包括由个体的提供商定义的以与关联于这些提供商的内容一起使用的定制状态208。可以经由接口202来定义和更新定制状态208。定制状态可以同与创建/部署该状态的特定提供商相关联的内容一起被排他地使用。对于提供商或用户而言,还可以共享定制状态以提供扩展的功能。

云内容管理器115还可以包括或利用状态确定模块209,其表示用于实现如上文和下文所描述的确定逻辑的功能。通过介绍的方式,利用针对云内容状态框架的确定逻辑以依赖于一组定义的文件同步属性来进行对云内容文件的状态确定,并且使得云内容文件的状态相应地被设置。在下文在标题为“云内容状态确定逻辑”的部分中讨论了关于状态确定的细节。

基于向云内容文件分配的状态,云内容管理器115参考并利用状态定义204以在各种用户界面120中与内容的表示一起呈现状态。与云内容文件相关联的云内容状态可以包括主要状态206或定制状态208中的一者或两者。特定的云内容文件可以在不同时间与不同状态相关联。此外,在给定的时间点,可以向特定的云内容文件分配一个或多个状态。另外地,文件的状态信息可以是未定义的或空白的(例如,没有分配具体的状态)。

云内容管理器115使得结合文件系统表示201的不同视图来呈现关于云内容状态的信息。例如,在与操作系统110、文件系统114、和/或各种应用112相关联的用户界面120中展现的文件系统表示210可以包括用于表示与内容项目相关联的状态的状态指示符212。状态指示符212可以被配置为分配至不同状态的图标或其他图形元素。对状态指示符212的呈现是经由由设备/操作系统110所实现的云内容管理器115和/或对应的框架来控制的。因此,状态指示符212是由框架保存的或者经由框架直接渲染的,以作为文件系统的一部分而不是由个体提供商/应用使用覆盖图在应用等级实现的。状态指示符212可以被利用以贯穿设备用户体验并且跨各种不同的应用和设备在各种视图中提供云内容状态指示。例如,文件图标和文件夹、最近使用的文档的列表、最喜欢列表、被固定(pinned)的文档、到在应用用户界面内呈现的文档的链接和/或其他应用、以及其他文件系统表示可以被渲染为包括指示与内容项目相关联的对应状态的状态指示符212。

云内容状态确定逻辑

根据在本文中所描述的技术,云内容状态框架被配置为实现确定逻辑,该确定逻辑可操作以关于与云内容相关联的状态进行确定并且向文件分配合适的状态。接着,向文件分配的状态可以以各种方式来使用,包括但不限于,使用所述状态以使能结合如在该文档中所讨论的不同文件表示来呈现状态指示符212。所述确定逻辑可以经由如先前所记录的状态确定模块209和/或由框架和/或os所提供的其他功能来实现。

一般而言,利用针对云内容状态框架的确定逻辑以依赖于一组定义的文件同步属性来进行状态确定。文件同步属性可以包括与文件相关联的现有元数据以及新定义的元数据。框架被配置为从一个或多个资源收集、解析、和提取元数据,以确定指示个体云内容文件的当前状态的文件同步属性。文件同步属性反映诸如文件位置、服务标识、将文件指定为固定或未固定的、文件修改、同步进度等之类的方面。可以通过检查元数据的不同源来确定文件同步属性,所述元数据包括文件系统和文件格式元数据、提供商供应的补充元数据、与文件的服务表示有关的元数据、提供商标识元数据、诸如针对同步错误和同步进度之类的易失性文件属性等。

因此,框架操作以对文件同步属性进行评估并且根据所述评估来设置文件的状态。文件同步属性评估可以依赖于与对由云存储提供商声明的属性相关的指示以及与由框架/os独立于云存储提供商所确定的属性相关的指示。在一个或多个实现中,文件同步属性通过将文件同步属性值映射至不同状态的映射数据结构来与对应的状态相关。映射数据结构可以被配置为表格、数据库、库文件(例如,dll)、或者可以用于基于属性值来查找状态的其他合适的数据结构。下文关于图4讨论了示例映射数据结构的细节。

框架利用并参考映射数据结构以将针对云内容文件所识别的文件同步属性与对应的状态进行匹配,并且接着相应地设置云内容文件的状态。在示例方法中,映射数据结构定义了状态的经排序的列表,其以确定性方式被采用以将状态分配至文件。当采用该经排序的列表时,通过以所定义的顺序针对映射数据结构中的状态对文件同步属性进行评估来进行对文件的状态的确定,直到找到匹配的状态为止。接着,匹配的状态被选择并且被分配至文件。

在该上下文中,确定逻辑实现用于状态评估以及用于向文件分配状态的一组原理、规则、属性、设置、和状态。在不同实现中,所定义和使用的特定原理、规则、属性、设置、和状态可以是不同的。作为示例而非限制,在以下的名称为“示例实现”的部分中,提供了示出选择概念的示例实现的细节,其可以用于在各种不同的实现中建立确定逻辑。然而,针对云内容状态确定逻辑的发明性技术不旨在限于关于示例实现所讨论的细节和概念。例如,用于表示状态、状态的顺序和优先级、所定义的特定属性和状态、以及其他方面的图标可以跨不同的场景和实现而不同。

云内容状态和指示符

如所记录的,云内容状态框架定义并控制涉及文件的同步状态的一组主要状态206。针对主要状态所定义的图标或其他状态指示符212可以与文件系统表示中的项目一起被示出,以视觉地显示对应的云内容文件的同步状态。主要状态206和对应的状态指示符212可以是以各种方式配置的。

一般而言,主要状态206是被设计成跨不同的云存储提供商共享的一组已建立的状态。主要状态206跨视图、应用、设备、和平台传递一致的状态表示。尽管可以支持定制的状态,但是与定制的状态相比,主要状态206可以被分配以更高的优先级。状态可以至少部分地基于对应的优先级而被处理、列出、排序、和管理。因此,在包括多个状态指示符的视觉表示中,将主要状态放置在被认为是最突出的位置处,其中,另外的状态被布置成在主要状态的位置周围。另外地,主要状态206可以可选地被实现为不能够由定制的状态或图标覆盖或替换的一组固定的状态。

可以在不同的实现中利用不同数量和类型的主要状态206。针对状态的视觉指示符212可以使用设计、图形、颜色、文本、图像、动画等的各种组合。作为示例而非限制,图3是在300处一般地描绘了与一组示例主要状态206以及可以在一个或多个实现中采用的对应的表示相关的细节的图。主要状态206与一组对应的图标302和使用图标302的状态的表示304相关联。在该示例中,图标302至少包括用于表示文件离线可用且同步的勾选标记图标306、用于将状态表示为正在同步或等待下载的箭头图标308、以及用于表示错误状态的删去图标310。另外地,可以通过不示出具有项目的图标302之一来表示仅在线可用(例如,离线不可用)的状态。换句话说,缺少具有项目的所定义的图标302之一是该项目在设备本地不可用的指示。

在该上下文中,表示304可以针对使用图标来表示底层内容项目的各种状态信息的文件和文件夹而被定义。在所描绘的示例中,可用的主要状态206包括在图3中所示出的示例状态312至322。特别地,示例状态包括离线可用且同步的312、仅在线文件:可用314、同步中/等待下载316、下载进度318、错误状态320、以及仅在线文件:不可用322。如所记录的,所枚举的这些状态旨在作为说明性示例,并且各种不同和/或额外的状态可以在不同的实现中针对一组主要状态206而被定义和采用。

具有文件和文件夹的文件系统表示的图标302的不同组合(例如,文件图标和文件夹图标)被构建为表示不同的状态并且其示例在图3中在对应状态的下方的行中被示出。例如,通过在接近文件图标的地方渲染勾选标记图标306而产生对离线可用且同步的文件312的表示。在该示例中,勾选标记图标306被布置成位于该文件图标的下下方且在左侧的小图形,但是针对不同的视图并且在不同的实现中可以采用其他布置。用于表示其他状态的其他图标可以以可比较的方式来与文件图标相关联。一般而言,也以相同的方式来产生文件夹的状态表示。然而,要注意的是,由于文件夹可以包含各自与不同状态相关联的多个文件,因此文件夹的状态表示可以区别于个体文件的表示。可以选择针对文件夹所示出的状态表示,以提供针对在文件夹中所包含的多个单个文件所导出的整体状态。

下载进度318状态是针对主动下载的文件使用的。在实现中,针对文件的下载进度318状态可以使用随着下载在进行而更新以示出进度和/或剩余时间的进度条来表示。然而,要注意的是,对应的文件夹可以使用箭头图标308而不是进度条,这是由于进度条可能不适用于文件夹中的每个文件。这是其中文件夹的状态表示反映了针对文件夹中的多个单个文件所导出的整体状态并且文件夹状态与针对个体文件的表示不同的场景的示例。

此外,作为仅在线文件的文件可用性是通过不示出具有对应项目的图标302之一来表示的。该方法针对仅在线文件:可用314和仅在线文件:不可用322状态两者来进行反映。额外的视觉指示可以用于在可用和不可用的文件之间进行区分。可用性可以取决于网络连通性、服务可用性、访问许可、账户登录状态等。在这里,不可用的文件和文件夹被表示为“变灰”以示出这些文件当前不可访问。另一方法是针对可用的和不可用的文件来定义不同的指示符。另外,除了主要状态表示之外,定制状态可以被定义并且用于反映可用性。

示例映射数据结构

作为示例而非限制,图4是在400处一般地描绘了与可以在一个或多个实现中采用的示例映射数据结构有关的细节的图。在该示例中,映射数据结构被表示为将状态404映射到对应的状态指示符406和确定逻辑408的表格402。在该示例中,表格402针对文件和文件夹的确定性分析而被配置。因此,以定义的评价从高到低的顺序列出了表格中的状态。通过按顺序根据确定逻辑408来评价表格中的每个状态直到找到匹配为止,进行在已知文件的一组属性的情况下寻找正确状态的过程。可以经由状态确定模块209或者与在本文中所讨论的框架相集成的其他功能来实现由表格402所反映的过程。

一般而言,每个状态的确定逻辑408定义了用于针对指定于对应状态的标准来评估文件同步属性的一个或多个操作。当针对所列出的状态的标准被满足时,对应的状态被选择并且被分配至正在评价的云内容项目。如果该标准没有被满足,则分析进行至对所列出的下一个状态的评价等等,直到找到匹配为止。表格402针对文件和文件夹的评价具有分开的决策树和列表。

示例主要状态表示

一旦状态已经被分配至云内容,则该状态可以以各种方式被采用。例如,可以根据状态来分配用于文件管理的计算资源。在另一示例中,状态可以用于以不同的方式过滤和/或选择性地处理具有不同状态的文件。额外地,可以采用所述状态来提供状态指示符212,以与根据在本文中所讨论的各种示例和技术的文件系统表示相结合地反映所述状态。

例如,经由云内容管理器115实现的云内容状态框架可操作为用任何合适的方式配置用户界面120以包括状态指示。可以使得状态指示跨设备用户体验并且在文件系统信息的各种不同视图中可用。在一个或多个实现中,框架定义并实施用于配置用户界面120以及利用ui和不同的视图对状态指示符212进行布置的原则。如所记录的,可以至少部分地基于向状态分配的优先级来处理和布置状态和对应的状态指示符212。但是,放置状态指示符212的准确位置、放置的顺序、以及对要示出哪些状态的选择可以根据特定的视图并且针对不同的实现而改变。

尽管状态指示符212相对于云内容文件表示的放置可以不同,但在至少一些实现中,框架被配置为放置状态指示符212以使得所述指示符不干扰云内容文件表示。因此,可以将状态指示符212放置在接近于文件/文件夹图标的位置中,但在文件/文件夹图标的视觉边界之外。在该方法中,状态指示符212不覆盖视觉边界或干扰文件名或其他文本标签。另外地,对状态指示符212的放置还可以取决于文件/文件夹图标的大小和视图的布局。例如,状态指示符212可以在列表视图内被放置在专用列中,而状态指示符212可以在图标视图中被放置地紧邻于文件/文件夹图标的视觉边界。

仅作为一个说明性示例,图5是在500处一般地描绘了根据一个或多个实现的具有文件系统表示的图标视图的示例用户界面502的图。示例用户界面502包括具有文件系统表示的视图的窗格504。在该示例中,文件系统表示示出针对与特定文件存储位置相关联的一些文件和文件夹的图标。文件存储位置可以与云存储服务124相关联,其中,包含在其内的文件是经由文件系统114和/或云内容管理器115来管理的。

根据在本文中所描述的技术,文件系统表示还包括与文件和文件夹图标相关联的状态指示符212。状态指示符212是针对根据如上文和下文所讨论的云内容状态确定逻辑由框架/os所确定的主要状态206而被包括的。根据上文和下文讨论的原则,状态指示符212可以与特定项目的表示相关联并且相对于特定项目的表示而被布置。例如,在图5中所示出的图标视图中,针对不同项目示出了主要状态206的不同的状态指示符212。在针对项目示出了多个状态的实例中,主要状态206可以在优先级位置或槽位中被表示,其在该示例中是最左边的位置。对多个状态指示符的定位是根据优先级来控制的。因此,可以从左到右来布置指示符,其中主要状态首先被示出,且任何定制的状态此后被示出。状态指示符212相对接近于文件/文件夹图标的视觉边界而被对其在对应的文件/文件夹图标的下方。

除了图5的说明性示例之外,可以预期到ui的多种不同的配置以及针对ui的状态指示符212的布置。一般而言,使用如在本文中讨论的确定逻辑所确定的状态指示符212可以以各种方式被利用,从而传达与云内容118的状态相关的信息。可以在文件系统表示的不同视图(例如,列表视图、图标视图、细节视图等)中利用状态指示符212的不同布置。此外,状态指示符212可以在文件系统表示被展现的任何情况下跨不同应用且贯穿用户体验而被利用。

示例实现

现在考虑示出可以用于在各种不同的实现中建立确定逻辑的选择概念的示例实现。然而,用于云内容状态确定逻辑的发明性技术不旨在限于关于示例实现所讨论的细节和概念。例如,用于表示状态的图标、状态的顺序和优先级、所定义的特定属性和状态、以及其他方面可以跨不同场景和实现而不同。

在文件系统的上下文中,文件可以被定义成常规文件或占位符。占位符对应于由与云存储提供商相关联的同步引擎/同步客户端所管理的云内容118或“云文件”。在一些情况下,可以不存在主要数据流。在该实现示例上下文中,常规文件与尚未由同步引擎所管理的本地文件相对应,而占位符文件与经同步的“云文件”或云内容118相对应。

可以基于占位符文件是否完整来对它们进行区分。例如,部分占位符文件与具有不完整的主要数据流或完全不具有主要数据流的经同步引擎管理的文件相对应,而完整占位符文件与其中针对文件或文件夹的主要数据流是完整的、经同步引擎管理的文件或文件夹相对应。

可以通过同步提供商标识元数据的存在来区分占位符。例如,部分占位符将具有具体的新的重新解析标签(tag_cloud),并且还将具有现有的file_attribute_offline比特以表示该数据不是即时可用的并且将使得大多数文件扫描器跳过它们。file_attribute_sparse_file属性也将针对指示主要数据流不是完全存在的部分占位符而被设置。

文件系统可以在确定已经被重命名或修改的文件或文件夹时提供帮助。该确定可以用于1)帮助同步引擎关于文件或文件夹是否已经被修改来进行快速的、决定性的确定,2)允许该文件系统理解哪些完整占位符有资格脱水(dehydrate)成部分占位符,以及3)允许该框架立即区分需要同步的、具有潜在未决的改变的文件或文件夹,因此该状态可以向用户示出。

显然,因为常规文件根据定义是不同步的,所以该确定仅仅与占位符文件相关。在同步时,占位符文件可以通过文件属性:file_attribute_in_sync被识别。响应于同步引擎调用文件系统占位符api来创建占位符或确认现有占位符现在正在同步,该值被设置。

当对文件或文件夹进行以下修改中的任何一个时,文件系统将自动去除该属性(file_attribute_in_sync):1)主要数据流写入,或者2)文件重命名(或在同步范围内移动)。

针对云内容状态框架的确定逻辑操作以依赖于一组定义的文件同步属性来进行状态确定。可以预期到各种不同的属性以及属性的源。例如,项目可以具有不同类型的元数据,并且该元数据可以被存储在不同的位置中。

在该情况下,元数据可以包括与文件系统相关联的现有类型的元数据,以及由框架定义并且与占位符文件(例如,云内容118)相关联的新类型的元数据。现有类型的元数据包括由文件系统直接存储并且表示针对占位符和其他文件的基本文件属性的“文件系统元数据”(例如,名称、日期、已修改、大小、属性、重新解析标签)。现有类型的元数据还包括“文件格式元数据”(例如,音乐艺术家、照片标签、文档作者),其与在文件类型的文件格式中存储并且经由特定于格式的属性处理程序提取的诸如音乐艺术家或文档作者之类的补充或扩展的信息相对应。一些文件格式支持“开放元数据”,这意味着它们可以存储任意数据,但不是所有文件格式都这样。

各种类型的元数据在不同位置中存储的存储中可用。这样的元数据存储器包括文件系统目录条目、主要文件流、替代的数据流、索引器、以及同步提供商存储。文件系统目录条目包含与文件类型无关的、在磁盘上留存的文件系统元数据。主要文件流包含由特定于文件类型的处理程序提取的元数据,并且被配置为包含文件格式元数据。替代的数据流直接由文件系统管理,以促进访问(没有非法共享)并且防止篡改(没有其他应用造成的意外干扰)。索引器对在其他数据存储中可用的可索引属性进行缓存,并且提供存储在存储器中的属性的能力,并且还可以针对关于在父项目或子项目中反映的项目所表达的属性来提供复杂的聚合、继承、或冒泡逻辑。同步提供商存储通常包括他们自己的存储或者元数据的数据库。显然,上文描述的不同类的元数据可以被存储在这些各种不同的元数据存储中。

云状态框架展现可以用于表示与文件相关联的属性的属性接口。属性接口可以由文件系统和云存储提供商使用以指定属性,并且提供对在替代的数据流上运行的属性存储的实现,并进而填充索引器。

分开的序列化的二进制大对象可以用于对文件格式元数据和提供商识别/补充元数据的颗粒分离。当水化(hydrate)占位符(例如,下载数据流和/或用值填充元数据字段)时,由于文件格式元数据将在主要文件流中完全存在,因此文件系统可以将文件格式元数据从替代的数据流中去除。当将文件从同步根中移出时,文件系统可以去除所有替代的文件流元数据。

同步引擎/提供商可以使用由云状态框架展现的api或其他结构而绑定至并且写至属性存储。当从云端对改变进行同步时,云存储提供商与其更新其他占位符元数据同时地更新替代的文件流元数据。

用户可以明确请求文件总是离线可用的和/或在特定的机器上被水化。类似地,他们可以对文件夹进行同样的请求,这隐含对在其内包含的子文件夹的动作。存在三个固定的“状态”,其包括1)固定的——指示用户承诺将使得该内容离线可用,2)未指定的——没有进行用户承诺,以及3)未固定的——其向用户承诺新的服务内容将不会被水化。为了支持该标记,文件系统将添加新的属性:file_attribute_pinned,并且file_attribute_offline的存在将被用在文件夹上以指示文件夹何时是未固定的。固定的概念是本地机器状态并且不期望其跨机器同步。另外,应当注意的是,具有固定(pinned)和离线(offline)位组两者的文件夹被假定是“插针的”,即使系统代码将不会具体地建立该状态,但是应该预期其是可能的。

存在可以由针对文件和文件夹的框架所展现的多种用户操作以及其产生的行为。例如,文件上下文菜单命令可以包括“使得离线可用”以及“使得仅在线可用”。使得离线可用的命令使系统将文件设置为“固定的”并且确保文件总是离线可用的,并且使文件在当前不可用的情况下立即被下载。使得仅在线可用的命令使系统“设置未指定的请求脱水”并且使系统释放文件当前占用的磁盘空间。

文件夹内容菜单命令也可以包括“使得离线可用”和“使得仅在线可用”命令。在该情况下,使得离线可用的命令反复地将所有文件和文件夹设置为“固定的”,并且确保在该子树下的所有当前的和未来的文件都是离线可用的。与此相反,使得仅在线可用的命令反复地将所有文件设置为“未指定的”,并为每个文件请求脱水,以及反复地将所有文件夹设置为“未固定的”。显然,对该命令的选择从该子树中的所有文件释放磁盘空间并且确保未来服务的文件不占据磁盘空间。

继承规则在文件或文件夹操作时被执行,并且因此由文件系统过滤器确保为跨多个云存储提供商而提供一致的实现。文件操作包括“新文件”以及“将文件复制或移动至新的父文件夹”。针对操作“新文件”,如果父文件夹固定状态为“固定的”,则新文件也将是“固定的”。如果父文件夹固定状态是未指定或未固定的,则将向新的文件分配“未指定的”固定状态。针对“将文件复制或移动至新的父文件夹”的操作,如果文件的当前状态是固定的,则产生的固定状态也将是固定的,而不管父文件夹固定状态。然而,如果文件的当前状态是未指定的,则在父固定状态为固定的情况下,产生的固定状态将是固定的,并且如果父固定状态是未指定的或未固定的,则产生的固定状态将是未指定的。

文件夹操作包括“新文件夹”和“将文件夹复制或移动至新的父文件夹”。针对“新文件夹”的操作,如果父文件夹固定状态是“固定的”,则新文件夹也将是“固定的”,如果父文件夹固定状态是未指定的,则将向新文件夹分配“未指定的”固定状态,并且如果父文件固定状态是未固定的,则将向新文件夹分配未固定的固定状态。对于操作“将文件夹复制或移动至新的父文件夹”,如果文件夹的当前状态是固定的,则产生的文件夹的固定状态也将是固定的,而不管父文件夹的固定状态。然而,如果文件夹的当前状态是未指定的,则在父固定状态是固定的时,所产生的文件夹的固定状态将是固定的,在父固定状态是未指定的时,所产生的文件夹的固定状态将是未指定的,或者在父固定状态是未固定的时,所产生的文件夹的固定状态将是未固定的。如果文件夹的当前状态是未固定的,则所产生的固定状态也将是未固定的,而不管父文件夹的状态。

同步引擎预期为如下所述:1)留意尚未被水化的文件上的固定的状态的到达(file_attribute_pinned)。将文件排队用于水化。将不是由用户直接驱动的水化请求优先化在水化之上;2)提示将处于固定的状态的文件脱水(需要清理它并询问用户是否可以);3)提示对到达未固定的文件夹的新文件进行水化;4)实现框架将用于请求脱水的明确的脱水请求api。该api是针对不可用于脱水(等待同步)的文件而调用的。

文件系统表示被配置为表示关键视觉状态。文件或文件夹与单个主要状态相关联。在实现中,次要定制状态被支持并且次要定制状态可以与主要状态指示符一起被表示。

对状态的确定可以基于诸如数据库、表格、共享的库、或其他结构之类的映射数据结构来进行。映射数据结构将文件同步属性映射至对应的状态和状态指示符。映射数据结构映射还定义了用于状态评估的确定逻辑。因此,一旦发现了项目的属性,就可以参考映射数据结构来查找合适的状态并且将该状态分配至该项目。映射数据结构可以被实现为诸如在上文在图4中所示出的示例之类的表格。在一个方法中,映射数据结构定义了以确定性的方式使用的经排序的状态列表,以向文件分配状态。当采用该经排序的列表时,通过以所定义的顺序针对映射数据结构中的状态对文件同步属性进行评估来进行对文件的状态的确定,直到找到匹配的状态为止。接着,匹配的状态被选择并且被分配至文件。

图4的表格基于如由确定逻辑指定的对属性的评估来表示状态到状态指示符的映射。在该示例中,表格被配置用于对文件和文件夹的确定性分析。也可以预期到用于将属性匹配至状态的其他方法。状态指示符旨在作为说明性示例并且不同的指示符可以跨不同的场景和实现来使用。

要注意的是,示例表格中的一些状态具有相同的视觉指示符,但是被分开表示以允许1)在描述性文本(例如,工具提示)中对更加详细的状态信息的使用,以及2)如果需要的话,对有差异的视觉状态的简单介绍。

现在考虑,针对名称空间填充的示例过程:

1)同步引擎在名称空间下创建针对同步管理的文件和文件夹的占位符。总是将文件作为部分占位符开始以加快名称空间填充。要注意的是,同步引擎在该时段为其同步根注册了一标语(banner)以指示用户的数据尚未完成(避免对数据丢失的恐惧)。

2)一旦已经完整地创建了部分占位符,同步引擎就下载并应用补充同步属性和文件格式属性。针对将下载其主要数据流的文件而可选地跳过文件格式属性。

3)同步引擎可选地将下载排队并且基于支持为用户最有价值的内容(文档、最近等)建立完整的占位符的启发式方法来请求文件的主要数据流的水化,并同时充分考虑到磁盘和网络利用要求。在该步骤中,同步引擎可以可选地对其意图填充的所有文件设置易失性属性:等待下载。同步引擎还可以请求对等待下载的每个文件的水化,以为了吞吐量而并行地运行少量的请求。可以由框架自动地设置下载进度易失性属性。完成对文件的水化自动地移除等待下载和下载进度属性。

现在考虑用于检测本地改变的示例过程:

同步引擎将留意不具有file_attribute_in_sync属性的文件或文件夹的到达(意味着新的内容将被上传或者可能需要上传的对现有内容的修改)。当将文件修改上传时,随着文件的内容被上传而设置易失性属性:上传进度。

一旦已经将新内容或改变与服务进行了同步,则调用文件系统占位符api以确认该内容与服务同步并设置file_attribute_in_sync属性。由框架自动地清理上传进度易失性属性。

在上文的示例中,可以利用现有的监控系统执行步骤1,但是file_attribute_in_sync也可以用于对此进行优化。

现在考虑用于检测服务改变的示例过程。

1)同步引擎进行监控器以发现服务改变。

新文件:

2)针对新文件,同步引擎与上文的“名称空间填充”相同地进行,有一个例外是:如果父文件夹被标记为固定的或未固定的,则已经决定了水化决策(执行步骤3)。针对未指定的,相同的启发式方法适用。

补充属性改变:

如果发现了补充属性改变,则同步引擎直接更新这些属性,而没有其他状态转换。

纯粹的重命名、属性、或时间改变:

4)一旦共享规则允许,则同步引擎直接执行重命名或属性改变。当分享规则阻止改变反映等待操作时,易失性属性:“等待下载”被设置。该转换使用文件系统提供的api以避免将其当作用户修改或者立即确认这些改变是通过同步提供的。

修改的文件——未固定的

5)一旦共享规则允许,则对未明确固定的文件的修改利用单个文件系统api进行,以强制进行脱水和核心属性改变(大小、日期等)。当共享规则阻止改变时,易失性属性:“等待下载”应当被设置。

6)接着,同步引擎与上文的“名称空间填充”场景相同地进行,以决定是否重新下载主要数据流或者获取文件格式属性。该确定是同步引擎所拥有的启发式方法。

修改的文件——固定的7)易失性属性:“等待下载”被设置。

2)同步引擎应该将另外的新的文件下载到临时位置中,一旦共享规则允许,则对现有的下载进行文件替换。该替换将确认文件在同步并且自动地清理“等待下载”属性。

在考虑了示例环境、场景、用户界面、和示例实现之后,现在考虑根据一个或多个实施例的对用于云内容状态确定逻辑的一些示例过程的讨论。

示例过程

以下讨论描述了可以使用先前描述的系统和设备来实现的云内容状态技术。所述过程中的每个的方面可以以硬件、固件、或软件、或者其组合来实现。所述过程被示出为指定由一个或多个设备所执行的操作的一组框,并且其不一定限于所示出的用于通过相应的框执行操作的顺序。在以下讨论的部分中,可以参考关于图1至5所讨论的示例环境、场景、和用户界面。在至少一些实施例中,可以通过适当地配置的计算设备来执行所述过程,所述计算设备例如包括或以其他方式使用文件系统114、云内容管理器115、和/或状态确定模块209的客户端设备。

一般而言,可以在该部分中所描述的示例过程的上下文中采用关于上文和下文的示例所描述的功能、特征、和概念。此外,关于该文档中的不同附图和示例描述的功能、特征、和概念可以彼此互换,并且不限于在特定的附图或过程的上下文中的实现。此外,与本文中不同的代表性过程和对应附图相关联的框可以一起被应用和/或以不同的方式被组合。因此,在本文中关于不同的示例环境、设备、组件、附图、和过程所描述的个体功能、特征、和概念可以以任何合适的组合来使用,并且不限于由该说明书中枚举的示例所表示的特定组合。

图6是描绘了根据一个或多个实现的用于确定云内容状态的示例过程的流程图。实现了计算设备的框架,其可操作以管理经由计算设备从多个云内容存储服务可访问的云内容文件的状态,并且输出具有云内容文件的文件系统表示的状态指示符(框602)。例如,如在本文中所描述的框架可以以各种方式来实现。在一个方法中,框架被实现为计算设备的操作系统110的组件。框架可以经由包括有操作系统110的云内容管理器115来实现,或者以其他方式由操作系统调用以将该框架实例化。云内容管理器115可以可替代地被提供为被设计以实现该框架的独立的应用。在一个或多个实现中,由框架所支持的状态包括指示由框架所提供的同步状态的一组主要状态206。云内容文件包括通过网络与多个云存储服务同步的内容,以促进跨多个设备对云内容文件的在线访问。主要状态206是由框架/os定义的并且由框架/os控制以跨多个云存储服务使用。

结合对被配置为根据经由框架实现的确定逻辑来显示云内容文件的文件系统表示的用户界面的渲染来确定与云内容文件相关联的状态(框604),并且在用户界面中与云内容文件的文件系统表示一起展现反映所识别的状态的状态指示符(框606)。例如,框架可以被配置为跨如先前所描述的文件系统表示的多个不同的视图来展现状态指示符212。可以通过计算设备的操作系统110和/或一个或多个其他应用112来使得不同的视图可用。

在实现中,框架可以操作以与云存储提供商交互,并且对个体的文件进行评估以确定对应的状态。可以根据能够经由映射数据结构(例如,关于图4所讨论的示例表格402)指定的确定逻辑来进行上述评估。还可以根据定义各种状态的状态定义204来进行上述评估。基于上述评估,框架可以将元数据与云内容文件相关联以反映所识别的状态。接着,为了展现状态指示符212,框架可以执行进一步的操作以解析元数据并且确定与云内容文件相关联的状态、参考状态定义204将状态映射至对应的状态指示符、以及渲染项目以在用户界面120中表示云内容文件以及对应的状态指示符212。

特别地,图7是描绘了根据一个或多个实现的在其中采用映射数据结构以用于云内容状态确定的示例过程700的流程图。定义了将指示云内容文件的同步状态的主要状态与对应的文件同步属性和状态指示符相关的映射数据结构(框702)。例如,操作系统110可以实现用于代表云存储提供商来管理的云内容118的框架。框架还被设计为实现映射数据结构,例如先前在本文中所描述的示例表格402。映射数据结构可以以各种方式来配置,以将一组主要状态206与文件同步属性和用于状态的视觉表示的指示符相关。映射数据结构是经由框架提供的,以供跨多个云存储服务使用。

结合经由计算设备的文件系统对云内容文件的管理,检测与云内容文件相关联的文件同步属性(框704)。例如,状态确定模块209或者经由框架实现的其他功能可以评估与文件相关联的元数据,以确定指示文件的当前状态的不同属性的值。对元数据进行评估可以包括从一个或多个源解析元数据以确定指示云内容文件的当前状态的文件同步属性。接着,参考该映射数据结构,将针对云内容文件所识别的文件同步属性与对应的状态进行匹配。

特别地,通过将检测到的文件同步属性匹配至由映射数据结构所指示的对应的主要状态来将主要状态分配至云内容文件(框706)。如所记录的,所述匹配可以通过循环通过提供状态的经排序的列表的映射数据结构中的状态条目来进行。以该方式,以确定性方式将文件同步属性匹配至对应的属性。另外地或可替代地,可以将映射数据结构提供为使能对与给定的一组属性相对应的状态的查找的表格或数据库。在另一方法中,一些属性值可以操作被映射至特定状态的键(key)或标识符。因此,映射数据结构可以以各种方式来配置以促进状态确定以及状态向云内容的分配。

接着,与云内容文件的文件系统表示相关联地输出指示被分配至云内容文件的主要状态的状态指示符(框708)。例如,可以结合如先前所记录的各种ui和应用来呈现状态指示符212。特别地,可以结合经由操作系统可获得的文件系统表示的多个不同视图来输出指示主要状态206的状态指示符212。所述视图可以至少包括诸如图5中的示例之类的图标视图以及列表视图、细节视图、和经由文件系统所提供的其他视图选项。还可以跨用户体验结合其他文件系统表示来采用状态指示符212,其包括但不限于:最近项目的列表;与生产力应用和其他应用112相关联的文件导航功能;插针至任务栏的项目、开始栏、以及其他的用户界面结构;最喜欢的列表;以及桌面图标等。

在考虑了一些示例过程之后,现在考虑对可以用于实现用于识别在本文中所描述的云内容的技术的实施例的示例系统和系统的组件的讨论。

示例系统和设备

图8在800处一般性地示出了示例系统,其包括代表可以实现在本文中所描述的各种技术的一个或多个计算系统和/或设备的示例计算设备802。计算设备802可以是例如服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统、和/或任何其他合适的计算设备或计算系统。

如图所示的示例计算设备802包括彼此通信地耦合的处理系统804、一个或多个计算机可读介质806、以及一个或多个i/o接口808。尽管未示出,计算设备802还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传输系统。系统总线可以包括不同的总线结构中的任何一个或组合,所述不同的总线结构例如存储器总线或存储器控制器、外围总线、通用串行总线、和/或使用多种总线架构中的任何一种的处理器或本地总线。还可以构想多种其他示例,例如,控制和数据线路。

处理系统804代表用于使用硬件来执行一个或多个操作的功能。从而,处理系统804被示出为包括可以被配置为处理器、功能块等的硬件元件810。这可以包括以硬件来作为专用集成电路或者使用一个或多个半导体形成的其他逻辑设备的实现。硬件元件810不由形成其的材料或者其中所采用的处理机制来限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(ic))构成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读介质806被示出为包括存储器/存储设备812。存储器/存储设备812表示与一个或多个计算机可读介质相关联的存储器/存储设备容量。存储器/存储设备812可以包括易失性介质(例如,随机存取存储器(ram))和/或非易失性介质(例如,只读存储器(rom)、闪速存储器、光盘、磁盘等)。存储器/存储设备812可以包括固定的介质(例如,ram、rom、固定的硬盘驱动器等)以及可移动介质(例如,闪速存储器、可移动硬盘驱动器、光盘等)。计算机可读介质806可以以如在下文中所进一步描述的多种其他的方式来配置。

输入/输出接口808代表用于允许用户向计算设备802输入命令和信息,并且还允许利用各种输入/输出设备向用户和/或其他组件或设备呈现该信息的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置以对物理接触进行检测的电容或其他传感器)、相机(例如,可以采用可见或非可见波长(例如,红外频率)来检测运动不包含作为手势的触摸的)等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网络卡、触觉反应设备等。因此,计算设备802可以用如在下文中所进一步描述的多种方式被配置以支持用户交互。

可以在本文中在软件、硬件元件、或程序模块的一般性的上下文中描述各种技术。通常而言,这样的技术包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、元件、组件、数据结构等。如在本文中所使用的术语“模块”、“功能”、和“组件”通常表示软件、固件、硬件、或其组合。在本文中所描述的技术的特征是与平台无关的,意思是可以在具有多种处理器的多种商业计算平台上实现这些技术。

所描述的模块和技术的实现可以存储在一些形式的计算机可读介质上或者跨一些形式的计算机可读介质传输。计算机可读介质可以包括可以由计算设备802访问的多种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“通信介质”。

“计算机可读存储介质”指的是与仅仅是信号传输、载波、或信号本身相反的支持信息的存储的介质和/或设备。计算机可读存储介质不包括信号承载介质、瞬时性信号、或信号本身。计算机可读存储介质包括以适合于存储信息(例如,计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据)的方法或技术实现的硬件,例如易失性和非易失性、可移动和不可移动介质和/或存储设备。计算机可读存储介质的示例可以包括但不限于,ram、rom、eeprom、闪速存储器、或者其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储、硬盘、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者其他存储设备、有形的介质、或者适合于存储期望的信息并且可以由计算机访问的制品。

“通信介质”可以指的是被配置以将指令传输(例如,经由网络)至计算机设备802的硬件的信号承载介质。通信介质通常可以实施计算机可读指令、数据结构、程序模块、或经调制的数据信号中的其他数据,例如,载波、数据信号、或其他传输机制。通信介质还包括任何信息传递介质。术语“经调制的数据信号”意指将其特征中的一个或多个以将信息编码在信号中的方式来设置或改变的信号。作为示例而非限制,通信介质包括有线介质(例如,有线网络或直接连接)和无线介质(例如,声学、射频(rf)、红外、和其他无线介质)。

如前所述,硬件元件811和计算机可读介质806代表以硬件形式实现的指令、模块、可编程设备逻辑和/或固定的设备逻辑,其可以在一些实施例中被采用以实现在本文中所描述的技术中的至少一些方面。硬件元件可以包括集成电路或片上系统的组件、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑设备(cpld)、以及硅或其他硬件设备中的其他实现。在该上下文中,硬件元件可以运行为执行由指令、模块、和/或逻辑所定义的程序任务的处理设备,所述指令、模块和/或逻辑由被使用以存储指令以用于执行的硬件元件以及硬件设备(例如,之前所描述的计算机可读存储介质)来实施。

也可以采用上述的组合来实现在本文中所描述的各种技术和模块。从而,软件、硬件、或程序模块(其包括应用112、文件系统114、云内容管理器115、状态确定模块209)和其他程序模块可以被实现为在某种形式的计算机可读存储介质上实施和/或由一个或多个硬件元件810实施的一个或多个指令和/或逻辑。计算设备802可以被配置以实现对应于软件和/或硬件模块的特定的指令和/或功能。从而,能够由计算设备802作为软件执行的模块作为模块的实现可以至少部分地以硬件(例如,通过对处理系统的计算机可读存储介质和/或硬件元件810的使用)来完成。指令和/或功能可以由制品(例如,一个或多个计算设备802和/或处理系统804)执行/操作以实现在本文中所描述的技术、模块、和示例。

如在图8中进一步示出的,当在个人计算机(pc)、电视设备、和/或移动设备上运行应用时,示例系统800支持针对无缝的用户体验的普遍的环境。对于当在使用应用程序、玩可视游戏、观看视频等的过程中从一个设备转移到下一个时的普通的用户体验而言,服务和应用在所有三种环境中大体相似地运行。

在示例系统800中,多个设备通过中央计算设备被互连。中央计算设备可以对于多个设备来说是本地的或者可以远程于多个设备。在一个实施例中,中央计算设备可以是通过网络、互联网、或其他数据通信链路连接至多个设备的一个或多个服务器计算机的云。

在一个实施例中,该互连架构支持待跨多个设备而被传递以向多个设备的用户提供共同和无缝的体验的功能。多个设备中的每个都可以具有不同的物理要求和能力,并且中央计算设备使用平台以使能够将既针对该设备定制并且还对所有设备共同的体验传递至设备。在一个实施例中,创建了一类目标设备,并且针对一般类型的设备来定制体验。可以由设备的物理特征、使用类型、或者其他共同的特性来定义设备的类。

在各种实现中,计算设备802可以假设多种不同的配置,例如,以供计算机814、移动816、以及电视818使用。这些配置中的每个都包括可以具有一般不同结构和能力的设备,并且因此计算设备802可以根据不同的设备类中的一个或多个而被配置。例如,计算设备802可以被实现为设备的计算机814类,该类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。

计算设备802还可以被实现为设备的移动816类,该类包括移动设备,例如,移动电话、便携式音乐播放机、便携式游戏设备、平板计算机、多屏幕计算机等。计算设备802还可以被实现为设备的电视818类,其包括具有或连接至随意查看环境中的通常较大的屏幕的设备的。这些设备包括电视、机顶盒、游戏控制器等。

在本文中所描述的技术可以由计算设备802的这些各种配置支持,并且不限于在本文中所描述的技术的具体的示例。这是通过将云内容管理器115包含在计算设备802上所示出的。云内容管理器和其他模块的功能还可以全部或部分地通过对分布式系统的使用(例如,如在下文中所描述的通过经由平台822的“云”820)而被实现。

云820包括和/或代表资源824的平台822。平台822提取了云820的硬件(例如,服务器)和软件资源的基础功能。资源824可以包括当在远程于计算设备802的服务器上执行计算机处理时可以被使用的应用和/或数据。资源824还可以包括通过互联网和/或通过订阅者网络(例如,蜂窝或wi-fi网络)提供的服务。

平台822可以提取资源和功能以将计算设备802与其他计算设备进行连接。平台822还可以用来提取资源的放缩,以对针对经由平台822所实现的资源824的所遇到的需求而提供对应的放缩等级。从而,在经互连的设备实施例中,在本文中所描述的功能的实现可以遍布系统800而分布。例如,功能可以被部分地在计算设备802上被实现,以及经由提取云820的功能的平台822而被实现。

结语

尽管已经用特定于结构特性和/或方法动作的语言描述了本主题,但应当理解的是,在所附权利要求中定义的主题不一定限于在上文中所描述的具体特征或动作。相反,在上文中所描述的具体特性和动作是作为实现权利要求和实施例的示例形式而公开的。

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