普及环境中的元数据驱动版本管理服务的方法和系统的制作方法

文档序号:6540650阅读:168来源:国知局
普及环境中的元数据驱动版本管理服务的方法和系统的制作方法
【专利摘要】元数据驱动版本管理服务基于设备属性、计算环境以及与被版本处理的文件关联的元数据来确定要执行的一个或多个版本操作。版本管理服务允许不同的设备基于不同的设备属性来执行不同的版本操作。
【专利说明】普及环境中的元数据驱动版本管理服务的方法和系统

【技术领域】
[0001]本发明一般涉及计算机和计算机应用,且更具体地涉及普及(pervasive)环境中的数据的版本管理。

【背景技术】
[0002]普及环境包括移动、桌面设备、工作站(例如在办公室或家庭等)、膝上型电脑、平板电脑、智能电话以及其他这样的设备的集合。在普及环境中需要为多种设备管理多种文件,例如不只是文本文件,还包括丰富文本文档、照片、音乐、视频等。此外,相同的文件可能有很多版本,因为这些文件被频繁地更新或更改。理想地,人们希望保存所有版本;在用户访问它们之前总是将版本预取到本地存储;以及总是将所有版本备份到多个位置以提供更高的可用性。但是,这样理想的供应是昂贵的,并且可能无法提供高效的解决方案。
[0003]已知的系统例如DR0PB0X提供文件仓库,其仅保存最近的版本并为每个设备同步文件,g卩,在每个设备中复制文件。另一已知的系统例如ICLOUD仅为系统内置应用提供应用数据仓库并在所有设备中维护相同的数据,而不管该数据的使用。
[0004]尽管在所有其他设备上同步设备的修改文件会最大化文件可用性,这样的机制没有考虑其他方面,例如回滚到更早版本的能力、用于移动设备最佳使用的电池和带宽、同步的数据是否在所有设备上有用(例如,如在移动设备没有用于某些格式的多媒体数据的播放器的示例情形下,某些数据在特定设备上不会有任何用途)。


【发明内容】

[0005]在一方面,一种用于元数据驱动版本管理服务的方法可以包括通过给定的文件通用标识和存储位置来访问用于同步的普及计算环境中使用的文件。该方法还可以包括提取与该文件关联的元数据。该方法还可以包括基于与文件关联的元数据、与被同步的设备关联的一个或多个特性以及普及计算环境的一个或多个特征,确定是否通过在被同步的设备上本地保存文件的增量、或者通过在被同步的设备上本地保存文件的整个副本、或者通过保存两者来进行同步。该方法还可以包括基于确定是否通过在被同步的设备上本地保存文件的增量或者通过在被同步的设备上本地保存文件的整个副本来进行同步,来确定一个或多个版本操作。该方法还可以包括执行一个或多个版本操作,以在被同步的设备上同步文件。
[0006]在一方面,一种用于元数据驱动版本管理服务的系统可以包括版本管理模块,其可操作地在处理器上执行,并且还可操作地通过给定的文件通用标识和存储位置来访问用于同步的普及计算环境中使用的文件。该版本管理模块还可操作地提取与该文件关联的元数据。该版本管理模块还可操作地基于与文件关联的元数据、与被同步的设备关联的一个或多个特性以及普及计算环境的一个或多个特征,确定是否通过在被同步的设备上本地保存文件的增量、或者通过在被同步的设备上本地保存文件的整个副本、或者通过保存两者来进行同步。该版本管理模块还可操作地基于确定是否通过在被同步的设备上本地保存文件的增量或者通过在被同步的设备上本地保存文件的整个副本来进行同步,来确定一个或多个版本操作。该版本管理模块还可操作地执行一个或多个版本操作,以在被同步的设备上同步文件。
[0007]还可以提供一种存储指令程序的计算机可读存储介质,该指令程序可被机器执行以执行这里描述的一种或多种方法。
[0008]下面参考附图来更详细地描述各个实施例的更多特征以及结构和操作。在图中,相同的参考标号表示相同或功能类似的元件。

