对跨各内容源的内容的高效原地保留的制作方法

文档序号:6533729阅读:134来源:国知局
对跨各内容源的内容的高效原地保留的制作方法
【专利摘要】本文描述了用于提供对多个不同内容源中的内容的高效原地保留,而无需打断最终用户对内容或内容源的访问的技术。接收包括内容源的规范和过滤规范的保留请求,并将内容源标记为“挂起”。如果内容源中的内容项被修改或删除,则将该内容项的当前版本的副本放置在保留存储区域中。将不匹配过滤规范的各内容项从保留存储区域中移除的修整作业可被周期性地运行。
【专利说明】对跨各内容源的内容的高效原地保留
[0001] 背景
[0002] 诉讼中所涉及的公司可能有义务定位并向对方律师公开所有相关"证据"。这些证 据可包括跨不同内容源系统(包括现场(本地)服务器和基于云的服务器)散布的各种电 子内容,包括电子邮件消息、文档及文件、在网站上维护的列表以及其他内容等等。这些内 容源系统中与诉讼有关的内容通常被"挂起(on hold)"或者被保留以供以后检索和分析。 所保留的数据的量可能是巨大的,并且可能需要执行跨不同的系统来定位和保留相关电子 内容,而无需打断最终用户对内容或内容源的访问。
[0003] 本发明所做出的公开正是对于这些和其它考虑而提出的。
[0004] 概述
[0005] 本文描述了用于提供对多个不同内容源中的内容的高效原地保留,而无需打断最 终用户对内容或内容源的访问的技术。利用本文中描述的这些技术,不同内容源中被认为 与业务问题或事件相关的各个内容项可从特定日期起保留以供以后检索和分析。该保留可 在原地执行,使得对内容项的冗余存储被最小化或被消除,而无需限制最终用户访问或修 改内容项的能力。此外,该原地保留可允许所保留的内容项被业务问题或事件中所涉及的 合适的人员利用内容源系统所提供的安全性和服务来进行索引和检索,同时该内容项的各 保留版本保持对最终用户隐藏。
[0006] 根据各实施例,内容服务器接收保留请求,该保留请求包括关于在内容服务器上 主存的内容源的规范和过滤规范。内容服务器可通过创建与内容源相关的保持规范来将特 定内容源标记成"挂起"。如果内容服务器检测到在被挂起的内容源中修改或删除了某内容 项,则内容服务器将该内容项的当前版本的副本放置在保留存储区域中。保留存储区域可 例如是内容源中的隐藏区域。内容服务器可随后周期性地运行修整作业,该修整作业将不 匹配过滤规范的各内容项从保留存储区域中移除。
[0007] 将理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如计 算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特 征将变得显而易见。
[0008] 提供本概述是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的概 念选择。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概 述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任 一部分中所提及的任何或所有缺点的实现。
[0009] 附图简述
[0010] 图1和图2是示出由本文呈现的各实施例所提供的说明性操作环境和软件组件的 各方面的框图;
[0011] 图3是示出根据本文中描述的各实施例的一种用于提供对多个不同内容源中的 内容的高效原地保留,而无需打断最终用户对内容或内容源的访问的方法的流程图;
[0012] 图4是示出根据本文中描述的各实施例的一种用于周期性地将内容项从保留存 储区域中移除的方法的流程图;
[0013] 图5是示出能够实现本文所呈现的各实施例的各方面的计算系统的说明性计算 机硬件和软件体系结构的框图;以及
[0014] 图6是示出能够实现本文所呈现的各实施例的各方面的分布式计算环境的框图。
[0015] 详细描述
[0016] 以下详细描述涉及用于提供对多个不同内容源中的内容的高效原地保留,而无需 打断最终用户对内容或内容源的访问的技术。尽管在结合计算机系统上的操作系统和应用 程序的执行而执行的程序模块的一般上下文中提出了本文描述的主题,但是本领域技术人 员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行 特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外, 本领域技术人员将明白,可以利用其他计算机系统配置来实施本文描述的主题,这些计算 机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型 计算机、大型计算机等等。
[0017] 在以下详细描述中,参考了构成其一部分并作为说明示出各具体实施例或示例的 附图。在附图中,在全部若干附图中相似的附图标记表示相似的元素。
[0018] 图1示出了根据本文中提供的各实施例的说明性操作环境100,该操作环境100包 括用于提供对多个不同内容源中的内容的高效原地保留,而无需打断最终用户对内容或内 容源的访问的软件组件。环境100包括计算机系统102。在一个实施例中,计算机系统102 表示用户计算设备,诸如个人计算机("PC")、桌面工作站、膝上型计算机、笔记本、平板设 备、移动设备、个人数字助理("PDA")、游戏控制台、机顶盒、消费电子设备,等等。在其他 实施例中,计算机系统102可表示执行基于web的应用程序的并且能由用户使用在用户计 算设备上执行的web浏览器或其他客户机应用通过网络114访问的一个或多个web服务器 和/或应用服务器。
[0019] 电子取证(e-discovery)客户机104可以在计算机系统102上执行。在一个实施 例中,电子取证客户机104可以是可由用户用来标识和保留与业务问题或事件(如诉讼或 其他法律事务)相关的一组内容项的较大电子取证应用的组件。电子取证客户机104可以 允许用户利用定向搜索查询来从包括存储在多个内容源110中的内容项108的"虚拟存档" 中定位相关内容项。内容源110的示例可包括电子邮箱、文档库、文件共享、讨论线程、web 日志("博客")、网站,等等。内容项108的示例可包括电子邮件消息、文档或文件、网页、 讨论线程中的条目、博客帖子、wiki页面条目,等等。
[0020] 根据各实施例,内容项108可由多个不同的内容服务器112A_112N(在本文中也被 概括地称为内容服务器112)主存、存储在这些内容服务器上、和/或可通过这些内容服务 器来访问。电子取证客户机104可通过网络114访问内容服务器112。网络114可以是局 域网("LAN")、广域网("WAN")、因特网、或本领域已知的将计算机系统102连接到内容 服务器112的任何其他联网拓扑。内容服务器112可包括与计算机系统102位于相同的位 置或与计算机系统102处于同一公司LAN/WAN上的本地服务器,以及由电子取证客户机104 通过因特网访问的基于云的服务器资源。
[0021] 在一个实施例中,内容服务器112包括一个或多个电子邮件服务器,如来自 华盛顿州雷蒙德市的微软公司的MICROSOFT? EXCHANGE SERVER电子邮件服务 器。内容服务器112还可包括一个或多个内容站点服务器,如同样来自微软公司的 MICROSOFT? SHAREPOINT?服务器。内容服务器112还可包括一个或多个文件服 务器、NAS存储设备、或其他文件和文档存储系统。在其他实施例中,内容服务器112可包 括文档管理服务器、数据库服务器、web服务器、以及本领域已知的其他数据和内容服务器。
[0022] 电子取证客户机应用104可以访问定义各种内容源114的案件数据集116,内容源 114包含内容项108,内容项108包括要被定位和保留的项的虚拟存档。案件数据集116可 表示XML文件、数据库中的一个或多个数据库表、或本领域已知的存储在计算机系统102上 或可由计算机系统102访问的任何其他结构化存储机制。案件数据库116可包含一个或多 个内容集合118,每一内容集合118包括一个或多个源规范120A-120N(此处也被称为源规 范 120)。
[0023] 每一源规范120可以标识包含共同组成虚拟存档的内容项108的特定内容源110。 例如,一个源规范120A可以标识在电子邮件服务器上主存的特定电子邮箱。另一源规范 120B可以标识通过托管内容站点的内容站点服务器访问的文档库。在其他实施例中,源规 范可指定整个内容站点,该整个内容站点可包括多个子站点、一个或多个文档库、网页、维 基、博客、发布页面、和诸如任务、状态和微博的项目列表。将源规范120组织成内容集合 122可以允许在内容集合级处要应用的虚拟存档的配置选项,诸如内容项108要被保留在 本地还是外部存档中、在导出期间将如何处理重复内容项、在可用时是否导出内容项的多 个版本,等等。
[0024] 内容集合可进一步包括过滤规范122。过滤规范122可以提供参数以进一步限制 源规范120中包含的、被认为是相关内容项的内容项108。根据各实施例,过滤规范122可 包括针对所发送的电子邮件消息或所创建或修改的文档的日期范围、用于过滤内容项的一 个或多个关键词或搜索表达、和/或文档或电子邮件消息的作者或发送者等。在其他实施 例中,还可在内容源级(即按源规范120)或为案件数据集116中定义的整个虚拟存档指定 过滤规范122。
[0025] 电子取证客户机104可请求通过由包含所指定的内容项的每一内容服务器 112A-112N所暴露的保留接口 124A-124N(本文中也被称为保留接口 124)来将如源规范 120和过滤规范122所定义的内容项108保留在案件数据集116中。例如,包括电子邮件 服务器的内容服务器112A可提供允许电子取证客户机指定一个或多个源规范120(电子 邮件邮箱)的保留接口 124A,其中内容项108 (电子邮件消息)将从特定日期(本文中被 称为"保留日期")起保留。保留界面124可包括基于SOAP的web服务、Java RMI调用、 WINDOWS?通信基础("WFC")服务、或这些界面与本领域已知的其他界面的任何组合。
[0026] 内容服务器112A的保留界面124还可允许指定过滤规范122,以进一步限制所指 定的源规范120中要从保留日期起保留的内容项108。每一内容服务器112可以按不同的方 式影响对相应内容项108的保留。根据各实施例,内容服务器112 (诸如MICROSOFT? EXCHANGE SERVER电子邮件服务器或MICROSOFT? SHAREPOINT?.服务器)可实现 原地保留机制,该本地保留机制使保留所需的存储空间最小化,而无需限制最终用户访问 或修改内容项108的能力,如以下将描述的。
[0027] 图2示出了根据各实施例的与实现本文中描述的原地保留机制的内容服务器112 有关的操作环境100的进一步细节。如上所述,内容服务器112可接收指定其中内容项108 将被保留的内容服务器主存的内容源110(诸如,电子邮件邮箱、内容站点、文档库、文件共 享、讨论线程、列表、和网页等)的列表的保留请求。保留请求可例如通过内容服务器112 的保留接口 124从电子取证客户机104或从其他外部或内部应用处接收。内容服务器112 可执行处理保留请求的保持管理器模块202。保持管理器模块202可以在硬件、软件或这两 者的某一结合中实现。保持管理器模块202可进一步包括在内容服务器112上实现的不同 模块或组件的组合。
[0028] 保持管理器模块202可通过创建与保留请求中指定的内容源110相关的保持规范 204来将每一内容源110标记为"挂起(on-hold)"。在一些实施例中,保持规范204包括内 容源110的指示该内容源110已被置为挂起的标志或其他属性。在其他实施例中,保持规 范204可另外地存储关于在内容服务器112处接收到的保留请求的参数值。根据一个实施 例,保持规范204可为每一内容源110创建并与该内容源一起存储。例如,保持规范204可 为电子邮件服务器所托管的个别电子邮件邮箱创建,并被存储在该电子邮件邮箱的元数据 中。
[0029] 在另一实施例中,保持规范204可为包含内容源110的较高级存储容器创建。例 如,对于包括文档库的指定内容源110,保持规范204可为包含该文档库的整个内容站点创 建,并被存储为描述该内容站点的元数据。在其他实施例中,保持规范204可被创建在由内 容服务器112实现或内容服务器112可访问的数据库、文件或其他存储系统中,并通过源规 范120与内容服务器所托管的内容源110相关。此外,单个保持规范204可通过多个源规 范120与多个内容源110相关。例如,电子邮件服务器可存储保持规范204的列表,这些保 持规范中的每一个指定相应的保留请求或"保持"所应用于的电子邮箱的列表。
[0030] 保持规范204可包括指示一日期的保留日期208,相关内容源110中的内容项108 要从该日期起被保留。根据一些实施例,保留日期208可以被指定在从电子取证客户机104 接收到的保留请求的参数中。在其他实施例中,保留日期208可默认为例如接收保留请求 的日期。保持规范204还可包括期满日期210,该期满日期210指示此后可清除最终用户已 删除或已修改的内容项108的保留版本的日期。如在保留日期208的情况下,期满日期210 可以被指定在从电子取证客户机104接收到的保留请求的参数中,或者期满日期210可以 被设置为使得这些项被保留达某一默认时间段的值。在一个实施例中,期满日期210可默 认为最大日期值,从而指示相关内容源110中的内容项108将被无限期地保留。
[0031] 保持规范204还可包括由电子取证客户机104在保留请求中提供的过滤规范122。 如以上结合图1所描述的,过滤规范122可以指定进一步限制相关内容源110的要被保留 的内容项108的关键词和/或日期范围。将理解,保持规范204可包括与图2所示并如上 所述的被保持管理器模块202用来保留内容源中的内容项108的参数值相比附加的或不同 的参数值。还将理解,特定内容源110可与为不同保留请求创建的多个保持规范204相关, 并包含不同的保留日期208、期满日期、过滤规范122和/或其他参数。
[0032] 保持管理器模块202可利用保持规范204中包括的参数值,自所规定的保留日期 208起影响对相关内容源110中包含的内容项108的保留。例如,如以下将结合图3更详细 描述的,保持管理器模块202可检测到内容源110中的内容项108的待决改变(诸如,项的 删除或其内容的修改)。在检测到这些改变后,保持管理器模块202可将内容项108的当前 版本的副本移动到保留存储区域212,使得保留日期208的内容项可被保留。
[0033] 根据一些实施例,保留存储区域212可表示内容源110的可按以下方式来存储内 容项108的保留版本的区域:这些保留版本对内容源的最终用户隐藏,但保持可被涉及业 务问题或事件的合适人员访问。例如,对于包括电子邮件服务器上的电子邮件邮箱的内容 源110,保留存储区域212可包括电子邮件邮箱中的隐藏文件夹。从电子邮件邮箱中删除的 电子邮件消息可改为被移动到该隐藏文件夹。该隐藏文件夹中存储的消息可能是邮箱用户 不可访问的,但可被电子邮件服务器索引,并可由其他人员通过电子邮件服务器上的合适 安全设置来进行搜索和访问。
[0034] 在其他实施例中,保留存储区域212可表示较高级存储容器的包含内容源110的 区域。例如,对于包含文档库的内容源110,保留存储区域212可包括在包含该文档库的内 容站点中的分开的、隐藏文档库。如果文档库中的文档被修改,则该文档的当前版本可被存 储在隐藏文档库中。如在以上所述的电子邮件邮箱的情况中,存储在隐藏文档库中的文件 可能是该内容站点的最终用户不可访问的,但可被内容站点服务器索引,并变得可被其他 人员通过内容站点服务器上的合适安全设置来进行搜索和访问。将理解,通过仅将被删除 或修改的那些内容项108存储在保留存储区域212中,影响这些内容项在内容源110中的 保留所需的存储空间量与常规的对在保留日期得到的内容源进行快照存档所需的存储空 间量相比是最小的。
[0035] 在其他实施例中,内容服务器112可执行修整作业模块214。如以下将结合图4更 详细描述的,修整作业模块214可周期性地运行,并基于与内容源110相关的任何活跃保持 规范204中的过滤规范122将各项目从保留存储区域212中移除。这可被实现来将与保留 请求不相关的那些内容项移除,由此进一步降低保留内容源110中的内容项108所需的存 储空间量。修整作业模块214可以用硬件、软件、或这两者的某种组合来实现。修整作业模 块214可进一步包括在内容服务器112上实现的不同模块或组件的组合。
[0036] 现在参考图3和4,提供关于本文所呈现各实施例的附加细节。将理解,参照图3 和4所描述的逻辑操作被实现为:(1)在计算系统上运行的计算机实现动作序列或程序模 块和/或(2)计算系统内的互连机器逻辑电路或电路模块。该实现是取决于计算系统的性 能及其他要求的选择问题。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动 作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任何组合 来实现。还将理解,可以执行比附图中示出的和此处所描述的操作更多或更少的操作。这 些操作还可按与所述次序不同的次序来执行。
[0037] 图3示出了根据一个实施例的用于提供对多个不同内容源中的内容的高效原地 保留,而无需打断最终用户对内容或内容源的访问的一个例程300。例程300可例如由内容 服务器112上执行的保持管理器模块202来执行。将明白,例程300也可由在其它内容服 务器112上执行的其它模块或组件执行,或者由模块、组件和计算设备的任何组合来执行。 例程300始于操作302,在操作302,保持管理器模块202检测对由内容服务器托管的内容 源110中的内容项108的修改或删除。例如,保持管理器模块202可检测到电子邮件消息 正在被从电子邮件邮箱中的删除项文件夹或其他文件夹中清除,或者文档库中的文档正在 被最终用户修改。
[0038] 例程300从操作302前进到操作304,在操作304,保持管理器模块202确定保持 是否对包含内容项108的内容源110有效。这可例如通过检查内容源110的特定标志或属 性,或者通过确定与内容源110相关的保持规范204在定义该内容源的元数据或较高级存 储容器中是否存在。如果没有保持对包含内容项108的内容源110有效,则例程300结束, 并且对该内容项的删除或修改正常进行。
[0039] 然而,如果保持对内容源有效,则例程300从操作304前进到操作306,在操作 306,保持管理器模块202确定内容项108是否正被删除或修改。如果内容项108正被删除, 则例程300前进到操作308,在操作308,保持管理器模块202将内容项108的当前版本放 置在保留存储区域212中。这可简单地需要将内容项108移动到保留存储区域212中,而 不是将该内容项从内容源110中删除,或者可在允许对内容项的删除正常进行之前将内容 项108的副本放置在保留存储区域中。在其他实施例中,如果被删除的内容项108是在文 档库中存在其多个版本的文档,则该文档的所有存储版本可被移动到保留存储区域中。从 操作308,例程300随后结束。
[0040] 如果在操作306,确定内容项108正被修改,则例程300前进到操作310,在操作 310,保持管理器模块202确定内容项108的当前版本的修改日期是否小于在与内容源110 相关的保持规范204中指定的保留日期208。如果内容项108的当前版本的修改日期小于 或等于保留日期208,则例程300前进到操作308,在操作308,在于内容源110中更新内容 项108之前,保持管理器模块202将该项的当前版本放置在保留存储区域212中。从操作 308,例程300随后结束。
[0041] 如果在操作310,内容项108的当前版本的修改日期不小于或等于保留日期208, 则例程300结束,并且内容项108被更新,而无需将该项的副本放置在保留存储区域212 中。执行对与保留日期208相关的修改日期的检查仅允许内容项108的一个版本--所存 在的从保留日期起的版本--被存储在保留存储区域212中,从而进一步降低影响对内容 源中的内容项108的保留所需的存储空间量。
[0042] 将理解,如果多个保持对内容源110有效,即存在与该内容源相关的多个保持规 范204,则保持管理器模块202可相对所有相关保持规范中的最新保留日期208来检查该 内容项108的当前版本的修改日期,以便确定该内容项的副本是否被放置在保留存储区域 212中。在另一实施例中,保持管理器模块202可以在内容项108被删除或修改后总是将该 内容项的当前版本放置在保留存储区域212中,而不管当前版本的修改日期。在一些实施 例中,如果内容项108匹配过滤规范122,则保持管理器模块202可进一步将该内容项的副 本放置在保留区域中。
[0043] 根据一些实施例,当将内容项108的当前版本放置在保留存储区域212中时,保 持管理器模块202可确保关于该内容项的版本的元数据也被保留。例如,对于包括文档库 中的文档的内容项108,该文档的当前版本可与描述该文档的创建日期、最后修改日期、作 者、及版本号或名称等的元数据一起被放置在保留存储区域212中。内容项108在内容源 11〇(诸如特定文档库或将该项包括在电子邮件邮箱中的文件夹)中的原始位置也可被保 留在元数据中,以便在将保留的内容项从内容源导出期间创建的任何清单都将示出该原始 位置作为所导出的内容项的位置而非隐藏的保留存储区域212。
[0044] 在进一步实施例中,如果被修改或删除的内容项108是包括项列表的内容源110 中的个别项(诸如例如,讨论线程中的帖子、维基页面中的输入、或博客中的帖子),则在对 该个别列表项的删除或修改发生之前,保持管理器模块202可将该整个列表的当前版本放 置在保留存储区域212中。类似地,在对个别内容项的删除或修改发生之前,保持管理器模 块202可将包含内容项108的整个容器(诸如文件夹)放置在保留存储区域212中。在其 他实施例中,保持管理器模块202可采用文件或文档命名方案来处理其中相同内容项108 的多个副本或不同版本被放置在保留存储区域212中的情形。例如,保持管理器模块202 可使用以下格式来重命名移动到保留存储区域212的内容项108 :
[0045] 〈原文件名>_〈原唯一 ID>_〈版本>·〈原扩展名〉
[0046] 图4示出了一个用于周期性地将内容项108从内容源110的保留存储区域212中 移除以便进一步降低基于保留请求来保留内容项108所需的存储空间的例程400。例程400 可由例如在内容服务器112上执行的修整作业模块214来执行。应当理解,例程400也可由 在内容服务器112上执行的其他模块或组件执行,或者由模块、组件和计算设备的任何组 合来执行。根据一些实施例,例程400由修整作业模块214在可配置周期的基础上(诸如每 天或每周)执行。在其他实施例中,每当一个或多个内容项被添加到保留存储区域212时, 如可以是各项被成批地移动到保留存储区域212(其为被标记为供电子邮箱的最终用户删 除的电子邮件消息的清除过程的一部分)时的情况,修整作业模块214就执行例程400。在 其他实施例中,附加地或作为替换,例程400可由修整作业模块214结合内容服务器112中 的现有存档和/或清除过程(诸如电子邮件服务器的周期性存档或清除过程)来执行。
[0047] 例程400始于操作402,在操作402,修整作业模块214对保留存储区域212中存 储的内容项108执行查询,以定位要移除或"修整"的项。根据各实施例,执行的查询从与 内容源110相关的任何活跃保持规范的过滤规范122构建。如上所述,过滤规范122可包 括用于过滤内容项108的一个或多个关键词或搜索表达。过滤规范122还可包括用于按发 送或接收日期来过滤电子邮件消息、按创建或修改日期来过滤文档等的日期范围。修整作 业模块214可例如利用内容服务器112所提供的索引和搜索工具来对保留存储区域212中 的内容项108执行查询。
[0048] 根据一个实施例,修整作业模块214执行包括否定过滤规范122的查询。例如,如 果过滤规范122指定了关键词"CAT (猫)"和"D0G (狗)"或搜索表达"CAT OR D0G (猫或 狗)",则修整作业模块214可对保留存储区域212中的内容项108执行包括"NOT CAT AND NOT DOG(不是猫也不是狗)"的查询,以便定位要移除的项。利用过滤规范122的反面来查 询内容项108具有以下优点:无法被索引或搜索的项(诸如,经加密或经压缩的项或者以专 有格式存储的项)将保持在保留存储区域212中,以供以后被合适的人员检索并审阅。
[0049] 在其他实施例中,修整作业模块可执行直接从过滤规范122构建的查询,并随后 标识出保留存储区域212中未被该查询作为移除候选返回的那些内容项108。将理解,如 果多个保持对内容源110有效,即存在与内容源相关的多个保持规范204,则修整作业模块 214可使用公知方法组合来自各活跃保持规范204的各过滤规范122,以构建要对保留存储 区域212中存储的各内容项108的执行的查询,以便定位要移除的项。
[0050] 例程400从操作402前进到操作404,在操作404,修整作业模块214将操作402 中定位的不匹配过滤规范122的那些内容项108从保留存储区域212移除。如上所述,无 法被索引和搜索的内容项108 (诸如经加密或经压缩的项或者以专有格式存储的项)可不 被修整作业模块214从保留存储区域212中移除,使得那些内容项可在以后的时间被合适 的人员检索并审阅。从操作404,例程400结束。
[0051] 根据其他实施例,修整作业模块214可进一步基于过期保持(即具有已过期的期 满日期210的保持规范204)来清除放置在保留存储区域212中的内容项108。如果确定不 存在与内容源110相关的活跃保持,则修整作业模块214还可移除保留存储区域212。在替 换实施例中,保持管理器模块202可以在接收到保留请求的时间(S卩,在为内容源创建了保 持规范204时)将内容源110或较高级存储容器中的所有内容项108复制到保留存储区域 212中。在一个实施例中,可基于保留日期208来限制复制到保留存储区域212的内容项 108。修整作业模块214可随后被执行,以清除不匹配相关保持规范204的任何指定过滤规 范122的那些项。
[0052] 图5示出了能够执行本文描述的用于按前面呈现的方式来提供对多个不同内容 源中的内容的高效原地保留,而无需打断用户对内容或内容源的访问的软件组件的计算机 500的示例计算机体系结构。图5所示的计算机体系结构示出服务器计算机、常规台式计算 机、膝上型计算机、笔记本计算机、平板计算机、PDA、无线电话、或其他计算设备,并可以用 来执行本文呈现的被描述为在内容服务器112、计算机系统102和/或其他计算设备上执行 的软件组件的任何方面。
[0053] 计算机500包括一个或多个中央处理单元("CPU")502。CPU 502可以是执行计 算机500的操作所需的算术和逻辑操作的标准处理器。CPU 502通过从一个分立的物理状 态转换到下一状态来执行必要的运算,该转换是通过操纵在各状态之间不同并改变这些状 态的开关元件来实现的。切换元件一般可包括维持两个二进制状态之一的电子电路,诸如 触发电路,以及基于一个或多个其它切换元件的状态的逻辑组合来提供输出状态的电子电 路,诸如逻辑门。这些基本切换元件可被组合以创建更复杂的逻辑电路,包括寄存器、加减 器、算术逻辑单元、浮点单元和其它逻辑元件。
[0054] 该计算机体系结构还包括含有随机存取存储器("RAM")514和只读存储器 ("ROM") 516的系统存储器508、以及将存储器耦合至CPU 502的系统总线504。基本输入 /输出系统被存储在ROM 516中,该系统包含帮助诸如在启动期间在计算机500中的元件之 间传递信息的基本例程。计算机500还包括用于存储操作系统518、应用程序和其它程序模 块的大容量存储设备510,这将在本文中更为详尽地描述。
[0055] 大容量存储设备510通过连接至总线504的大容量存储控制器(未示出)连接到 CPU 502。大容量存储设备510为计算机500提供非易失性存储。计算机500可通过变换大 容量存储设备510的物理状态来反映被存储的信息来将信息存储在该设备上。在本说明书 的不同实现中,物理状态的具体变换可取决于各种因素。这些因素的示例可以包括,但不仅 限于:用于实现大容量存储设备的技术,大容量存储设备被表征为主存储还是辅存储等等。
[0056] 例如,计算机500可通过向大容量存储控制器发出以下指令来将信息存储到大容 量存储设备510 :变更磁盘驱动器内的特定位置的磁特性;变更光存储设备中的特定位置 的反射或折射特性;或变更固态存储设备中的特定电容、晶体管或其它分立元件的电特性。 在不背离本发明的范围和精神的情况下,物理介质的其它变换是可能的。计算机500还可 通过检测大容量存储设备内的一个或多个特定位置的物理状态或特性来从大容量存储设 备510读取信息。
[0057] 如上简述,多个程序模块和数据文件可存储在计算机500的大容量存储设备510 和RAM 514中,包括适用于控制计算机的操作的操作系统518。大容量存储设备510和RAM 514还可以存储一个或多个程序模块。具体地,大容量存储设备510和RAM 514可存储电子 取证客户机104、保持管理器模块202和/或修整作业模块214,其每一个都在上文结合图 1和2详细描述。大容量存储设备510和RAM 514还可存储其它类型的程序模块或数据。
[0058] 除了上述大容量存储设备510之外,计算机500能够访问其它计算机可读介质以 存储和检索信息,诸如程序模块、数据结构或其它数据。本领域技术人员应该明白,计算机 可读介质可以是计算机500可访问的任何可用介质,包括计算机可读存储介质和通信介 质。通信介质包括瞬时信号。计算机可读存储介质包括以用于非瞬态存储如计算机可读指 令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可 移动和不可移动介质。例如,计算机可读存储介质包括但不限于,RAM、R0M、EPR0M、EEPR0M、 闪存或其它固态存储器技术,⑶-ROM、数字多功能盘(DVD)、HD-DVD、蓝光、或其它光学存储、 磁带盒、磁带、磁盘存储或其它磁存储设备,或可以用来存储所需信息并可由计算机500访 问的任何其它介质。
[0059] 计算机可读存储介质可以用计算机可执行指令来编码,该指令在被加载到计算机 500中时可将计算机系统从通用计算系统变换成能够实现本文描述的实施例的专用计算 机。计算机可执行指令可通过变更计算机可读存储介质中的特定位置的电、光、磁或其它物 理特性来在该介质上编码。这些计算机可执行指令通过如上所述地指定CPU 502如何在各 状态之间转换来变换计算机500。根据一个实施例,计算机500可以访问存储计算机可执行 指令的计算机可读存储介质,当由计算机执行时,该指令行如上结合图3和4所述的用于提 供对多个不同内容源中的内容的高效原地保留而无需打断最终用户对内容或内容源的访 问的例程300和400。
[0060] 根据各个实施例,计算机500可使用至远程计算设备和计算机系统的逻辑连接通 过一个或多个网络(诸如网络114)在联网环境中操作。网络114可包括LAN、WAN、因特网 或这些的组合,以及本领域已知的任何联网拓扑。计算机500可以通过连接至总线504的 网络接口单元506来连接到网络114。应当理解,网络接口单元506还可以被用来连接到其 他类型的网络和远程计算机系统。
[0061] 计算机500还可包括用于接收和处理来自包括触摸屏、键盘、鼠标、触摸垫、电子 指示笔、或其它类型的输入设备等多个输入设备的输入的输入/输出控制器512。类似地, 输入/输出控制器512可向诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或 其它类型的输出设备等显示设备提供输出。可以明白,计算机500可以不包括图5所示的 全部组件,可以包括未在图5中明确示出的其它组件,或者可使用完全不同于图5所示的体 系结构。
[0062] 图6示出了能够执行本文描述的用于按前面呈现的方式来提供对多个不同内容 源中的内容的高效原地保留,而无需打断用户对内容或内容源的访问的软件组件的说明性 分布式计算环境600。图6所示的分布式计算环境600可被用来提供本文相对于内容服务 器112、计算机系统102和/或任何其他计算设备描述的功能。分布式计算环境600由此可 用于执行本文所呈现的软件组件的任何方面。
[0063] 根据各种实现,分布式计算环境600包括在网络604上操作、与该网络通信、或者 作为该网络的一部分的计算环境602。网络604还可包括各种接入网络。一个或多个客户 端设备606A-606N(在下文中统称和/或通称为"客户端606")可经由网络604和/或其 他连接(在图6中未示出)与计算环境602通信。在所示的实施例中,客户机606包括:诸 如膝上型计算机、台式计算机、或其他计算设备之类的计算设备606A ;板式或平板计算设 备("平板计算设备")606B;诸如移动电话、智能电话、或其他移动计算设备之类的移动计 算设备606C ;服务器计算机606D ;和/或其他设备606N。应当理解,任意数量的客户机606 可与计算环境602通信。应当理解,所示客户端606以及本文中示出和描述的计算体系结 构是说明性的,并且不应被解释为以任何方式进行限制。
[0064] 在所示的实施例中,计算环境602包括应用服务器608、数据存储610、以及一个或 多个网络接口 612。根据各种实现,应用服务器608的功能可由作为网络604-部分执行或 者与该网络通信的一个或多个服务器计算机提供。应用服务器608可主存各种服务、虚拟 机、门户、和/或其他资源。在所示的实施例中,应用服务器608主存一个或多个虚拟机614 以供主存应用或其他功能。根据各个实现,虚拟机614主存用于提供本文中描述的功能的 一个或多个应用和/或软件模块。应当理解,本实施例是说明性的,并且不应被解释为以任 何方式进行限制。应用服务器608还主存或提供对一个或多个web门户、链接页面、网站、 和/或其他信息("web门户")616的访问。
[0065] 如图6所示,应用服务器608还可主存其他服务、应用、门户、和/或其他资源。例 如,应用服务器608可主存电子取证客户机104、保持管理器模块202和/或修整作业模块 214,这些中的每一个都在以上结合图1和2进行了详细描述。如以上所提及的,计算环境 602可包括数据存储610。根据各种实现,数据存储610的功能由在网络604上操作的或者 与该网络通信的一个或多个数据库提供。数据存储610的功能也可由被配置成主存用于计 算环境602的数据的一个或多个服务器计算机提供。数据存储610可以包括、主存或提供 一个或多个实际或虚拟数据存储器626A-626N (下文统称和/或一般地称为"数据存储器 626")。数据存储器626被配置成主存由应用服务器608使用或创建的数据和/或其他数 据。
[0066] 计算环境602可与网络接口 612通信或由该网络接口访问。网络接口 612可包括 各种类型的网络硬件和软件,以支持包括但不限于客户机606和应用服务器608的两个或 更多个计算设备之间的通信。应当理解,网络接口单元612还可用于连接到其他类型的网 络和计算机系统。
[0067] 应当理解,本文中所描述的分布式计算环境600可向本文中所描述的软件元件的 任何方面提供可被配置成执行本文中所公开的软件组件的任何方面的任意数量的虚拟计 算资源和/或其他分布式计算功能。根据本文中所公开的概念和技术的各种实现,分布式 计算环境600向客户机606提供本文中所描述的软件功能作为服务。应当理解,客户机606 可包括实际或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设 备、智能电话、和/或其他设备。由此,本文中所公开的概念和技术的各个实施例使被配置 成访问分布式计算环境600的任何设备能够利用本文中所描述的用于提供对多个不同内 容源中的内容的高效原地保留而无需打断最终用户对内容或内容源的访问的功能。
[0068] 基于以上所述,应该理解,本文中提供了用于提供对多个不同内容源中的内容的 高效原地保留而无需打断最终用户对内容或内容源的访问的技术。虽然以计算机结构特 征、方法动作、以及计算机可读存储介质专用的语言描述了本文呈现的主题,但是应该理 解,在所附权利要求书中所限定的本发明不一定仅限于本文描述的具体特征、动作、或介 质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。
[0069] 以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所描述的 主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用且不背离所附权利 要求书中所阐述的本发明的真正精神和范围。
【权利要求】
1. 一种用于提供对内容源中的内容项的原地保留的系统,所述系统包括: 一个或多个处理器; 耦合到所述一个或多个处理器的存储器; 驻留在所述存储器在中并包括计算机可执行指令的保持管理器模块,所述指令在由所 述一个或多个处理器执行时使得所述系统: 检测所述内容源中的内容项已被修改或删除, 在检测到所述内容项已被修改或删除后,确定保持是否对所述内容源有效, 在确定所述保持对所述内容源有效后,确定所述内容项已被删除还是被修改, 在确定所述内容项已被删除后,将所述内容项的当前版本放置在保留存储区域中, 在确定所述内容项已被修改后,确定所述内容项的当前版本的修改日期是否小于或等 于与所述保持相关联的保留日期,以及 在确定所述内容项的当前版本的修改日期小于或等于所述保留日期后,将所述内容项 的当前版本放置在所述保留存储区域中;以及 驻留在所述存储器中并包括计算机可执行指令的修整作业模块,所述指令在由所述一 个或多个处理器执行时使得所述系统: 定位所述保留存储区域中不匹配与所述保持相关联的过滤规范的一个或多个内容项, 以及在定位了所述保留存储区域中不匹配所述过滤规范的所述一个或多个内容项后,将所 述一个或多个内容项从所述保留存储区域中移除。
2. 如权利要求1所述的系统,其特征在于,所述保留存储区域包括所述内容源的隐藏 区域。
3. 如权利要求1所述的系统,其特征在于,所述定位和移除操作由所述修整作业模块 在周期性的基础上执行。
4. 如权利要求1所述的系统,其特征在于,多个保持对所述内容源有效,并且其中所述 修整作业定位所述保留存储区域中不匹配与所述多个保持中的每一个相关联的任何过滤 规范的一个或多个内容项。
5. -种用于执行对内容项的原地保留的计算机实现的方法,所述方法包括: 在内容服务器处接收保留请求,所述保留请求包括内容源的规范和过滤规范; 在所述内容服务器中创建与所述内容源相关的保持规范, 检测到所述内容源中的内容项已被修改或删除; 在检测到内容项已被修改或删除后,将所述内容项的当前版本放置在保留存储区域 中,其中所述保留存储区域包括所述内容中的隐藏区域;以及 周期性地将不匹配所述过滤规范的一个或多个内容项从所述保留存储区域中移除。
6. 如权利要求5所述的计算机实现的方法,其中所述保持规范进一步包括保留日期, 并且其中所述方法进一步包括: 在检测到所述内容项已被修改或删除后,确定所述内容项已被删除还是被修改; 在确定所述内容项已被修改后,确定所述内容项的当前版本的修改日期是否小于或等 于所述保留日期; 在确定所述内容项的当前版本的修改日期小于或等于所述保留日期后,将所述内容项 的当前版本放置在所述保留存储区域中;以及 在确定所述内容项的当前版本的修改日期不小于或等于所述保留日期后,不将所述内 容项的当前版本放置在所述保留存储区域中。
7. 如权利要求5所述的计算机实现的方法,其特征在于,所述保留请求包括多个内容 源规范。
8. -种用计算机可执行指令编码的计算机可读存储介质,所述指令在由计算机执行时 使所述计算机 : 接收包括内容源的规范的保留请求; 创建与所述内容源相关的保持规范; 检测所述内容源中的内容项已被修改或删除;以及 在检测到所述内容项已被修改或删除后,将所述内容项的当前版本放置在保留存储区 域中。
9. 如权利要求9所述的计算机可读存储介质,其特征在于,所述保留存储区域包括所 述内容源的区域。
10. 如权利要求9所述的计算机可读存储介质,其特征在于,所述保留请求进一步包括 过滤规范,并且其中所述计算机可读存储介质编码有附加计算机可执行指令,所述附加计 算机可执行指令使得所述计算机周期性地将不匹配所述过滤规范的一个或多个内容项从 所述保留存储区域中移除。
【文档编号】G06F17/30GK104285221SQ201380023394
【公开日】2015年1月14日 申请日期:2013年4月29日 优先权日:2012年5月3日
【发明者】Q·G·克里斯滕森, M·皮亚塞茨尼, J·D·范, J·Z·史密斯, B·J·日那卡, R·索曼荪达拉姆, G·L·麦克明, A·D·哈梅茨, J·A·阿尔斯帕格, B·史蒂文森, S·拉玛纳杉, T·巴拉伯伊, T·R·斯里拉姆, Z·阿里芬, Y·董, S·安瓦尔, A·加纳德汉, A·S·马尔基, K·M·拉达 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1