专利名称:用于将文件作为片段存储在存储元件上的方法及其系统的制作方法
技术领域:
本发明涉及数据存储,具体地说,涉及分发多个数据部分以存储在电子邮件服务 器和/或存储系统上。
背景技术:
企业产生的数据量的不断增加以及企业可靠地检索信息的能力的重要性对数据 存储系统带来了更高的需求。信息技术专家需要可高效地处理和存储企业所产生的大量数 据的数据存储系统。同样,个人也需要在不投入较高成本的情况下,通过安全可靠的方式高 效地处理和存储个人数据的数据存储系统。此外,需要数据不会被盗或被损坏,并以可快速访问的方式进行存储。所述数据存 储系统还应有效利用企业/个人的当前信息技术资源并且不给企业的盈亏底线造成额外 压力或给个人造成负担。
发明内容
根据示例性实施例,提供了一种在计算机上实现的用于将文件作为片段存储在存 储元件上的方法。具有存储器和至少一个处理器的计算机接收存储文件的请求。将所述文 件分割为片段。生成相应标题(header)以单独标识所述片段中的每个片段。生成多个电 子邮件,对于所述多个电子邮件中的每个电子邮件电子邮件正文包括所述片段之一并且 电子邮件主题行包括所述相应标题。将所述多个电子邮件中的每个电子邮件存储在存储元 件上。生成所述文件的第一元数据,所述第一元数据包括用于从所述片段重建所述文件的 fn息ο根据示例性实施例,提供了一种在计算机上实现的用于恢复被分割为片段以便存 储的文件的方法。具有存储器和至少一个处理器的计算机接收检索文件的请求。从与所述 文件对应的第一元数据检索恢复参数。根据所述恢复参数从多个电子邮件的多个电子邮件 正文检索所述文件的片段。根据所述恢复参数将所述文件的片段重建为恢复后的文件。提 供所述恢复后的文件。根据示例性实施例提供了用于实现上述方法的计算机程序产品。此外,通过示例 性实施例的技术实现了其他特性。在此详细说明了各实施例并将其视为所要求保护的发明 的一部分。为了更好地理解这些特性,请参考说明书和附图。
在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。 从下面结合附图的详细说明,示例性实施例的上述和其他特性将变得显而易见,这些附图 是图1示出了根据示例性实施例的用于归档和恢复文件的体系结构;图2是示出根据示例性实施例分割元数据的方块图3示出了根据示例性实施例的被结合到消息中的数据片段的实例;图4、5、6和7示出了根据示例性实施例的总体描述元件的表1、2、3和4 ;图8是示出根据示例性实施例的归档文件的流程图;图9是示出根据示例性实施例的恢复文件的流程图;以及图10示出了具有可包括在示例性实施例中的能力的计算机实例。
具体实施例方式尽管数据存储是一种允许用户使用密码存储和恢复文件的服务,但是示例性实施 例规定在对文件进行编码之后,将文件分割为小的数据片段并使这些片段分布于诸如电子 邮件服务器和/或存储系统之类的若干存储系统中。此分布使得服务器管理员或某个用户 很难找到文件以及对文件进行解码,因为所盗取的文件可能不完整、已被编码、顺序混乱、 已成为垃圾文件和/或无法获取其解密密钥。示例性实施例允许独立于所使用的硬件,独立于所使用的软件以及独立于地理位 置来更改服务。加密文件之后,将文件分割为片段并使这些片段分布于若干简单电子邮件 帐户或专属存储系统中,并针对文档恢复目的生成元数据文档。可以使文件分散于世界各地。除非用户具有对元数据文档以及文件解密密钥的访 问权,否则不可能恢复原始数据。此外,为了增加存储系统的安全性,可通过将元数据数据 库分割为数据片段,然后使所述元数据数据库分布于诸如电子邮件服务器和/或存储系统 之类的若干存储服务中来存储所述元数据数据库。现在转到图1,图1示出了根据示例性实施例的用于归档和恢复文件的体系结构。 应该理解,图1中示出的体系结构仅作为示例,并且示例性实施例并非旨在受图1中示出的 体系结构的限制。所述体系结构示出了一种基础结构,用户可通过此基础结构归档和存储 具有任意类型数据的文件。为了便于解释,此处所述的各种特性、过程、模块、接口、硬件/ 软件组件和服务可统称为Web存储系统和/或Web存储工具。所述各种特性、过程、模块、 接口、硬件/软件组件和服务使用本领域中公知的标准和协议相互进行通信,所述标准和 协议例如面向服务的体系结构(S0A,这是一种在交互的软件/硬件代理中提供连接的体系 结构形式)协议,网际协议(例如,TCP/IP)等。在下面的情况中,将参考图1讨论归档文件。用户使用通信设备100请求接口 5 请求存储文件。请求接口 5通过网络15将存储文件的请求传输到服务器105的管理处理 器模块10。管理模块10将存储请求路由到服务器110的元数据生成器50。构想了服务器 105上的管理处理器模块10可从通信设备100接收建立服务帐户或访问网络服务以归档或 恢复文件的请求。管理处理器10可实施验证软件以限制或控制对此处所述的归档和恢复 服务的访问。服务器105上的管理处理器模块10可与客户身份系统(CIS)数据库(未示 出)进行通信,该数据库连同帐户记录一起存储用户凭据(例如,用户名和密码)。元数据生成器50从管理模块10接收参数(在工具配置器中定义)。所述工具配 置器可以在管理模块10中实现,也可以是独立于管理模块10的单独模块。元数据生成器 50生成用于恢复文件的元数据(文件元数据)、控制存储服务、确保所有存储可跟踪,以及 将所有事务记录到元数据数据库130中。元数据本身可以例如是XML文件或其他任何适合 的文件。元数据生成器50将文件路由到加密模块15。
加密模块15从元数据生成器50接收文件加密请求和参数。根据收到的参数,由 加密模块15对文件进行加密。加密模块15将加密结果返回到元数据生成器50、将保持活 动(ke印-alive)信号提供给元数据生成器50,以及将加密完成消息发送到元数据生成器 50。加密模块15可以将加密后的文件转发给分割器20,这样,元数据生成器50便可将加密 后的文件路由到分割器20。分割器20从加密模块15接收文件分割请求。根据分割参数,由分割器20将加密 后的文件分割为片段。分割器20将文件分割结果传输到元数据生成器50。此外,分割器 20将文件片段转发给电子邮件标题生成器25、将保持活动信号提供给元数据生成器50,以 及将分割完成消息发送到加密模块15。(电子邮件)标题生成器25从分割器20接收片段存储请求。标题生成器25负责 文件片段的(电子邮件)消息封装。标题生成器25将标题(例如主题行)和每个要保存为 (电子邮件)消息的文件片段例如放置在电子邮件服务器和/或存储系统125中。为了冗 余,标题生成器25负责将相同的文件片段路由到多个位置。例如,标题生成器25可将相同 的文件片段路由到位于特定地理位置的一个电子邮件服务器和/或存储系统125以及路由 到位于不同地理位置的不同电子邮件服务器和/或存储系统125。相应地,相同的文件片段 可能被发送到不同的服务器125,如果一个服务器发生故障,则其他服务器125可以提供丢 失的数据(文件片段)。如此处所述,图1中的电子邮件服务器和/或存储系统125表示可 位于不同位置的大量服务器和存储系统和/或可位于同一位置的大量服务器和存储系统。进而,标题生成器25可结合用于将虚假片段创建为垃圾的垃圾生成器(未示出)。 标题生成器25 (通过垃圾生成器)随机地和/或根据标题参数,创建将被存储为有效文件 片段的虚假(dummy)(电子邮件)消息。所述虚假垃圾消息可以是具有类似真实文件片段 的标题的随机数据。尽管文件片段可以存储在通过相应标题标识的电子邮件中,但是应该 理解,标题生成器25可以提供标题并将文件片段封装为即时消息。此外,对于同一文件或 不同文件,标题生成器25可以将某些文件片段以电子邮件消息形式存储在电子邮件服务 器和/或存储系统125上并将其他文件片段存储在即时消息服务器(未示出)上。另外,标题生成器25根据收到的参数(例如,来自分割器20)将文件恢复密钥(例 如,用于对文件进行解密的公钥/私钥方案中的密钥)提供给通信设备100的请求接口 5。 如果未收到任何参数,则标题生成器25将使用默认参数。标题生成器25将保持活动信号 提供给元数据生成器50。现在,参考图1讨论从文件的各个文件片段恢复文件。用户可使用请求接口 5登 录到管理处理器模块10。使用文件密钥或密码,请求接口 5向管理处理器10发出文件恢复 请求。管理处理器模块10将文件恢复请求路由到服务器120的文档请求器30。文档请求 器30控制和记录文件恢复活动以确保文件恢复活动的可跟踪性。文档请求器30接收文件 恢复请求并从元数据数据库130检索文件的元数据。使用元数据中的参数,文档请求器30 将电子邮件服务器和/或存储系统125中的文件片段(被请求文件的片段)路由到取消分 割器40。文档请求器30可使文件片段(其可以是电子邮件中封装的片段)从电子邮件服 务器和/或存储系统125被直接读取到取消分割器40,不考虑是使用电子邮件服务器、存 储设备和/或两者的组合存储文件片段。此外,如果恰好丢失任何恢复文件所需的文件片 段,则文档请求器30负责确定任何丢失的文件片段并使用冗余恢复这些丢失的文件片段,因为相同的文件片段存储在不同的电子邮件服务器125中。文档请求器30保存联机受信 取消分割器和解密服务提供商的列表。使用来自元数据数据库130的元数据,取消分割器40从文件片段重建已分片的加 密后的文件。例如,当从电子邮件服务器和/或存储系统125收到文件片段时,与垃圾收集 器35协作的取消分割器40判定是否找到垃圾片段,如果找到,则丢弃垃圾片段。对于其余 文件片段,取消分割器40丢弃文件片段标题,仅例如保留文件片段的二进制代码。取消分 割器40按顺序排列来自每个文件片段的二进制代码。例如,取消分割器40被配置为从电 子邮件消息的正文提取每个文件片段的数据,并且取消分割器40按正确的顺序汇集每个 文件片段。取消分割器40在恢复所有文件片段之后重组加密后的文件,将收到的文件片段 的结果返回到文档请求器30,然后将加密后的文件转发给解密模块45。解密模块45从取消分割器40接收加密后的文件并从元数据数据库检索解密方 法。尽管文档请求器30和取消分割器40可以恢复加密的文件,但是示例性实施例被如此 配置文档请求器30和取消分割器40没有访问解密方法的权限。解密模块45对加密后的 文件进行解码(使用解密方法)并将解码后的文件路由到通信设备100的请求接口 5。通 信设备100的用户能够通过请求接口 5访问所恢复的文件。根据示例性实施例,对于每个已分片的文件,元数据数据库130可包括有关文件 的信息。有关分割和文件片段的信息、有关电子邮件帐户的信息、有关电子邮件服务器和/ 或存储服务的地址的信息,以及有关标题标识的信息。在图1中,应该理解,在示例性实施例和实施方式中,通信设备100可以是各种其 他通信设备,例如通用计算机或膝上型计算机、诸如蜂窝电话和智能电话之类的无线设备、 便携式计算设备、数字音乐播放器(例如,MP3播放器)、个人数字助理(PDA)、移动设备、数 字电视等。根据示例性实施例,所述体系结构包括上述通信设备100,通信设备100也可以 是以可通信的方式与机顶盒相连以访问诸如但不限于因特网的网络115的启用IP的电视。 网络115可包括电路交换和/或分组交换技术和设备,例如路由器、交换器、集线器、网关 等,用于促进通信设备100、服务器105、服务器110、服务器120、电子邮件服务器和/或存 储系统125以及元数据数据库130之间的通信。网络115可包括例如使用IEEE 802. 11标 准提供空间通信传输的有线和/或无线组件。在示例性实施例中,网络115可以是由服务提供商管理的托管IP网络,所述服务 提供商控制在此讨论的通信的带宽和服务质量。网络115可通过无线方式实现,例如,使用 诸如WiFi、WiMax, BLUETOOTH之类的无线协议和技术。网络115还可以是分组交换网络, 例如局域网、广域网、城域网、因特网或其他类似类型的网络。网络115可以是蜂窝通信网 络、固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人局域网(PAN)、虚拟专用网 (VPN)、内部网或任何其他适合的网络,并且网络115可以包括接收和发送信号的设备,例 如,小区发射塔、移动交换中心、基站、无线接入点以及卫星。服务器105、110、120以及电子邮件服务器和/或存储系统125可使用能够处理通 过网络115执行的大量活动的高速处理设备(例如,计算机系统)实现。另外,示例性实施例能够但是不限于在图1中示出的体系结构中实现。此外,服务 器105、110和120是众多服务器的代表。电子邮件服务器和/或存储系统125是众多电子 邮件服务器和/或存储系统125的代表。同样,网络115是众多网络的代表,通信设备100是众多通信设备的代表。因此,图1中示出的体系结构既不限于其中示出的元件数量,也不 限于这些元件的精确配置和运行连接。进而,本领域的技术人员应该理解,可以增加、减少 或替代在图1的体系结构中描述的元件。还应理解,每个模块(例如,请求接口 5、管理处理 器模块50、加密模块15、分割器20、标题生成器25、文档请求器30、垃圾收集器35、取消分 割器40和解密模块45)可位于不同的高速处理设备上并在这些设备上实现,也可以在单个 高速处理设备上实现。图2示出了根据示例性实施例分割元数据。出于说明目的,在图2中将元数据描述 为第一元数据205、第二元数据210以及(直到)第η元数据215,其中第一元数据205是有 关分割和恢复文件片段的信息,其中第二元数据210是有关分割和恢复第一元数据205的 信息,其中第η元数据215 (其表示最后一个元数据)是有关分割和恢复第η-1元数据(表 示最后一个元数据前面的元数据,例如第一、第二、第三、第四、第五、第六...元数据)的信 息。此外,应该理解,第二元数据210还可以包括有关分割和恢复文件片段的信息以及有关 分割和恢复第一元数据205的信息;这也适用于任何后续元数据直到第η元数据215。图2示出了包括用于恢复文件的文件片段的各种参数的第一元数据205。参考图 1,元数据生成器模块50可以将第一元数据205发送到分割器20。分割器20接收第一元 数据205并将第一元数据205分割为图2中示出的第一元数据片段205a、205b、205n(其表 示最后一个第一元数据片段)。分割器20将第一元数据片段205a、205b和205η发送到标 题生成器25。对于第一元数据片段205a、205b和205η,标题生成器25创建单独的标题、创 建单独的电子邮件消息、提供电子邮件消息的地址、将相应第一元数据片段205a、205b和 205η插入电子邮件消息的正文中,并将电子邮件消息传输到相应电子邮件服务器和/或存 储系统125 (参见图3)。在图2中,有关分割和恢复第一元数据205的信息存储在第二元数据210中,以及 /或者第二元数据210可以包括用于恢复文件的文件片段的信息。元数据生成器模块50可 以将第二元数据210从元数据数据库130发送到分割器20,并且分割器20将第二元数据 210分成第二元数据片段210a、210b和210η。分割器20将第二元数据片段210a、210b和 210η发送到标题生成器25。如此处所述,标题生成器25创建单独的标题、创建单独的电子 邮件消息、提供电子邮件消息的地址、将相应第二元数据片段210a、210b和210η插入电子 邮件消息的正文中,并将电子邮件消息传输到相应电子邮件服务器和/或存储系统125 (参 见图3)。同样,第η元数据215包括有关分割和恢复第η_1元数据的信息,并且出于此实例 的目的,第η-1元数据将是第二元数据210。本领域的技术人员将理解,在第η元数据215之 前可以具有许多元数据,并且示例性实施例并不限于第二元数据之后紧跟第η元数据215。 此外,第η元数据可以包括用于恢复文件的文件片段的信息。在一个实例中,第η元数据 215可以不进行分割,并且可以存储在元数据数据库130和/或电子邮件服务器和/或存储 系统125中。在另一个实例中,根据示例性实施例,第η元数据215可以分割为第η元数据 片段215a、215b和215η,以便可以针对第η元数据片段215a、215b和215η创建和存储相 应电子邮件消息。当第η元数据215被分割为第η元数据片段215a、215b和215η时,元数 据生成器50可以生成附加元数据(未示出)以存储有关分割和恢复第η元数据215的信 息。根据示例性实施例,构想了可以根据此处所述的用于从文件片段恢复文件的过程,重建
8和恢复第一元数据205的第一元数据片段205a、205b和205η、第二元数据210的第二元数 据片段210a、210b和210η以及第η元数据215的第η元数据片段215a、215b和215η。图3示出了根据示例性实施例被结合到消息300中的数据片段实例。此实例描述 数据片段,但如此处所述,本领域的技术人员将理解,数据片段可以是即时消息片段、元数 据片段等。参考图3,标题生成器25被配置为选择适当的服务器和/或存储系统125作为地 址框310中的地址。标题生成器25在主题框320中针对文件片段创建适当的标题,并将文 件片段插入电子邮件消息300之一的电子邮件正文330中。例如,对于第一文件片段,标题 生成器25可以选择服务器01的地址以便输入地址框310,并创建标题文件片段01以便输 入主题框320。标题生成器25将文件片段数据(例如,二进制代码)添加到电子邮件消息 300的电子邮件正文330中。标题生成器25可以针对文件的每个文件片段创建所需数量的电子邮件消息300。 例如,标题生成器25创建寻址到服务器η的电子邮件消息300 (其中包含标题文件片段η), 并在电子邮件正文330中输入对应的文件片段数据。在图3中,对于服务器01到η的地址 没有任何限制。例如,可以将文件的某些文件片段发送到不同地理位置处的服务器、同一位 置处的不同服务器和/或全球范围内不同实体所管理的服务器。此外,可以将某些文件片 段发送到服务器的不同分区。此外,根据示例性实施例,消息300可以是由标题生成器25创建并发送到各个即 时消息传送服务器的即时消息,并且即时消息可以使用如图3中所示的地址框310、主题框 320和/或电子邮件正文330。图4、5、6和7中分别示出了表1、2、3和4。表1、2、3和4提供了在示例性实施例 中使用的元件的总体描述。虽然表1、2、3和4中的元件被指定为具有特定职责、服务和特 性,但本领域的技术人员将理解,任何元件的特定职责、服务和特性可以与此处所述的任何 其他元件共享、集成和/或相互独立。如此处所述,示例性实施例提供了冗余,以便可以将同一文件片段发送到不同的 服务器。如果一个服务器发生故障,则其他服务器可以提供丢失的数据。示例性实施例提 供了速度和下载/负载平衡,因为它可以从不同的服务器恢复文件的各部分(文件片段)。 示例性实施例还可以使用现有的因特网基础结构,并且无需更改现有的存储服务结构或电 子邮件服务,因为电子邮件服务仅用于发送/接收消息而存储系统仅用于发送/接收文件。 此外,根据示例性实施例,Web存储工具的所有模块(例如,文档请求器30、分割器20、元数 据生成器50等)都是服务,并且示例性实施例提供了服务冗余。例如,如果某个模块(服 务)脱机,则示例性实施例可以将片段或文件路由到替代脱机服务(模块)的受信且可用 的服务提供商。换言之,如果任何文件片段丢失或任何特定的服务提供商脱机,示例性实施 例将提供每个文件片段的冗余和每个服务的冗余。服务冗余可以在面向服务的体系结构中 实现。此外,就安全性而言,由于文件是加密的,因此不会通过未授权的搜索机制建立文 件内容(例如,文件片段)的索引。此外,用户(例如,通信设备100的用户)不具有直接 访问数据或元数据的权限,并且解密密钥由文件所有者(其可以是用户)持有。因此,即使 未授权的元数据数据库管理员尝试重组文件,其也无法进行解密,因为解密密钥由文件所有者(例如,通信设备100的用户)持有。图8是示出根据示例性实施例归档文件的流程图800。流程图800中的条纹式箭 头示出了根据示例性实施例的用于将文档805存储为文件片段的过程的流程。在此,术语 文档和文件可以互换使用以表示可以根据示例性实施例归档和恢复的数据。使用通信设备100的用户可登录到请求接口 5,并且请求接口 5又登录到位于服务 器105上的管理处理器模块10。管理处理器模块10使用表示登录可接受的指示对请求接 口 5进行响应。允许用户通过请求接口 5存储文档805。请求接口 5将文档805 (例如,文 件)及其相关信息传输到管理处理器模块10。管理处理器模块10确定可用元数据生成器 50以接收文档805及其相关信息。元数据生成器50生成文档805的元数据并将所述元数 据存储在元数据数据库130 (例如,受信元数据数据库服务的元数据数据库)中。由元数据 生成器50生成的元数据可例如包括文件(文档)名称、文件大小、元数据创建日期等。元 数据生成器50从元数据数据库130接收完成响应。元数据生成器50将文档805连同加密 参数(可选)一起传输到可用加密模块15以进行编码。加密模块15对文档805进行加密并将加密后的文件名和加密结果传输到元数据 生成器50。元数据生成器50将加密结果、加密后的文件名、加密后的文件的所有者、加密后 的文件的大小以及创建日期传输到元数据数据库130。元数据生成器50从元数据数据库 130接收完成响应。响应于元数据生成器接收到加密后的文件名,元数据生成器50将分割 参数提供给加密模块15。加密模块15将加密后的文档805和分割参数传输到可用分割器 20。响应于接收到加密后的文档805及其分割参数,分割器20根据收到的分割参数将 加密后的文档805分割为文件片段。例如,如果分割器20未收到任何分割参数,则分割器 20可被配置为根据分割器20的预定参数将加密后的文档805分割为文件片段。分割器20 将加密后的文件名、文件片段信息和分割完成消息传输到元数据生成器50,并且响应于元 数据生成器接收到此信息,元数据生成器50将标题参数传输到分割器20。分割器20将文 件片段和标题参数传输到标题生成器25,并且标题生成器25使用表示收到片段的消息响 应分割器20。根据标题生成器参数,标题生成器20针对每个文件片段生成适当的标题(消息标 题)、提供要接收每个文件片段(在消息中)的每个电子邮件服务器和/或存储系统125的 地址(以及确定电子邮件服务器和/或存储系统125)、将垃圾插入虚假消息(带有适当的 标题)并提供冗余,以便除原始文件片段以外,可以在不同消息中重复同一文件片段并将 其存储在不同的电子邮件服务器和/或存储系统125中。标题生成器25将文件片段(在不同的消息中)传输到可用电子邮件服务器和/ 或存储系统125。响应于接收到文件片段,电子邮件服务器和/或存储系统125将确认传输 到标题生成器25。标题生成器25将片段信息和存储结果传输到元数据生成器50,并且作 为响应,元数据生成器50将表示发送片段结果的消息传输到元数据数据库130。响应于从 元数据数据库130接收到确认,元数据生成器50向管理处理器模块10指示文件存储结果 消息。管理处理器模块10通知用户已通过请求接口 5归档文档805。图9是示出根据示例性实施例恢复文件的流程图900。流程图900中的条纹式箭 头示出了用于根据示例性实施例重建和恢复已存储文档805的过程的流程。
使用通信设备100的用户可登录到请求接口 5,并且请求接口 5又登录到位于服务 器105上的管理处理器模块10。管理处理器模块10使用表示登录可接受的指示对请求接 口 5进行响应。允许用户通过请求接口 5请求恢复文档805。请求接口 5将文件名和(文 档805的)恢复请求传输到管理处理器模块10。使用收到的文件名,管理处理器模块10从元数据数据库130检索文档805的恢复 参数。管理处理器模块10选择可用文档请求器30并将文件名和恢复参数传输到可用文档 请求器30。使用收到的恢复参数,文档请求器30将所获得的片段消息传输到电子邮件服务 器和/或存储系统125。例如,如果文档805的文件片段(例如,电子邮件消息)存储在25 个不同的电子邮件服务器和/或存储系统125中,则文档请求器30从每个相应电子邮件服 务器和/或存储系统125请求对应的文件片段。电子邮件服务器和/或存储系统125均将相应文件片段传输到可用的取消分割器 40。取消分割器40接收每个文件片段并将表示收到片段的消息传输到文档请求器30。根 据恢复参数,取消分割器40 (通过可以与取消分割器集成和/或分离的垃圾收集器35)判 定虚假消息中是否存在任何垃圾文件,并且如果存在垃圾文件,则取消分割器40 (通过垃 圾收集器35)丢弃虚假消息中的垃圾文件。根据恢复参数,取消分割器40从所接收的文件 片段重建加密后的文档。取消分割器40将加密后的文档传输到解密模块45。解密模块45接收加密后的文档并将表示收到加密后的文件的消息传输到文档请 求器30。解密模块45从元数据数据库130请求和检索用于对加密后的文档进行解密的解 密方法。解密模块45可以使用从元数据数据库130检索的解密密钥或任何其他解密方法对 加密后的文档进行解密,并且解密模块45将所恢复的文档805提供给用户的通信设备100 的请求接口 5。解密模块45将解密结果消息传输到文档请求器30。文档请求器30将恢复 结果消息传输到管理处理器模块10,然后管理处理器模块10将恢复结果消息传输到请求 接口 5。图10示出了具有可包括在示例性实施例中的能力的计算机1000的实例。此处所 述的各种方法、程序、模块和技术也可以结合和/或使用计算机1000的能力。计算机1000 的一种或多种能力可以在此处所述的任何元件(例如,通信设备100、服务器105、服务器 110、服务器120、电子邮件服务器和/或存储系统125以及网络115)中实现。通常,在硬件体系结构方面,计算机1000可包括一个或多个处理器1010、计算机 可读存储器1020,以及一个或多个通过本地接口(未示出)以通信的方式耦合的输入和/ 或输出(I/O)设备1070。如本领域公知的,本地接口可以例如是(但不限于)一个或多个 总线或其他有线或无线连接。本地接口可以具有使能通信的其他元件,例如控制器、缓冲器 (高速缓存)、驱动器、转发器以及接收器。此外,本地接口可包括地址、控制和/或数据连 接以便在上述组件之间实现相应的通信。处理器1010是用于执行可存储在存储器1020中的软件的硬件设备。处理器1010 实际上可以是任何定制或可从市场购买的处理器、中央处理单元(CPU)、数据信号处理器 (DSP)或者与计算机1000关联的若干处理器之间的辅助处理器,并且处理器1010可以是基 于半导体的微处理器(采用微芯片形式)或宏处理器。计算机可读存储器1020可以包括易失性存储元件(例如,随机存取存储器(RAM), 包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)和非易失性存储元件(例如,ROM、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)、可 编程只读存储器(PR0M)、磁带、光盘只读存储器(CD-ROM)、盘、软盘、盒带、卡带等)中的任 何一个或它们的组合。此外,存储器1020可以包括电、磁、光和/或其他类型的存储介质。 注意,存储器1020可以具有分布式体系结构,其中各种组件相互远离但可由处理器1010访 问。存储器1020中的软件可以包括一个或多个单独的程序,每个程序包括用于实 现逻辑功能的可执行指令的有序列表。存储器1020中的软件包括适合的操作系统(0/ S) 1050、编译器1040、源代码1030,以及示例性实施例的一个或多个应用1060。如示出的, 应用1060包括大量用于实现示例性实施例的特性、过程、方法、功能以及操作的功能组件。 计算机1000的应用1060可以表示多种应用、代理、软件组件、模块、接口等,如此处所述,但 应用1060并非旨在作为限制。操作系统1050可以控制其他计算机程序的执行,并提供调度、输入-输出控制、文 件和数据管理、存储器管理、通信控制以及相关服务。应用(多个)1060可以采用面向服务的体系结构,其可以是相互通信的服务的集 合。此外,面向服务的体系结构允许两个或更多服务(例如,代表彼此)协调和/或执行活 动。服务之间的每次交互可以是自包含的及松散耦合的,以便每次交互独立于任何其他交互。此外,应用1060可以是源程序、可执行程序(目标代码)、脚本或任何其他包括一 组要执行的指令的实体。如果是源程序,则通常通过编译器(例如编译器1040)、汇编器、解 释器等(它们可以包括在存储器1020内,也可以不包括在存储器1020内)转换程序,以便 与操作系统1050 —起正确运行。此外,应用1060可以编写为(a)面向对象的编程语言,它 具有数据类和方法类,或(b)过程编程语言,它具有例程、子例程和/或函数。I/O设备1070可以包括输入设备(或外设),例如但不限于鼠标、键盘、扫描仪、麦 克风、摄像头等。此外,I/O设备1070还可以包括输出设备(或外设),例如但不限于打印 机、显示器等。最后,I/O设备1070还可包括传送输入和输出的设备,例如但不限于NIC或 调制器/解调器(用于访问远程设备、其他文件、设备、系统或网络)、射频(RF)或其他收 发器、电话接口、桥接器、路由器等。I/O设备1070还包括用于通过各种网络(例如,因特 网或内联网)通信的组件。I/O设备1070可以使用蓝牙连接、电缆与处理器1010连接和/ 或通信(通过例如通用串行总线(USB)端口、串行端口、并行端口、火线、HDMI(高清晰度多 媒体接口)等)。当计算机1000运行时,处理器1010被配置为执行存储在存储器1020内的软件, 以便将数据传送到存储器1020以及从存储器1020传送数据,并且通常根据软件控制计算 机1000的运行。应用1060和操作系统1050由处理器1010全部或部分地读取,并且可能 在处理器1010内进行缓冲,然后被执行。当应用1060以软件实现时,应该注意,应用1060实际上可以存储在任何计算机可 读介质上,以便由任何计算机相关系统或方法使用或与任何计算机相关系统或方法结合。 在本文档的上下文中,计算机可读介质可以是能够包含或存储由计算机相关系统或方法使 用或与所述计算机相关系统或方法结合的计算机程序的电、磁、光或其他物理设备或装置。应用1060可以包含在任何计算机可读介质中,以便由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合,所述指令执行系统、装置或设备包括基于计 算机的系统、包含处理器的系统,或者其他可以从所述指令执行系统、装置或设备取回指令 并执行指令的系统。在本文档的上下文中,“计算机可读介质”可以是任何能够存储、读取、 写入、传送或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结 合的程序的装置。所述计算机可读介质可以例如是(但不限于)电、磁、光或半导体系统、 装置或设备。计算机可读介质的更具体实例(非穷举列表)包括以下项具有一个或多个线的 电连接(电)、便携式计算机盘(磁或光)、随机存取存储器(RAM)(电)、只读存储器(ROM) (电)、可擦写可编程只读存储器(EPR0M、EEPR0M或闪存)(电)、光纤(光)以及便携式光 盘存储器(⑶ROM、⑶R/W)(光)。注意,所述计算机可读介质甚至可以是其上打印程序或 被穿孔的纸张或其他适当介质,因为所述程序可以通过例如光扫描所述纸张或其他介质被 电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计 算机存储器中。在应用1060以硬件实现的示例性实施例中,应用1060可以通过以下技术中的任 何一种或其组合实现,每种技术都是本领域公知的具有用于针对数据信号实现逻辑功能 的逻辑门的离散逻辑电路(多个)、具有适当组合逻辑门的专用集成电路(ASIC)、可编程门 阵列(PGA)、现场可编程门阵列(FPGA)等。将理解的是,计算机1000包括可以包括在此处所述的各种设备和系统中的软件 和硬件组件的非限制性实例,并且将理解的是,可以在示例性实施例中所述的各种设备和 系统中包括其他软件和硬件组件。示例性实施例的功能能够以软件、固件、硬件或它们的某一组合实现。作为一个实例,本发明的一个或多个方面可以包括在具有例如计算机可用介质的 制品(例如,一个或多个计算机程序产品)中。所述介质中例如包含用于提供和促进本发 明的能力的计算机可读程序代码装置。所述制品可以包括为计算机系统的一部分或单独出
佳口。此处使用的术语只是为了描述特定实施例,并非旨在限制本发明。如此处使用的, 单数形式“一”、“一个”和“所述”旨在同样包括复数形式,除非上下文另外明确指出。还将 理解的是,当在本说明书中使用时,术语“包括”和/或“包含,,指定存在所声明的特性、整 数、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特性、整数、步骤、操 作、元件、组件和/或它们的组。下面权利要求中的所有装置或步骤以及功能元件的对应结构、材料、操作及等同 物旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材 料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要 将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明 范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好 地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以 有适合所要的特定用途的具有各种改变的各种实施方式。此处示出的流程图仅是一个实例。在不偏离本发明的精神的情况下,其中所述的 此图或步骤(或操作)可以具有许多变型。例如,可以按照不同的顺序执行所述步骤,或者
13可以添加、删除或修改步骤。所有这些变化都被视为所要求保护的发明的一部分。
虽然描述了本发明的示例性实施例,但是应该理解,本领域的技术人员可以在现 在和将来作出各种落入下面的权利要求范围内的改进和增强。这些权利要求应被解释为维 持对上述本发明的正确保护。
权利要求
一种在计算机上实现的用于将文件作为片段存储在存储元件上的方法,所述方法包括在具有存储器和至少一个处理器的计算机处接收存储文件的请求;将所述文件分割为片段;生成相应标题以单独标识所述片段中的每个片段;生成多个电子邮件,其中对于所述多个电子邮件中的每个电子邮件电子邮件正文包括所述片段之一并且电子邮件主题行包括所述相应标题;将所述多个电子邮件中的每个电子邮件存储在存储元件上;以及生成所述文件的第一元数据,其中所述第一元数据包括用于从所述片段重建所述文件的信息。
2.如权利要求1中所述的方法,其中所述存储元件包括以下项中的至少一个多个电 子邮件服务器、多个存储系统以及多个电子邮件帐户。
3.如权利要求1中所述的方法,其中所述多个电子邮件中的每个电子邮件均存储在所 述存储元件中的一个不同存储元件上。
4.如权利要求1中所述的方法,还包括生成所述多个电子邮件的副本以便所述片段 中的每个片段都具有副本。
5.如权利要求1中所述的方法,还包括将所述文件的所述第一元数据分割为第一元数据片段;生成多个元数据电子邮件,所述多个元数据电子邮件相应地包括所述第一元数据片段 中的每个第一元数据片段;以及将所述多个元数据电子邮件中的每个元数据电子邮件存储在所述存储元件上。
6.如权利要求5中所述的方法,其中所述多个元数据电子邮件与所述多个电子邮件存 储在不同的存储元件上。
7.如权利要求5中所述的方法,还包括生成第二元数据,所述第二元数据包括用于从 所述第一元数据片段重建所述第一元数据的信息。
8.如权利要求1中所述的方法,还包括 生成垃圾片段;生成包括相应垃圾片段的多个垃圾电子邮件;以及将所述多个垃圾电子邮件与包括所述文件的片段的所述多个电子邮件混合地存储在 所述存储元件上。
9.一种在计算机上实现的用于恢复被分割为片段以便存储的文件的方法,所述方法包括在具有存储器和至少一个处理器的计算机处接收检索文件的请求; 从与所述文件对应的第一元数据检索恢复参数;根据所述恢复参数从多个电子邮件的多个电子邮件正文检索所述文件的片段; 根据所述恢复参数将所述文件的片段重建为恢复后的文件;以及 提供所述恢复后的文件。
10.如权利要求9中所述的方法,还包括响应于将所述第一元数据分割为元数据片段,重建所述第一元数据。
11.如权利要求9中所述的方法,其中重建所述第一元数据包括访问第二元数据。
12.如权利要求9中所述的方法,还包括判定垃圾片段是否与所述文件的片段混合在一起;以及 删除所述垃圾片段以仅保留所述文件的片段。
13.一种计算机系统,包括用于实现权利要求1-12中的任何方法的任何步骤的装置。
全文摘要
本发明涉及一种用于将文件作为片段存储在存储元件上的方法及其系统。具有存储器和至少一个处理器的计算机接收存储文件的请求。将所述文件分割为片段。生成相应标题以单独标识所述片段中的每个片段。生成多个电子邮件并且对于每个电子邮件电子邮件正文包括所述片段之一并且电子邮件主题行包括所述相应标题。将所述电子邮件中的每个电子邮件存储在存储元件上。生成所述文件的第一元数据,所述第一元数据包括用于从所述片段重建所述文件的信息。
文档编号G06F17/30GK101964080SQ20101023144
公开日2011年2月2日 申请日期2010年7月16日 优先权日2009年7月21日
发明者E·R·蓬泰尔, L·C·M·T·D·拉塞尔达, L·G·佛朗哥, R·D·皮耶里 申请人:国际商业机器公司