【专利附图】

【附图说明】
[0009]图1示出了本公开的一个实施例中的系统架构。
[0010]图2是示出一个实施例中的本公开的自动版本管理的方法的流程图。
[0011]图3是示出本公开的一个实施例中用于准备摘要(su_ary)的方法的流程图。
[0012]图4是示出根据本公开的一个实施例中用于准备整个文件的方法的流程图。
[0013]图5A、5B、5C、ro示出了用于维护文件版本的不同方法的例子。
[0014]图6示出了本公开的一个实施例中的示例性用例。
[0015]图7示出了本公开的一个实施例中的另一示例性用例。
[0016]图8示出了可以实现本公开的一个实施例的系统的示例性计算机或处理系统的示意图。

【具体实施方式】
[0017]可以提供一种设备之间的统一文件版本管理服务。在本公开的一个实施例中,元数据驱动版本管理服务及其方法可以包括通过分配或给出文件副本的通用标识(id)和位置来访问文件,提取并维护文件的元数据,其中,元数据可以包括文件内容的类型、版本和相关增量、大小、所有者、来源(provenance)、文件冗余以及/或者关于文件的其他信息。简单来说,增量或增量文件仅包含对文件或数据做出的当前更改。于是,增量包括已经从之前的内容改变的部分。响应于文件被更新或更改,可以决定是否针对文件保存增量、完整文件或两者。可以决定在哪些设备中应执行哪个版本操作,其中,操作可以包括下载/上传增量、下载/上传完整副本、以及供应(provision)/解除供应(de-provision)。例如,可以通过考虑设备的一个或多个特性或属性(例如位置、电池容量等)、网络带宽、以及数据传输成本,决定何时应执行操作。可以基于所确定的决定来执行一个或多个版本管理操作。
[0018]普及环境中的版本管理操作一般包括创建新版本、上传和/或下载、供应和/或解除供应、以及形成摘要(smnmarization),其可以执行部分同步。创建新版本例如可以包括创建文件或数据的新副本,该副本是最新版本的完整副本,或者创建带有增量(即仅更改)的老副本。上传可以包括将完整副本版本或增量上传到其他设备和/或中心仓库。下载可以包括将完整副本版本或增量下载到一台或多台其他设备的本地存储。供应和/或解除供应可以包括处理安全问题,例如当设备处于不完全的网络时,可以使保密文件变得不可访问(例如被解除供应)。在安全网络中,可以使某些内容变得可访问(例如被供应)。形成摘要可以包括上传和/或下载文件版本的摘要,例如电子邮件的前几行、视频文件的一个或多个屏幕快照、音频文件的前几分钟等。
[0019]在一方面,在本公开的一个实施例中自动提供的决定可以包括是否维护文件的增量或完整副本(或数据的另一表示),例如,在创建新版本时是否仅维护增量(更改)或创建新的完整副本。在本公开的一个实施例中可以自动提供的另一决定可以包括决定需要哪种操作。例如可以基于对目标设备中的文件使用模式的理解来做出该决定。例如,可决定仅当在目标设备中有潜在使用时,才下载文件。例如还可以基于对文件丢失风险的理解来做出决定。例如,如果它是在移动设备上的单个副本(例如没有可用的备份副本),则可以决定尽快将其上传到其他设备。作为另一个例子,当设备处于不安全环境中例如网络未被保护时,可以决定移除(解除供应)包含保密信息的文件。
[0020]在本公开的一个实施例中可以自动提供的又一决定可以包括决定应在何时执行操作。例如,为了节省成本,可以决定在离开WIFI环境之前安排文件下载。对应当在何时执行操作的决定还可以基于对目标设备中的带宽、电源/电池容量等的理解。例如,可以仅在合适的网络带宽和/或电源(电池)容量可用时才触发操作。
[0021]图1示出了本公开的一个实施例中的系统结构。一个实施例中的本公开的版本管理器可用于多种设备。例如,移动设备102可以包括版本管理器104,其处理移动设备的本地文件系统106中存储的文件的版本管理。移动设备102还包括与本地文件系统106中存储的文件关联的元数据文件108。一个实施例中的本公开的方法可以通过检查与本地文件系统106中存储的文件关联的数据和信息来创建元数据文件108。
[0022]类似地,桌面设备110可以包括本公开的版本管理器112,用于管理桌面设备110的本地文件系统114中存储的文件。元数据文件116存储与在桌面设备110的本地文件系统114中存储的文件关联的信息。
[0023]本公开的版本管理器还可被部署于网络级别例如服务器118上。版本管理器120可以管理在服务器118的文件系统122上存储的文件,并且还可以包括与文件系统中的文件关联的元数据文件124。
[0024]版本管理器104、112和118是本公开的相同统一版本管理器的实例。但是,这些版本管理器104、112、118可以表现不同,并基于上下文和环境例如特定设备的特性、网络条件和特性、其管理的特定文件的特性和属性来执行不同的功能或操作,所述版本管理器部署于所述特定设备上并管理其文件。
[0025]元数据108、116、124例如可提供与文件关联的信息,例如大小、所有者、来源、内容类型(例如是否是音频、视频、文本和/或其他)、更新内容、更新频率、更新发起者等、冗余(例如存储了文件的多少个副本和存储在哪儿)、谁在哪个设备上具有副本、版本信息等。来源描述了对象(文件)如何进入其当前状态。于是,它描述对象(文件)随时间的演进。此外,本公开的方法还可包括自动维护元数据。
[0026]在桌面和移动设备中,本公开的版本管理器(例如104、112)的输入都可以包括文件的元数据、诸如上下文/场景等信息、用户的活动模式、日程安排、用户偏好以及其他信息。可以通过设备的一个或多个传感器来检测上下文/场景。例如,移动设备可以检测其电池电量水平、其网络带宽、其位置(例如通过全球定位系统等来检测)。在一方面,本公开的方法可以提供节省成本的最佳版本管理操作。例如,版本管理器可以最小化电池消耗同时最大化应用的本地文件访问的机会。版本管理器还可以通过执行合适的版本操作来提供节省成本的带宽利用。在另一方面,可以提供最大的文件可用性,而同时遵循安全和隐私策略。文件可被提前预取到本地存储,例如在适于利用网络可用性的时候。在又一方面,本公开的版本管理器基于不同上下文和特性来执行的不同操作对于用户来说可以是透明的,即,对终端用户隐藏。于是,终端用户可以仅看到效果或结果。
[0027]图2是示出一个实施例中的本公开的自动版本管理的方法的流程图。一个实施例中的方法提供了元数据驱动版本管理服务。在202,接收与被版本处理(version)(例如与更新一起保存)的文件关联的通用标识或标识符(ID)以及该文件的位置。通用标识可以是如通用唯一标识符(UUID)。文件例如被用于普及计算环境。文件的位置是文件当前被存储以及被更新的位置,例如,文件被更改的位置,并且该文件需要从这儿例如与其他设备中的相同更新或文件副本进行同步。该文件例如在一个移动设备上更新,并且需要在不同的移动设备(所述移动设备具有该文件的其本地部分)上同步。
[0028]在204,通过使用给定或接收到的文件副本的通用标识和存储位置从该位置访问文件,并提取与该文件关联的元数据。元数据可以包括文件内容的类型、一个或多个版本以及相关的增量、大小、所有者、来源以及文件的冗余。
[0029]该方法可以包括基于与文件关联的元数据(在204提取的)以及普及计算环境的一个或多个特征,确定是否通过在(使用更新进行同步的)设备上本地保存文件的增量或通过在(使用更新进行同步的)设备上本地保存整个文件来进行同步。例如,在206,确定是否应创建文件的摘要,并且响应于确定要创建文件的摘要,在208生成文件摘要并且在210复制文件摘要。该确定例如考虑了网络的特征、普及计算环境、移动设备运行所在的网络以及其本地文件正被同步的移动设备的特性或特征。在212,例如基于存储位置和元数据来确定是否复制整个文件,并且响应于确定要复制整个文件,在214复制整个文件。
[0030]在一方面,可在其文件被同步的每台设备上执行206和212的确定。于是,即使在若干个不同设备之间同步相同文件时,可以基于其特征针对不同设备做出不同的确定或决定。
[0031]在216,该方法还可以包括确定为哪个设备执行哪种类型的版本操作。于是,针对使用相同文件进行同步的不同设备,可以基于与这些不同设备关联的不同特征来自动选择不同的版本操作。版本操作例如可以包括下载/上传文件的增量或完整副本、以及/或者供应或解除供应。还可以根据设备的一个或多个特性(例如位置、当前电池电量水平、电池容量等)、网络带宽以及/或者数据传输成本来决定或确定何时应在哪个设备上执行操作。
[0032]在218,可以基于确定是否通过在设备上本地保存文件的增量或通过在设备上本地保存整个文件来同步,来执行一个或多个操作。
[0033]图3是示出本公开的一个实施例中的用于确定何时或是否复制摘要的方法的流程图。该过程确定摘要是否应被保存(复制)到被同步的设备中。相同的过程还可被用于确定是否仅在被同步的设备中保存(复制)增量。在302,准备文件摘要。例如,现代文件系统中的每个文件具有与之关联的一系列属性(或元数据,例如大小、所有者、介质类型等)。这被称为“摘要”。在准备文件摘要时,提取这样的文件属性(元数据)。在304,使用公式来执行计算,以自动确定是否复制文件的摘要,例如,将摘要复制到其文件被同步的移动设备上。公式可以测试[文件大小(比特)/带宽(比特每秒(bps))]*每比特的能耗=C是否大于可配置的参数D乘上当前的电池功率(用B来表示)。在上述公式中,“文件大小”是摘要文件的大小。“带宽”是移动设备当前提供的最佳可用传输速率。“每比特的能耗”是设备发送一比特所使用的能量;能耗可以在设备之间不同,并且可以在当前由设备提供。表示乘法操作(在另一实施例中,可以使用另一操作)。可配置参数D的示例值可以是D=10%。用户例如可以基于用户偏好在用户简档中预先配置该值。如果在304,OD X B,在306确定是否满足用户简档中的带宽(用户指定的值)。该带宽可以是例如基于用户偏好在用户简档中预先配置的另一个值。如果在304C不大于D X B,确定不应在此时复制摘要。该方法回到302,其中该过程等待下一情形来进行另一确定。
[0034]如果在306满足用户简档中的带宽,则在其文件被同步的移动设备上复制摘要。否则,方法回到302。
[0035]图4是示出本公开的一个实施例中的用于确定是否复制整个文件的方法的流程图。在402,准备文件,例如检查文件以验证该文件包括更新的成分或部分,并且是最后的完整文件。如果需要,文件压缩可被应用于该文件,以压缩文件并使大小更小。在404,确定其本地文件正被同步(例如与另一设备上对相同文件(相同文件的副本)进行的最后更新进行同步)的设备是否在安全区域中,例如被加密或其他机制保护从而从/向该设备传输的数据不能被容易地截获。如果在404确定该设备处于安全区域中,在406确定是否满足标准。该标准例如测试[文件大小(比特)/带宽(比特每秒(bps)) ]*每比特的能耗=C是否大于可配置的参数D乘上当前的电池功率(用B来表示)。在上述公式中,“文件大小”是整个文件的大小。带宽是移动设备当前提供的最佳可用传输速率。“每比特的能耗”是设备发送一比特所使用的能量;能耗可以在设备之间不同,并且可以在当前由设备提供。可配置参数D的示例值可以是D=10%。用户例如可以基于用户偏好在用户简档中预先配置该值。如果是这样,在408确定是否满足用户简档中的带宽(用户指定的值)。该带宽可以是例如基于用户偏好在用户简档中预先配置的另一个值。如果是这样,在410,在其文件被同步的移动设备上复制整个文件。否则,确定不应复制整个文件,并且该方法回到402,在此它等待下一次确定。如果在406,C不大于D X B,确定不应复制整个文件,并且方法回到402,在此它等待下一次确定。
[0036]在412,响应于确定设备不在安全区域中,确定复制摘要是否适用。例如,如果设备不在安全区域中,将不复制整个文件,因为该文件可能包含敏感信息,或应该保护的这种信息。如果是这样,在414,复制摘要。否则,该方法回到402,并等待确定的下一情形。
[0037]响应于确定不应保存整个文件,例如,由于设备不在安全区域中并且/或者由于带宽和/或功率能力不够,则仅有增量文件被下载/上传以用于同步。另一方面,如果确定应当复制整个文件(下载/上传到被同步的设备),还可以确定是否应保存增量文件。如果是这样,完全更新的文件(整个文件)以及增量文件(更新)都被下载/上传。在本公开中,术语增量、更新和更改被可交换地使用。
[0038]图5A、5B、5C、ro示出了用于维护文件版本的不同方法的例子。例子示出了维护文件的四个版本的多种方法。图5A示出了在每个阶段保存更新版本的完整副本。例如,在阶段I保存文件vl.1,其是文件Vl的带有增量vl.1中的更改的更新版本。类似地,在第2阶段保存文件vl.2,其是文件vl.1的带有增量vl.2中的更改的更新版本。类似地,在第3阶段保存文件vl.3,其是文件vl.2的带有增量vl.3中的更改的更新版本。
[0039]图5B示出了在不同版本处理阶段采用的混合方法。例如,在阶段I保存文件vl和它的增量即增量vl.1。然后在称为阶段2的下一版本处理阶段,仅保存文件vl.2,其是文件vl的带有增量vl.1和增量vl.2的更新版本。在阶段3,再一次仅保留文件的完整副本,即文件vl.3,其是带有增量vl.3的更新文件vl.2。
[0040]图5C示出了不同版本处理阶段另一组合方法。例如,在版本处理阶段I保存文件vl.1,其是文件vl的带有增量vl.1的更新版本。在版本处理阶段2,保存文件vl.1和增量vl.2两者。但是,在下一版本处理阶段,仅保存文件vl.3,其是以增量vl.2和增量vl.3更新的文件vl.1。
[0041]图示出了在某些阶段保存原始版本和增量而在其他阶段仅保存完整副本的方法。例如,在阶段1,保存文件Vl和增量Vl.1。在下一版本处理阶段,保存文件V1、增量Vl.1和增量vl.2。在后续的阶段,保存文件vl.3,其是文件vl的带有增量1.1和增量vl.2的更新文件。
[0042]选择可以包括保存增量(仅更改)、完整副本或两者。每个方法会需要不同的存储、网络带宽、中央处理单元(CPU)周期能力。在本公开的一个实施例中,例如可以通过检查与设备关联的一个或多个特性及其环境例如文件和增量的大小、网络、存储、CPU周期和移动设备的电池状况,来确定选择(例如保存增量、完整副本或两者)。
[0043]图6示出了本公开的一个实施例的示例性用例。图6所示的示例性网络和设备环境具有不安全的信道602、604,不安全的环境606,在设备608上的有限电池以及受限的网络带宽。基于该环境设置或状况(例如这是基于当前网络环境的知识以及在元数据和设备简档610中存储的信息来确定的),一个实施例中的本公开的方法可以做出版本处理中的下列决定:上传新文件以增加可用性、从本地存储612移除保密文件、仅同步大文件的摘要、同步增量而不是文件的完整版本。
[0044]图7不出了本公开的一个实施例中的另一不例性用例。在该例子中,移动设备702的网络环境包括安全信道704、706,安全环境708,在设备702上完全充电的电池以及足够的网络带宽(例如被确定为在阈值以内)。给定该设置(例如这是基于当前网络环境的知识以及在元数据和设备简档710中存储的信息来确定的),一个实施例中的本公开的方法可以做出版本处理中的下列决定:如果若干用户访问了文件则将文件预取到本地存储712、基于用户的日历事件来安排文件同步(尽可能在离开该特定环境设置条件之前同步)、上传具有完整文件和增量的新版本。
[0045]图8示出了可以实现本公开的一个实施例中的系统的示例性计算机或处理系统的示意图。计算机系统仅是合适的处理系统的一个例子,并且不是对这里描述的方法的实施例的使用范围或功能的任何限制。所述处理系统可以与多种其他的通用或专用计算系统环境或配置一起来运行。适于和图8所示的处理系统一起使用的众所周知的计算系统、环境和/或配置的例子可以包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及可以包含任何上述系统或设备的分布式云计算环境等。
[0046]可以在由计算机系统执行的计算机系统可执行指令例如程序模块的一般上下文中描述计算机系统。通常,程序模块可以包括例程、程序、对象、组件、逻辑、数据结构等,其执行特定的任务或实现特殊的抽象数据类型。还可以在分布式云计算环境中实现计算机系统,其中,通过经通信网络链接的远程处理设备来执行任务。在分布式云计算环境中,程序模块可以位于本地以及包含存储器存储设备的远程计算机系统存储介质两者中。
[0047]计算机系统的组件可以包括但不限于一个或多个处理器或处理单元12、系统存储器16和总线14,该总线将各个系统组件包括系统存储器16耦合到处理器12。处理器12可以包括版本管理模块10,其执行这里描述的方法。模块10可被编程到处理器12的集成电路中,或从存储器16、存储设备18或网络24或其组合载入。
[0048]总线14可以表示几种总线结构类型中的任一种类型中的一个或多个,所述总线结构类型包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用任一种总线结构的处理器或局部总线。作为示例而不是限制,这样的结构包括商业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA (EISA)总线、视频电子标准协会(VESA)局部总线、以及外围组件互连(PCI)总线。
[0049]计算机系统还可以包括多种计算机系统可读介质。这样的介质可以是能被计算机系统访问的任意可用介质,且可以同时包括易失性和非易失性介质、可移动和不可移动介质。
[0050]系统存储器16可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器等。计算机系统还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统18,用于读取和写入不可移动、非易失性磁性介质(例如“硬盘驱动器”)。尽管未示出,可以提供用于读取和写入可移动、非易失性磁盘(例如“软盘”)的磁盘驱动器,以及用于读取或写入可移动、非易失性光盘例如⑶-ROM、DVD-ROM或其他光学介质的光盘驱动器。在这些例子中,每个可以通过一个或多个数据介质接口连接到总线14。
[0051]计算机系统还可以与一个或多个外部设备26进行通信,所述外部设备例如键盘、指点装置、显示器28等;能使用户与计算机系统进行交互的一个或多个设备;以及/或者能使计算机系统与一台或多台其他计算设备进行通信的任意设备(例如网卡、调制解调器等)。这些的通信可经由加输入/输出(I/O)接口 20发生。
[0052]另外,计算机系统可以通过网络适配器22与一个或多个网络24进行通信,所述网络例如局域网(LAN)、通用广域网(WAN)、以及/或者公共网络(例如因特网)。如图所示,网络适配器22通过总线14与计算机系统的其他组件通信。还应理解,尽管未示出,其他硬件和/或软件组件可以与计算机系统结合使用。例子包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器以及数据归档存储系统等。
[0053]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码
[0054]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0055]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0056]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0057]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言,脚本语言例如Perl,VBS或类似的语言,和/或函数式语言例如Lisp、ML,以及面向逻辑的语言例如Prolog。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0058]参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0059]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)?
[0060] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0061]计算机程序产品可以包括所有各个特征,其使能实现这里描述的方法,并且在被载入到计算机系统时能实现该方法。在本上下文中,计算机程序、软件程序、程序或软件表示一组指令的任意语言、代码或符号的表达,所述指令旨在使具有信息处理能力的系统直接或者在下列之一或两者之后执行特定的功能:(a)转化为其他语言,代码或符号;以及/或者(b)以不同材料形式再现。
[0062]这里使用的术语仅为了描述特定实施例的目的而不是要限制本发明。如这里所用,单数形式“一”、“一个”和“该”旨在同时包含复数形式,除非上下文清楚地另外说明。还应理解,在本说明书中使用时,术语“包括”和/或“包含”表示所述特征、整体、步骤、操作、元素和/或组件的存在,但不是排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或其组合的存在或增加。
[0063]下列权利要求中的所有装置或步骤加上功能元素(如有)的相应结构、材料、动作以及等价物旨在包含用于与特别要求的其他要求元素结合执行该功能的任意结构、材料或动作。本发明的描述是为了说明和描述的目的来展示,而不是要穷举或将本发明限制在公开的形式。很多调整和变化对于本领域普通技术人员来说是明显的,而不偏离本发明的范围和精神。实施例被选择和描述,以最佳地解释本发明的原则和实际应用,并且使得本领域普通技术人员能够理解本发明的具有适于所考虑的特定应用的各种调整的各个实施例。
[0064]本公开的各个方面可被实现为在计算机或机器可用或可读介质中实现的程序、软件或计算机指令,在计算机、处理器和/或机器上执行时,其使得计算机或机器执行本发明的步骤。还可以提供程序存储设备,其可被机器读取,有形地实现由计算机执行的指令程序,以实现本公开中描述的各种功能和方法。
[0065]本公开的系统和方法还可以在通用计算机或专用计算机系统上实现和运行。在本应用中使用时,术语“计算机系统”和“计算机网络”可以包括固定和/或便携式计算机硬件、软件、外围和存储设备的多种组合。计算机系统可以包括多个单独的组件,其被网络连接或者被链接以协作执行,或者可以包括一个或多个独立的组件。本申请的计算机系统的硬件和软件组件可以包括并且可以被包含在固定和便携式设备例如台式机、膝上电脑和/或服务器中。模块可以是实现某些“功能”的设备、软件、程序或系统的组件,其可被实现为软件、硬件、固件、电子电路等。
[0066]上述实施例是说明性例子并且不应被理解为本发明受限于这些特定的实施例。因此,本领域技术人员可以进行各种修改和调整,而不偏离所附权利要求书中定义的本发明的精神或范围。
【权利要求】
1.一种用于元数据驱动版本管理服务的方法,包括: 通过给定的文件通用标识和存储位置来访问用于同步的普及计算环境中使用的文件; 提取与该文件关联的元数据; 基于与文件关联的元数据、与被同步的设备关联的一个或多个特性以及普及计算环境的一个或多个特征,确定是否通过在被同步的设备上本地保存文件的增量、或者通过在被同步的设备上本地保存文件的整个副本、或者通过保存两者来进行同步; 基于确定是否通过在被同步的设备上本地保存文件的增量或者通过在被同步的设备上本地保存文件的整个副本来进行同步,来确定一个或多个版本操作;以及 执行一个或多个版本操作,以在被同步的设备上同步文件。
2.如权利要求1所述的方法,其中,所述一个或多个版本操作包括下列至少一个:下载文件的增量、下载文件的整个副本、上传文件的增量、上传文件的整个副本、供应在被同步的设备上本地存储的文件的副本、或解除供应在被同步的设备上本地存储的文件的副本。
3.如权利要求1所述的方法,其中,所述普及计算环境的一个或多个特征包括网络带宽、数据传输成本或 者普及计算环境的安全状态或其组合中的一个或多个。
4.如权利要求1所述的方法,其中,所述设备的一个或多个特性包括设备位置、设备的当前电池电量水平、设备的电池容量或其组合。
5.如权利要求1所述的方法,其中,所述元数据包括文件内容的类型、与文件关联的一个或多个版本和相关增量、大小、所有者、来源或者文件的冗余或其组合中的一个或多个。
6.如权利要求1所述的方法,还包括确定是否应创建文件的摘要,以及响应于确定要创建文件的摘要,生成文件摘要并复制该文件摘要以在要同步的设备上本地存储。
7.如权利要求1所述的方法,其中,如果设备处于安全区域并且满足C>DX B的标准并且满足用户简档带宽,则确定保存文件的整个副本,其中 C=[文件的整个副本的文件大小(比特)/设备当前提供的最佳可用传输速率(比特每秒(bps)) *设备发送一比特所使用的能量, D是可配置的参数,并且 B是设备的当前电池电量水平。
8.如权利要求1所述的方法,其中,在多个设备上同步所述文件,并且能够基于是否通过保存文件的增量或通过保存文件的整个副本来同步,针对不同的多个设备来进行不同的决定。
9.如权利要求1所述的方法,还包括基于与文件关联的元数据、与被同步的设备关联的一个或多个特性、或者普及计算环境的一个或多个特征中的至少一个来确定何时执行所述一个或多个版本操作。
10.一种用于元数据驱动版本管理服务的系统,包括: 处理器; 版本管理模块,其可操作地通过给定的文件通用标识和存储位置来访问用于同步的普及计算环境中使用的文件, 该版本管理模块还可操作地提取与该文件关联的元数据, 该版本管理模块还可操作地基于与文件关联的元数据、与被同步的设备关联的一个或多个特性以及普及计算环境的一个或多个特征,确定是否通过在被同步的设备上本地保存文件的增量、或者通过在被同步的设备上本地保存文件的整个副本、或者通过保存两者来进行同步, 该版本管理模块还可操作地基于确定是否通过在被同步的设备上本地保存文件的增量或者在被同步的设备上本地保存文件的整个副本来进行同步,来确定一个或多个版本操作, 该版本管理模块还可操作地执行一个或多个版本操作,以在被同步的设备上同步文件。
11.如权利要求10所述的系统,其中,所述一个或多个版本操作包括下列至少一个:下载文件的增量、下载文件的整个副本、上传文件的增量、上传文件的整个副本、供应在被同步的设备上本地存储的文件的副本、或解除供应在被同步的设备上本地存储的文件的副本。
12.如权利要求10所述的系统,其中,所述普及计算环境的一个或多个特征包括网络带宽、数据传输成本或者普及计算环境的安全状态或其组合中的一个或多个。
13.如权利要求10所述的系统,其中,所述设备的一个或多个特性包括设备位置、设备的当前电池电量水平、设备的电池容量或其组合。
14.如权利要求10所述的系统,其中,所述元数据包括文件内容的类型、与文件关联的一个或多个版本和 相关增量、大小、所有者、来源或者文件的冗余或其组合中的一个或多个。
15.如权利要求10所述的系统,其中,所述版本管理模块还确定是否应创建文件的摘要,以及响应于确定要创建文件的摘要,该版本管理模块生成文件摘要并复制该文件摘要以在要同步的设备上本地存储。
【文档编号】G06F17/30GK104049968SQ201410096252
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】白琨, D·L·科恩, H·T·贾姆朱姆, 曾梁赵 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1