CN110574352A - 通过存储设备迁移信息 - Google Patents
通过存储设备迁移信息 Download PDFInfo
- Publication number
- CN110574352A CN110574352A CN201880028063.4A CN201880028063A CN110574352A CN 110574352 A CN110574352 A CN 110574352A CN 201880028063 A CN201880028063 A CN 201880028063A CN 110574352 A CN110574352 A CN 110574352A
- Authority
- CN
- China
- Prior art keywords
- data
- manifest
- data objects
- service
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
诸如可连接网络的数据传输设备之类的设备可被配置来在集群中操作以协调数据的存储。可生成第一清单,所述第一清单盘点从数据源成功传输到所述数据传输设备的第一数据集。可生成第二清单,所述第二清单盘点从所述数据传输设备成功传输到数据目的地的第二数据集。可将所述第一清单与所述第二清单进行比较以确定一个或多个数据对象的传输状态。所述传输状态可指示已成功从所述数据源传输到所述数据目的地的一个或多个数据对象。可根据所述传输状态来处理所述一个或多个对象。
Description
相关申请的交叉引用
本申请要求2017年3月29日提交的名称为“MIGRATION OF INFORMATION VIASTORAGE DEVICES”的美国专利申请号15/473,475和2017年3月29日提交的名称为“MANIFEST GENERATION FOR DATA TRANSFERS”的美国专利申请号15/473,479的权益,其公开内容以引用方式整体并入本文。
背景技术
数据存储容量和数据用户需求的增长已经远远超过了网络数据传输带宽。比如,大规模数据集(例如“大数据”)可能包含如此庞大或复杂的数据集合,以至于传统的数据传输解决方案无法高效地或有效地传输它们。将大规模数据集从源目的地移动到数据存储系统上的过程可能会消耗大量资源和/或涉及风险。例如,数据集的大小可能使得通过网络进行数据传输是不切实际的。另外,由于数据集的大小或复杂性,可能难以确定整个数据集是否已成功地从源位置传输或复制到数据存储系统上。确定数据集是否已成功传输到最终目的地处的数据存储位置也可能很有挑战性,尤其是在以避免至少部分传输使用任何计算机网络的方式传输数据时。
附图说明
各种技术将参考附图来描述,在附图中:
图1示出在其中可实践各种实施方案的环境;
图2示出在其中可实践各种实施方案的环境的说明性示例;
图3示出根据各种实施方案的可连接网络的数据传输设备的说明性示例;
图4示出根据各种实施方案的数据传输清单的说明性示例;
图5示出用于向数据传输设备传输数据对象和从数据传输设备传输数据对象的过程的说明性示例;
图6示出由在数据传输设备上操作的传输设备服务执行的用于盘点和传输数据对象的过程的说明性示例;
图7示出由服务提供方执行的用于从数据传输设备接收和存储数据对象的过程的说明性示例;
图8示出由集群服务执行的用于基于清单来处理数据对象的说明性过程;
图9示出用于在客户端位置处和服务提供方位置处处理数据传输的环境;并且
图10示出在其中可实现各种实施方案的环境。
具体实施方式
本文描述和建议的技术涉及利用可连接网络的数据传输设备(其可被配置在集群中)将大规模数据集从一个位置以物理方式运输到另一个位置。在一个示例中,可连接网络的数据传输设备的可连接网络的集群可被配置,以使得设备彼此通信并互相传输数据。设备集群可指被配置来一起操作(诸如协同操作以存储数据)的多个设备。例如,设备集群可用于提供超出单个存储设备能够提供的扩展的数据存储和/或处理能力和/或通过存储多个副本和/或通过使用冗余(例如,擦除)编码进行存储来提供持久性。与集群的操作相关的数据和元数据可在集群设备之间分布。本文描述的设备可以是可连接网络的数据传输设备。
如所指出的,各种实现方式可用于将大规模数据集从客户端运输到服务提供方。可将数据集上载到服务提供方的一项或多项服务,使得客户端能够容易地访问数据集。通过服务提供方的大规模数据集的可用性可能使客户端摆脱维护和存储大规模数据集的成本和负担。因此,客户端可能希望从其数据存储系统中删除或移除大规模数据集。然而,从客户端的数据存储系统中删除大规模数据集可能会永久丢失一些或全部数据集。比如,在数据集没有完全或准确地复制到被运输到服务提供方的数据传输设备中的情况下,或者数据集没有从数据传输设备中完全或准确地复制到服务提供方的数据存储系统中的情况下,客户端数据存储系统中的数据集的删除将导致至少一些数据集的永久丢失。此外,在服务提供方处检查整个大规模数据集以确保将数据集成功地传输到其上可能是过度的负担。当客户端系统和服务提供方连接到无法相互通信的不同网络时,情况尤其如此。
为了将数据从一个位置安全地传输到另一个位置,各种实现方式涉及盘点已成功传输到可连接网络的数据传输设备的可连接网络的集群中的数据传输设备中的一个或从其中一个成功传输的数据。与例如将大规模数据集从设备集群复制到数据传输设备结合,可生成源清单,所述源清单对成功传输到数据传输设备的数据集的数据对象进行盘点。当数据传输设备在服务提供方处时,服务提供方的计算机系统可生成接收清单以盘点已成功地从数据传输设备上载到服务提供方的服务的数据对象。可在源清单与接收清单之间执行比较,以确定大规模数据集的数据对象集已成功复制到以下两者:(1)从客户端数据存储系统复制到数据传输设备,以及(2)从数据传输设备复制到服务提供方。客户端可以任何合适的方式安全地处理客户端数据存储系统上的对应数据对象集,诸如通过从数据存储系统中删除所述数据对象集。相反地,客户端可维护未指示要成功复制到服务提供方的任何数据对象的完整性或保护未指示要成功复制到服务提供方的任何数据对象。因此,可大大降低由于数据对象的复制不成功而在源处错误删除数据对象的风险。
在上文和下文的描述中,描述了各种技术。出于解释的目的,将阐述具体的配置和细节,以便提供对实现所述技术的可能方式的透彻理解。然而,也将显而易见,以下所描述的技术可在没有具体细节的情况下实践于不同配置中。此外,可省略或简化众所周知的特征,以避免使所描述的技术模糊。
图1示出在其中可实践本公开的各种实施方案的环境100的说明性示例。在一个实施方案中,执行数据传输操作以将包括数据对象集的数据集复制到可连接网络的数据存储和传输设备102上,所述可连接网络的数据存储和传输设备102用于从数据源104接收数据集并将其以物理方式运输到数据目的地106。可执行数据盘点操作以生成源清单108,所述源清单108对成功复制到数据传输设备102上的数据集的数据对象进行盘点。执行数据传输操作后,可使用一种或多种运输方法108,诸如采用一种或多种车辆(包括卡车、小汽车、自行车、飞机或直升机)的运送服务(作为非限制性示例),将传输设备102从数据源104以物理方式运输到数据目的地106。
当传输设备102到达数据目的地106时,可在传输设备102上执行数据传输操作。数据传输操作包括:尝试将数据集的数据对象从数据传输设备102复制到数据目的地106的一个或多个数据存储设备上。可执行数据盘点操作以生成接收清单112,所述接收清单112对数据传输设备102上成功复制到数据目的地106的数据集的数据对象进行盘点。数据源104的数据存储服务可执行操作114,所述操作114将源清单106与接收清单112进行比较,以确定已成功从数据源104传输到数据目的地106的数据对象集。操作114可包括:确定与在接收清单112上盘点的数据对象相对应的在源清单108上盘点的数据对象。比较操作114的结果可提供对能被安全处理而没有永久丢失数据的风险的数据对象的指示。数据存储服务可根据用于从数据传输设备102读取数据对象、传输到目的地106并相应地更新接收清单112的自动化过程来进行操作,诸如下文所描述。
基于比较操作114,可执行一组操作以处理被指示为成功传输的一个或多个数据对象。在一个实施方案中,可针对被指示为已成功地从数据源104传输到传输设备102上并且从传输设备102传输到数据目的地106的数据对象集执行删除操作,如下文关于图5所描述。
图2示出在其中可实践本公开的各种实施方案的环境200的说明性示例。环境200比如可以是上文结合图1描述的环境100。可连接网络的数据传输设备202A(例如,传输设备102)在客户端位置204处进行处理,并被运输到服务提供方位置206。在服务提供方位置206处处理数据传输设备202A,并且处理后的数据传输设备202B可被运输回客户端位置204。在这种情况下,客户端位置204与服务提供方位置206之间的网络连接可能没有足够的带宽或复杂性来高效地、有效地和/或实际地传输大规模数据对象。因此,在客户端位置204与服务提供方位置206之间可能存在网络间隙208。然而,在一些实施方案中,客户端位置204与服务提供方位置206之间的网络连接可能能够传输其他数据对象和通信,诸如电子邮件、文档和媒体文件。
在客户端位置204处,连接到网络的数据传输设备210的集群通过网络彼此通信并相互传输数据。可连接网络的数据传输设备的集群可指被配置来一起操作的多个可连接网络的数据传输设备。例如,集群210可用于提供超出单个设备能够提供的扩展的数据存储和/或处理能力,和/或通过在设备发生故障时允许恢复数据来提高数据持久性。单个可连接网络的数据传输设备可被配置来单独操作(例如,在不与其他设备协调的情况下),或者可被配置来作为集群操作(例如,通过在集群的多个设备之间以结构化的方式协调数据和元数据的存储)。当被配置来作为集群操作时,数据和元数据可在集群中的设备之间分布。存储设备集群210中的一个或多个设备可与数据传输设备202相同,下文关于图3有详细描述。集群210的集群服务可被利用来执行与集群210相关联的各种操作,诸如执行数据传输操作。
在一些实施方案中,客户可接收可连接网络的数据传输设备,并开始单独使用所述可连接网络的数据传输设备(即,不在集群操作模式下)。出于各种原因,客户可确定在以下情况下单个可连接网络的数据传输设备是适当的:例如,客户可确定单一可连接网络的数据传输设备的数据存储容量足以满足预期的用例或在某些非技术约束下(例如,缺乏订购另外的可连接网络的数据传输设备的资金)的情况下,可连接网络的数据传输设备足以满足客户的需求。客户可开始在单独操作的可连接网络的数据传输设备上传输和/或收集数据。在以后的某个时间点,客户可确定使用另外的可连接网络的数据传输设备是适当的——例如,用例所需的数据存储容量超出了预期的存储需求以及单一可连接网络的数据传输设备的数据存储容量。客户可获取另外的可连接网络的数据传输设备并且提供所述可连接网络的数据传输设备(包括初始的可连接网络的数据传输设备)以集群模式操作,同时仍保留先前由初始的可连接网络的数据传输设备在单一设备操作模式下(即,单独操作而非作为集群的一部分操作)执行的数据和分析。
应当注意,在一些实施方案中,可连接网络的数据传输设备是多个集群的成员。例如,诸如在图2中所示的可连接网络的传输设备202的可连接网络的数据传输设备可以是集群210的一部分且摄取作为集群的一部分(例如,在第一数据存储分区中)的数据,并且同时可以是包括第二组可连接网络的数据传输设备的第二集群(图2中未示出)的一部分。可连接网络的数据传输设备和/或集群可具有与在多个集群中使用设备有关的配置数据。例如,可连接网络的数据传输设备可被配置来允许或禁止特定设备加入或成为多个集群的成员。同样,集群可被配置(例如,通过存储在集群清单中的元数据)来允许或禁止特定集群的设备加入或成为另一个集群的成员。在一些实施方案中,可连接网络的数据传输设备被配置来使得作为加入诸如图2中示出的集群210之类的集群的一部分,所述可连接网络的数据传输设备被提供用于在所述集群上使用。提供用于在集群上使用的设备可包括:擦除、删除、重新格式化、重置或执行其他操作,使得移除来自先前使用的所述设备的先前使用的痕迹(例如程序、应用、数据)。
在一些实施方案中,客户端可与服务提供方的集群服务交互以在集群210上持久地存储多个数据对象。集群服务可以是被配置来管理集群上的数据(例如,具有可执行指令)的计算机系统,诸如通过协调集群中的哪些设备存储哪些数据、确保数据持久性(例如,通过使用擦除或其他冗余编码和在集群中的不同设备上存储不同的数据分片)、将数据复制到被指定用于数据从一个位置到另一个位置的物理方式运输的可连接网络的数据传输设备上等。集群服务可在可连接网络的传输设备202或与一个或多个可连接网络的传输设备具有连通性的单独计算机系统上操作。可从客户端位置204处的数据存储位置212(诸如服务器)将多个数据对象摄取到集群210中。然而,在其他实施方案中,可从外部数据源将多个数据对象传输到集群210。
为了将多个数据对象从集群210传输到服务提供方位置206,客户端可将传输设备202A连接到集群210并将传输设备202A作为集群网络的成员加入其中。传输设备202A可以是被选择用于运送多个数据对象的集群的成员,或者可以是与集群分离的用于以物理方式运输数据对象的数据传输设备。数据传输设备通常是可在服务提供方实体与客户端/客户实体之间反复来回运输的可重复使用的设备。传输设备202A可包括控制设备的各个方面的操作系统,诸如本文所描述的传输设备服务。集群210中的每个设备可被提供有类似的操作系统,使得集群210中的设备共同地操作以存储、加密、传输或以其他方式处置数据。客户端可选择多个数据对象,并且发起将多个对象从集群210复制到传输设备202A的数据传输操作。可生成源清单214,所述源清单214盘点已从集群210成功复制到传输设备202A上的多个数据对象中的数据对象集。源清单214可包括有关数据传输操作的信息,诸如标识已成功复制到传输设备202A的所述数据对象集的数据对象标识符,如下文关于图4所描述的。源清单214可用作未成功传输到传输设备202A的任何数据对象的记录。源清单214可以是静态对象,其条目(如图4所示)在完成后没有被修改。例如,可在完成传输操作或由授权实体对源清单218进行数字签名之后,将源清单218中有关数据传输操作的信息指定为只读。
在一个实施方案中,内容清单可提供在传输设备202A上,所述内容清单指示由客户端指定为要上载到传输设备202A并传输到服务提供方的数据对象的数据对象的清单。内容清单可指示其他信息,诸如关于或标识客户端的信息,或关于从中传输数据对象的集群的信息。在一个实施方案中,内容清单信息可替代地在源清单(例如,下文描述的源清单214)上提供。一旦客户端对适当的数据对象已复制到传输设备202A感到满意,则客户端可安排将传输设备202A以物理方式运输到服务提供方位置206。
在服务提供方位置206处,传输设备202A可连接到服务提供方的一项或多项服务以检索和存储数据对象。一项或多项服务可包括用于与所连接的数据传输设备交接以从传输设备202A摄取或复制数据对象的设备接口服务216。一项或多项服务还可包括服务提供方的数据存储服务217。数据存储服务217可以是包括非易失性数据存储单元的持久性数据存储系统。数据存储服务217可以是用于持久地存储客户端的数据或内容,并且可用于使数据或内容按需对客户端可用的基于web或基于云的服务。在一个实施方案中,数据存储服务可包括用于归档和提供客户端数据的长期备份的存储服务部件。设备接口服务216可检索提供在传输设备202A上的内容清单,以确定有关要检索的数据对象的内容信息。内容信息可包括:数据对象在传输设备202A上的内容位置、标识要检索的数据对象的标识信息以及数据对象将被复制到的数据存储服务的存储位置。内容清单可由一个或多个授权实体诸如客户端的管理实体或集群210的传输设备服务进行数字签名。
生成接收清单218,所述接收清单218盘点从传输设备202A成功地复制到服务提供方的数据存储位置诸如数据存储服务217的数据存储位置的数据对象。在一个实施方案中,服务提供方的数据存储服务可对于成功传输的每个数据对象,将确认发送到传输设备202A的传输设备服务。可根据提供用于来回发送通信的规则的服务或实体之间建立的一种或多种握手协议来发送确认通信。握手协议可以是本领域中已知的握手协议(诸如TLS握手),或者可以是服务所独有的握手协议。传输设备202A的传输设备服务可基于从数据存储服务接收到的确认来生成接收清单218。接收清单218还可包括标识成功复制到数据存储服务的数据对象的标识信息。接收清单218可以是静态对象,其条目(如图4所示)在完成后没有被修改。例如,可在完成传输操作或由授权实体对接收清单218进行数字签名之后,将接收清单218中有关数据传输操作的信息指定为只读。可将接收清单218与内容清单进行比较,以确定从传输设备202A未成功复制的数据对象。可执行另外的数据传输尝试,以复制在初始尝试中未成功复制的任何数据对象。与复制数据对象结合,数据存储服务中的传输设备服务的一者或两者可使用它们各自的密码密钥对接收清单218进行数字签名。
数据传输操作完成后,将接收清单218提供给一个或多个实体,以有利于在客户端位置处处理数据对象。在一个实施方案中,接收清单218可存储在传输设备202B上,并通过上文描述的运输方法的任何一种返回到客户端位置204。在客户端位置处,传输设备202B可连接到集群210,并且传输设备服务可从传输设备202B获得接收清单218。在一些实施方案中,可从服务提供方的清单服务下载或以其他方式发送接收清单,诸如通过向服务提供方进行认证并通过图形用户界面(例如,Web页面)来获得接收清单。
集群210的传输设备服务可将源清单214与接收清单218进行比较220,以确定被成功复制到服务提供方的存储位置的所复制到传输设备202A上的数据对象集。比如,比较220可包括:将在源清单214中标识的数据对象的标识信息与在接收清单218中标识的数据对象的标识信息进行比较,以确定所述对象集。在一个实施方案中,传输设备服务可以与未成功复制到存储位置的数据对象不同的方式处理已成功复制到服务提供方的存储位置的数据对象。比如,传输设备服务可从集群210中删除已成功复制的对象,并且避免删除被指示为未成功复制的数据对象。又如,传输设备服务可保护未成功复制的数据对象免受删除或更改,并使成功复制的对象不受保护。在某些实施方案中,传输设备服务可基于比较220的结果向客户端的一个或多个计算系统提供指示,以指示哪些数据对象被成功复制并且哪些数据对象未被复制到服务提供方的存储位置。因此,将源清单214与接收清单218进行比较有助于防止由于对服务提供方的不良数据传输操作而导致的未成功传输的数据对象的意外永久丢失。
图3示出可连接网络的数据传输设备302以及可包括在其中的部件的图解300。图解300示出可被包括在可连接网络的数据传输设备中的各种部件和模块。图3中所示的可连接网络的数据传输设备302可与本公开中其他地方描述的那些一致。所述设备可被配置有更少或更多的部件和/或模块。一些部件和/或模块可由其他合适的部件和/或模块替换。可连接网络的数据传输设备302的示例可包括以下部件,诸如但不限于:设备存储器304;一个或多个安全模块306;持久性数据存储设备308;处理器310;电子显示器312;人机接口设备314;网络接口316和一个或多个传感器318。可连接网络的数据传输设备可被封装在防篡改外壳320中。
可连接网络的数据传输设备302可被配置来具有设备存储器304。可使用任何合适形式的易失性或非易失性存储器,诸如ROM、固态驱动器、RAM、寄存器、高速缓存和其他类型的临时存储器。存储器304可包括提供可执行程序指令的操作系统,所述可执行程序指令在由处理器310执行时致使设备302以本文所描述的方式执行。存储器304可被配置来存储集群清单322和可从集群清单的加密的有效载荷获得的密码材料,诸如密码密钥324。密码密钥324可由可连接网络的数据传输设备302使用以执行一个或多个特征、功能、操作、请求等。在一些实施方案中,集群清单322是从集群的另一设备获得的。
可连接网络的数据传输设备302可被配置有一个或多个安全模块,诸如图3中所示的安全模块306。安全模块可以是可信平台模块(TPM)、物理不可克隆函数(PUF)、硬件安全模块(HSM)等。在一些实施方案中,安全模块是通过将密码密钥存储在防篡改物理设备中来保护密码密钥的物理计算设备。安全模块可用于密码密钥的生成和存储,并用来为安全模块的授权客户端执行密码操作。一般来讲,不能以不受保护的形式从安全模块中导出密码密钥。在一些实施方案中,安全模块被配置来执行密码操作,使得输入值和输出值具有不同的固定大小。例如,在密码操作是加密操作的情况下,输入明文可具有第一固定大小(例如,254个字节),并且可生成具有第二固定大小(例如,312个字节)的输出密文。相反地,解密操作可接受大小为312字节的输入密文,并生成大小为254字节的对应输出明文。安全模块可被配置来执行各种类型的密码操作,诸如加密数据、解密数据、验证数据的真实性等。可扩展加密操作和解密操作以分别支持认证加密和认证解密。已被篡改或遭受过企图篡改的安全模块可无法执行密码操作。
在一些实施方案中,通过成功地解密密文来验证安全模块的真实性。在一些实施方案中,可连接网络的数据传输设备302进一步被配置有一个或多个持久性数据存储设备308部件。持久性数据存储介质可包括非易失性存储设备,诸如硬盘驱动器、磁带驱动器、磁驱动器、非易失性快闪存储器等。持久性存储介质可被配置来在从一个数据设施向另一个数据设施的运送期间存储大量的加密数据(例如,来自诸如客户存储系统之类的大数据存储)。在一些实施方案中,可连接网络的数据传输设备302通过网络连接来接收要存储的数据,所述网络连接穿过外壳318可访问并且被配置来提供对作为可连接网络的存储设备的持久性存储介质的访问。在一些示例中,可连接网络的数据传输设备302通过通信会话(诸如,受密码保护的通信会话(例如,TLS会话))从另一个集群设备接收要存储的数据。在一些实施方案中,持久性数据存储设备308被配置来与集群中的其他可连接网络的数据传输设备的持久性数据存储设备结合操作。例如,在一些实施方案中,在集群的多个可连接网络的数据传输设备内和/或跨集群的多个可连接网络的数据传输设备,跨多个介质的持久性存储介质之间对数据进行条带化(例如,以RAID 0配置)。作为第二实例,可在集群的多个可连接网络的数据传输设备内和/或跨集群的多个可连接网络的数据传输设备,跨多个介质的持久性存储介质之间镜像数据(例如,以RAID 1配置)。可以各种方式来组织和/或划分数据——例如,每个持久性存储介质可用于存储数据库的数据库分片。
可连接网络的数据传输设备302可具有一个或多个处理器310,诸如中央处理单元(CPU),其可被配置来执行数据传输操作和密码操作。在一些实施方案中,可连接网络的数据传输设备302具有一个或多个母板,每个母板均被配置有一个或多个处理单元,诸如图3中示出的处理器310。另外,在一些实施方案中,每个母板包括至少一个安全模块。
可连接网络的数据传输设备302还可包括面向外部的电子显示器312。电子显示器可用于显示目的地位置(例如,代替运送标签)。显示器312可包括各种类型的显示技术,诸如低功率电子墨水(e-ink)、有机发光二极管(OLED)、有源矩阵有机发光二极管(AMOLED)、柔性显示器以及其他此类的技术。显示器可进一步是客户可使用手指、触笔或其他输入设备与之进行交互的触摸屏显示器。可连接网络的数据传输设备302可被配置有使用多种显示技术的多个显示器。穿过保护性外部外壳318,客户、邮政员工等可看到所述显示器。
人机接口设备(HID)314也可作为可连接网络的数据传输设备302的一部分被包括。人机接口设备314可用于解锁设备——例如,客户可通过以下方式解锁设备:将密码输入到包括字母数字键盘或显示设备(例如,触摸屏)中;输入个人身份识别码(PIN)或解锁代码;使用例如使用一个或多个传感器的语音、指纹和/或虹膜识别来执行生物识别验证。
可连接网络的数据传输设备302还可包括网络接口316。网络接口可用作外部网络(例如,计算机网络或服务提供方网络)与可连接网络的数据传输设备302之间的接口。在一些实施方案中,网络接口用于以自组织(ad-hoc)方式(例如各种类型的分散自组织网络)与集群的其他设备进行通信。在一些实施方案中,网络接口使用无线接口,诸如Wi-Fi网络或蜂窝网络。
可连接网络的数据传输设备302可具有防篡改外壳318,所述防篡改外壳318用作保护设备免受以物理方式篡改的外壳。所述外壳可用于以物理方式拒绝访问各种内部部件和模块,诸如RAM、安全模块、一个或多个永久性存储介质、以及处理单元、网络接口、存储在上述任何部件上的数据等。在一些实施方案中,外壳318由硬化材料制成,并且可根据一种或多种军用标准和/或电子行业标准被加固。外壳可阻止访问内部部件,但同时允许访问其他部件,诸如客户可与之交互的显示器和/或人机接口设备。外壳318可具有用于检测动力学以检测设备的物理处理的传感器320,诸如用于测量力的传感器、加速度计、陀螺仪等。外壳可进一步装备有监控传感器的CPU和/或存储器。由外壳检测到的条件可使系统进入锁定状态——例如,检测到设备正遭受强大的力量可指示企图篡改设备(例如,通过破开外壳以访问内部部件)。
尽管已经在图3中示出可连接网络的数据传输设备的各种部件,但是可连接网络的数据传输设备可通过添加、移除、修改或其某种组合被配置有各种部件。例如,可连接网络的数据传输设备还可包括地理位置传感器,诸如全球定位系统(GPS)接收器,其可用作确定要显示的运送地址的一部分。如果确定设备不在预期的地理位置中,或者设备不在与预期进行设备运送的预期路径的规定距离之内,则GPS接收器也可用于将设备锁定。
在一些实施方案中,可连接网络的数据传输设备包括可允许附加功能的端口和其他外围连接器。例如,外围设备可通过可穿过外壳318访问的通用串行总线(USB)附接到可连接网络的数据传输设备。在一些实施方案中,系统支持可作为安全模块起作用的USB可插拔安全设备,诸如便携式硬件认证设备。
图4是根据一个或多个数据传输操作生成的清单400的说明性示例。清单400可对应于上文描述的源清单或接收清单。在一个实施方案中,设备存储服务在数据传输过程期间生成清单400,诸如通过在每个数据对象的传输之后更新清单400或在数据传输操作结束时生成清单400。对于要传输的每个数据对象,清单400可包括:数据对象标识符402、校验和值404、元数据406和通信状态408。数据对象标识符402可以是分配给数据对象的唯一地标识对象的整数或字符标识符。数据对象标识符402比如可以是为对应的数据对象生成的指纹。在一个实施方案中,数据对象标识符402可包括由除了传输设备服务的实体生成的用于标识要传输的数据对象或数据对象的分组的文件名。在一些实施方案中,数据对象标识符402可以是由传输设备服务生成的用于标识要传输的数据对象或数据对象的分组的标识符。在一个实施方案中,清单400中包括用于数据对象的数据对象标识符402可以是所述数据对象被成功复制或传输的指示器。完整性信息404可用于验证对应数据对象的完整性。完整性信息404可以是通过针对对应的数据对象标识符402对数据对象执行散列函数或校验和函数(例如,MD5、SHA1、SHA2)而生成的值。
清单400可包括用于数据对象的元数据406,所述元数据406包括指示在执行针对对应数据对象的数据传输操作时的时间和/或日期的时间戳T。元数据406还可包括位置信息(Loc),所述位置信息指示在存储设备中存储或将存储对应数据对象的数据区域或位置。元数据406还可包括其他元数据,诸如要传输的数据对象的大小。可在清单400中提供通信状态408,以指示针对对应数据对象的传输操作是成功还是不成功的状态。例如,对于源清单,传输设备服务可生成指示对应数据对象在客户端位置处从集群成功地传输还是未成功地传输到数据存储设备上的传输状态。对于接收清单,传输设备服务可生成指示对应数据对象从数据存储设备成功地传输还是未成功地传输到服务提供方位置的传输状态。设想其他传输状态指示器也在本公开的范围内,诸如指示对应数据对象传输到数据存储设备或从数据存储设备传输的传输进度的传输状态。另外,尽管图4示出共享共同格式的源清单和接收清单,但是源清单的格式可不同于接收清单。
清单400可包括一个或多个数字签名,所述数字签名验证与与其相关联的数据传输操作相关联的一个或多个实体。设备存储服务可使用正传输数据对象到存储设备或从存储设备正传输数据对象的唯一的密码密钥(例如,安全地保存在存储设备的安全模块中的密码密钥)来生成清单400的数字签名410A。在一个实施方案中,源清单可包括由数据存储设备集群中的一个或多个存储设备使用一个或多个密码密钥生成的数字签名410B。在一个实施方案中,接收清单可包括由服务提供方的一项或多项服务(诸如,认证服务或数据存储服务)生成的数字签名410B。清单的和/或清单中的数字签名可根据不同实施方案以各种方式使用。一般来讲,清单的和/或清单中的数字签名可由实体(例如,计算机系统,诸如存储设备或存储设备服务)使用,所述实体被配置来信任用于生成数字签名的密钥并根据数字签名是否有效进行操作。作为一个示例,实体可使用数字签名来确定清单和/或清单中的信息是否真实,并且/或者清单和/或其中所包括的信息是否是由受信任实体生成的。在具体示例中,当将清单与另一个清单进行比较时,可使用数字签名来确保信息是真实的,并且因此信任所述信息以使操作(例如删除)能够发生。比如,如果清单中条目(或整个清单)的数字签名无效或以其他方式不受信任,则即使所述条目指示已成功将对应数据传输到数据存储服务,也可不发生删除。
图5示出用于将数据对象从客户端传输到服务提供方位置处的传输设备服务的过程500。过程的一些部分可在客户端位置处由数据存储设备集群的传输设备服务执行。在服务提供方位置处执行的过程的其他部分可由服务提供方的传输设备服务执行。所述服务可从客户端的存储设备(诸如本地服务器)获得502数据对象。服务可将数据对象存储504在可连接网络的数据存储设备的集群上,诸如上文关于图1至图3描述的那些。使用服务的用户接口,用户可选择集群上的一个或多个数据对象以传输到服务提供方并发起数据对象的复制。用户接口选择可致使服务生成内容清单,所述内容清单标识并重新定位要传输的集群上的数据对象。然后,服务可将数据对象从集群复制506到数据传输设备,以运输到服务提供方位置。当将数据对象复制到数据传输设备上时,服务可生成或更新508源清单,所述源清单盘点成功复制的数据对象。复制506和更新508可以是递归过程,通过此过程,源清单初始生成,然后在成功复制数据对象时被重复更新。可将源清单和/或内容清单复制到传输设备上,以运输到服务提供方。一旦所有数据对象都被复制到数据传输设备上,就可如上文所描述将数据传输设备与集群断开连接并将其传输510到服务提供方位置。
可在服务提供方位置处接收512数据传输设备,并将其连接514到服务提供方的服务提供方网络。服务提供方的传输设备服务可发起将数据对象从数据传输设备复制516到服务提供方的存储位置。在一个实施方案中,设备服务可向服务提供方的数据存储服务(诸如上文关于图2所描述的数据存储服务)发布指令,以开始接收和存储数据对象。指令可至少部分地基于内容清单来生成,并且可包括标识客户端、指定要复制的数据对象的信息以及与从其复制数据对象的集群有关的信息。数据存储服务可以API调用、另一类型的网络请求或其他合适的格式接收518指令。指令可致使数据存储服务开始接收和存储520从数据传输设备复制的数据对象。当数据存储服务接收或存储数据对象时,数据存储服务可向设备服务提供确认,以指示将数据对象成功或未成功地存储到数据存储服务的数据存储系统。确认可基于设备服务与数据存储服务之间所建立的握手协议。确认可包括用于接收清单的信息,诸如数据对象标识符、完整性信息、元数据或传输状态,如上文关于图4所讨论的。确认可由数据存储服务进行数字签名。在一个实施方案中,设备服务可将数据对象从数据传输设备复制516到不同的存储位置,诸如第二数据存储设备集群或外部第三方存储系统。数据存储服务可发送指示,比如,数据对象是否被数据存储服务成功接收、被数据存储服务成功存储、或者接收或存储数据对象的进度的传输状态。所述传输状态可包括在确认中,也可以是单独的通信。服务提供方的设备服务可生成或更新522接收清单,所述接收清单盘点成功地传输到数据存储系统的数据对象。接收清单可以上文关于源清单所描述的方式生成或更新。
尝试(成功或未成功地)传输数据传输设备上的每个数据对象后,服务提供方可向客户端传输524接收清单或以其他方式使接收清单对客户端可用。在一个实施方案中,服务提供方将接收清单复制或传输到运输数据对象的同一数据传输设备,然后将其返回给客户端以供检查和进一步使用。服务提供方可将接收清单复制或传输到被调度或标记为返回给客户端的任何数据传输设备。在一些实施方案中,服务提供方将接收清单上载到数据存储服务、通过电子邮件将接收清单发送给客户端、或者以任何其他合适的方式使接收清单对客户端可用。客户端接收到526接收清单后,客户端的服务(例如,集群的集群服务)可将源清单与接收清单进行比较528,以确定从数据传输设备成功地复制到数据存储系统的数据对象集。
客户端服务可基于比较528的结果来处理530一个或多个数据对象。数据对象未成功传输的指示可导致对所述数据对象的处理530与数据对象被指示为已成功传输的处理有所不同。比如,数据对象已成功传输的否定指示可导致所述数据对象被标注或标记为具有受保护状态。相比之下,数据对象已成功传输的肯定指示可导致对所述数据对象执行删除操作。基于比较对数据对象的处理将在下文关于图8进一步详细讨论。
图6示出由在数据传输设备上操作的传输设备服务执行的用于盘点和传输数据对象的过程600。传输设备可连接到数据传输设备集群。传输设备可接收602将存储在集群上的一个或多个数据对象传输到数据传输设备上的指令。数据传输设备可以API调用、网络请求或其他合适的格式接收所述指令。指令可包括指定要被传输到数据传输设备上的数据对象的内容清单,如关于图2所描述的。设备服务可从集群中的一个或多个传输设备获得或接收604数据对象的副本。设备服务可将条目写入606源清单,所述条目指示有关数据对象的副本的信息,诸如传输状态信息或上文关于图4所讨论的其他信息(例如,对象标识符、元数据)。源清单可提供在传输设备本身上或集群中的一个或多个传输设备上。当将数据对象逐步复制到传输设备上时,可递归执行接收604步骤和写入条目606步骤。设备服务可使用与传输设备相关联的密码密钥对一个或多个源清单条目进行数字签名608。在一个实施方案中,设备服务可对源清单自身进行数字签名。摄取或存储集群清单中指定的一个或多个数据对象后,数据传输设备可与传输设备集群断开连接并被运输到服务提供方位置。
与传输数据对象(例如,在步骤604和步骤606中)结合,设备服务除了可生成关于数据对象被成功传输或未成功传输的信息之外,还可生成有关数据对象或传输操作的状态信息集,诸如状态信息或错误信息。状态信息可包括:有关数据对象的状态的信息(例如,数据对象的加密/未加密的数字签名信息)、有关集群的信息(例如,集群中包括的设备的标识信息)或有关数据对象被传输到的传输设备的信息。错误信息可指定有关与传输结合发生的错误的信息,诸如数据对象的损坏或数据对象可能不位于集群中。设备服务和/或集群服务可进行操作以解决与数据对象的传输有关的任何问题或错误,例如,通过重新发起传输、修复数据对象或进行搜索以查找任何丢失的信息。可将所述状态信息集中的一个或多个写入源清单或以其他方式提供给集群中的实体。
在服务提供方位置处,可将数据传输设备连接610到服务提供方网络。设备服务可复制612集群清单中指定的一个或多个数据对象,如上文关于图5所描述的。设备服务可写入条目614,所述条目指示有关数据对象的副本的信息、传输状态信息或上文关于图4所讨论的其他信息。设备服务可使用与传输设备相关联的密码密钥对一个或多个接收清单条目进行数字签名616。在一个实施方案中,设备服务可对接收清单本身进行数字签名。将指定的一个或多个数据对象复制到服务提供方的数据存储服务后,数据传输设备可与传输设备集群断开连接并被运输回客户端位置。在客户端位置处,数据传输设备可连接618到集群网络。然后,设备服务可将源清单和接收清单传输620到用于数据传输设备集群的集群服务,以确定哪些数据对象已被成功复制到传输设备上并随后被复制到服务提供方的数据存储系统。
与将数据对象传输到数据存储系统(例如,在步骤612和步骤614中、在下文所描述的过程700中)结合,设备服务或服务提供方除了可生成有关数据对象被成功传输或未成功传输的信息之外,还可生成有关数据对象或传输操作的状态信息集,诸如上文描述的状态信息或错误信息。错误信息可包括:有关未能成功地将一个或多个数据对象传输到数据存储系统的细节或有关服务提供方的服务未能成功接收所述一个或多个数据对象的细节,诸如网络连接失败。设备服务和/或服务提供方可进行操作以解决与将数据对象传输到数据存储系统有关的任何问题或错误。可将所述状态信息集中的一个或多个写入接收清单。
图7示出由服务提供方的设备接口服务(诸如上文关于图2所讨论的)执行的过程700。在服务提供方处接收702从客户端位置运输的传输设备,并且将传输设备连接704到服务提供方的服务提供方网络。设备接口服务从传输设备读取706一个或多个数据对象。从传输设备读取的一个或多个数据对象可包括集群清单。然后,接口服务可将一个或多个对象传输708到服务提供方的数据存储服务。传输708可通过向数据存储服务发送包括例如API调用的指令来发起,如上文关于图2和图5所讨论的。接口服务可从数据存储服务接收710有关一个或多个数据对象的状态的响应,诸如上文关于图2和图5所讨论的使用握手协议的确认。接口服务然后可生成或更新712接收清单,所述接收清单指示一个或多个数据对象是否已成功复制到数据存储服务的数据存储系统的状态。然后,我们检查接口服务以查看是否有更多数据对象对数据存储系统可用714或要从传输设备复制到数据存储系统。
如果在步骤714中,接口服务确定更多数据对象是可用的或应当被传输,则接口服务返回到从传输设备读取706一个或多个数据对象。接口服务可将接收清单与提供在传输设备上的源清单进行比较,以确定源清单上指定的所有数据对象是否已成功复制到数据存储服务。除此以外,接口服务确定指定要从传输设备传输的所有数据对象已复制到数据存储系统。因此,接口服务可通过将接收清单传输或复制到可被调度以返回给客户端的传输设备来使716接收清单对客户端可用。在一个实施方案中,使716接收清单可用可包括:将接收清单提供给数据存储服务以传输到数据存储系统上,或通过其他电子通信的方式,诸如电子邮件。接口服务处理718传输设备以供重新使用,诸如通过执行删除传输设备上的一个或多个数据对象的删除操作。在一个实施方案中,删除操作可仅删除接收清单指示已成功传输到数据存储系统上的一个或多个数据对象。本领域普通技术人员将理解,步骤716和步骤718是镜像相反的,使得在将接收清单传输716到传输设备之前,对传输设备进行处理718以供重新使用。
接口服务可与将数据对象传输到数据存储系统结合来生成或处理上文描述的所述状态信息集,诸如通过生成关于未能将数据对象传输到数据存储系统的错误信息。接口服务可基于所述状态信息集执行过程700中的一个或多个步骤——比如,在步骤714中,接口服务可基于指示在先前的数据传输尝试期间发生错误的错误信息来确定发起另一次传输数据对象的尝试。作为另一个示例,接口服务可根据所述状态信息集来处理设备718,诸如通过不删除未成功传输的一个或多个数据对象。
图8示出由集群服务执行的用于基于源清单和接收清单来处理存储在数据传输设备集群上的数据对象的过程800。集群服务可与数据传输设备的传输设备服务协同操作,或者数据传输设备的传输设备服务可从属于集群服务。集群服务获得802源清单和接收清单。集群服务从源清单读取804数据对象条目,并从接收清单读取对应的数据对象条目。在一个实施方案中,数据对象条目可由诸如上文关于图4所讨论的数据对象标识符来标识。
然后,集群服务可将来自源清单和接收清单中的数据对象条目进行比较806,以确定对应的数据对象是否已成功复制808。比较806可涉及比较来自清单中的一个或多个数据条目,诸如关于图4所讨论的数据条目。特别地,集群的集群服务可将源清单中的数据对象标识符的通信状态408与接收清单中对应数据对象标识符的通信状态408进行比较。集群服务可确定在源清单与接收清单两者中都指示为具有成功的通信状态408的数据对象已成功复制。集群服务可确定在源清单或接收清单的任一者中指示为具有不成功的传输状态的数据对象未被成功复制。可比较在源清单中和在接收清单中提供的其他信息,以确定成功复制了哪些数据对象,诸如完整性信息或元数据的一个或多个部分。集群服务确定数据对象已被成功传输可至少部分地基于完整性信息在源清单与接收清单两者中匹配(例如,相同的校验和)的确定。数据对象已被成功传输的确定可至少部分地基于元数据的一个或多个部分对于源清单和接收清单两者匹配的确定。比如,集群服务可确定源清单和接收清单两者中数据对象的大小是否相同。接收清单和源清单两者中的数据条目的一个或多个方面(诸如完整性信息)不匹配或不以其他方式对应的确定,可作为确定对应数据对象未成功复制到服务提供方的数据存储系统的依据。
作为将数据对象成功复制到服务提供方的数据存储系统的确定808的结果,集群服务可根据一个或多个处理程序处理810集群中的一个或多个数据对象。比如,在处理810一个或多个数据对象时,集群服务可对传输设备集群中的对应数据对象执行删除操作。在一个实施方案中,删除操作的执行可致使存储有一个或多个成功复制的数据对象的集群的数据存储区域被固定或随机位序列覆写,从而导致对数据对象的“硬”删除。在一些实施方案中,删除操作可以是“软删除”,所述“软删除”标注或标记指示要删除数据对象的记录,或者指示与数据对象相对应的数据存储区域可用新数据覆写的记录。本文设想了执行“软删除”操作的其他方法,诸如例如,对数据对象进行降采样(例如,将其用较低分辨率的副本替换)或转录数据对象。
可在处理810中执行其他或另外的处理。在一个实施方案中,集群服务可在集群中生成指示一个或多个数据对象的传输状态的状态信息,诸如与一个或多个数据对象相关联的元数据指示其成功传输或未成功传输、或在表格中标注或设置指示一个或多个数据对象的传输状态的标记。在处理810一个或多个数据对象时,集群服务可基于传输状态执行进一步的操作。比如,集群服务可不使指示为已成功传输的一个或多个数据对象被重新提交给数据传输设备上的服务提供方,诸如通过从数据传输设备中擦除一个或多个数据对象以及防止一个或多个数据对象被重新传输到数据传输设备。
在处理810数据对象时,集群服务可生成集群中一个或多个数据对象的其他状态信息,诸如一个或多个数据对象是集群中要删除或保护的对象的指示、或有关传输操作的错误信息。状态信息可以是呈与一个或多个数据对象相关联的元数据的形式,或者可在存储在集群中的用于标识一个或多个数据对象的表格中被指示。比如,存储状态可指示有关一个或多个数据对象的删除的信息,诸如要对一个或多个数据对象执行删除操作的特定时间、在维护操作期间允许删除一个或多个数据对象的权限、可删除一个或多个数据对象之时或之后的特定时间。作为另一个示例,存储状态可指示有关一个或多个数据对象的保护的信息,诸如一个或多个数据对象不应被删除的指示,或一个或多个数据对象应被移动到在其中一个或多个数据对象丢失或擦除的可能性很低的存储位置或分区的指示。在一个实施方案中,传输状态可指示有关与传输操作结合发生的一个或多个错误的错误信息,例如,与将一个或多个数据对象从集群传输到数据传输设备、将一个或多个数据对象从数据传输设备传输到服务提供方、或将一个或多个数据对象传输到服务提供方的数据存储系统结合发生的一个或多个错误。
作为数据对象未成功复制到服务提供方的数据存储系统的确定808的结果,集群服务可执行812传输失败程序。传输失败程序可包括使集群服务不执行可能导致对应数据对象永久丢失的一个或多个动作的一个或多个操作。比如,所述动作可将未指示为成功传输的数据对象标注或标记为具有受保护状态。可将受保护状态指示为与数据对象相关联的属性,诸如指示数据对象或数据对象所在的区域不应被删除的标记集。标记可位于数据对象的元数据中,也可在引用数据对象的记录或表中指示。所述动作可致使对应的数据对象被传输到集群上的不同存储位置,诸如在其中数据对象可不被集群服务删除的单独的数据存储区域或分区。作为另一个示例,对未成功传输的数据对象的处理可包括:将数据对象调度或提供给数据传输设备以进行向服务提供方的另一次传输尝试、或者标注或标记数据对象以用于将来向服务提供方的传输尝试。在对成功传输的数据对象执行“硬删除”的实施方案中,不同的操作可以是对一个或多个未成功传输的数据对象的“软删除”。对未成功传输的数据的所述处理可防止数据对象被选择进行修改或删除。
在处理812数据对象或执行812传输失败程序之后,集群服务可确定814源清单或接收清单中是否还有剩余的对象。如果集群服务确定清单中剩余有一个或多个未分析的数据对象,则集群服务可访问或读取804源清单和/或接收清单中的下一个数据对象。如果集群服务确定源清单或接收清单中没有剩下的数据对象,则集群服务可生成816指示数据对象传输操作已完成的通知。
图9示出用于在客户端位置处和服务提供方位置处处理数据传输设备的环境900。可连接网络的数据传输设备902A在客户端位置处与设备集群904相连。在设备集群904上共同操作的集群服务906可操作以将客户端的多个数据对象908摄取或接收到设备集群904上,如上文关于图1和图2所描述的。多个数据对象908可从客户端的一个或多个计算系统910提供,所述一个或多个计算系统910可包括一个或多个处理器、服务器和/或数据存储单元。应当指出的是,在此情况下,一个或多个计算系统910与服务提供方914之间的网络连接911可能不具有足够的带宽或复杂性来高效地和有效地传输数据对象912。集群服务906可发起数据传输操作,以将存储在集群904中的多个数据对象908中的数据对象集912传输到传输设备902A上,用于以物理方式运输到服务提供方914。与数据传输操作结合,可生成源清单908,所述源清单908盘点成功地复制到传输设备902A上的多个数据对象912中的数据对象集,如上文关于图1、图2、图4和图5所描述的。在一个实施方案中,源清单908可至少部分地由集群服务906生成。在一个实施方案中,源清单908至少部分地由传输设备902的设备服务916生成。传输设备902A可向集群服务906提供对成功复制的数据对象的确认。当数据对象到传输设备902A的传输操作完成时,可将传输设备902A以物理方式运输或运送到服务提供方914。
在服务提供方914处,传输设备902B可通过服务提供方914与传输装置902B的网络连接之间的网络连接被连接到服务提供方网络918,如上文关于图3所描述。服务提供方的接口服务920可与传输设备902B的设备服务916交接,以在传输设备与服务提供方914之间通信和传输数据。可发起数据传输操作以将数据传输设备902B上的多个数据对象912复制到服务提供方914的数据存储系统。接口服务920可与服务提供方914的数据存储服务922交接,以将多个数据对象912复制到数据存储系统,如上文关于图5和图7所描述的。可生成接收清单924,所述接收清单924盘点与数据传输操作结合成功复制到服务提供方914的数据存储系统的多个数据对象912中的数据对象集926,如上文关于图5和图7所描述的。数据存储服务922可向接口服务920提供对成功复制的数据对象的确认。所述确认可以是根据服务之间建立的握手协议提供的通信的形式。
数据传输操作完成后,可将接收清单924提供给客户端,诸如通过在传输设备902B上将接收清单924运输到客户端、通过网络通信进行传输或以电子方式使接收清单924对于检索可用。集群服务906可部分地基于源清单908与接收清单924之间的比较926来处理多个数据对象912中的一个或多个,如上文关于图8所描述的。
图10示出用于实现根据各种实施方案的各方面的示例性环境1000的各方面。应当理解,尽管为了说明的目的使用基于web的环境,但是在适当的情况下可使用不同的环境来实现各种实施方案。所述环境包括电子客户端设备1002,所述电子客户端设备1002可包括可操作来通过适当网络1004发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回设备的用户的任何适当设备。此类客户端设备的示例包括:个人计算机、手机、手持式消息传送设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可包括任何适当网络,其包括:内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或它们的组合。用于此类系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于通过此类网络进行通信的许多协议和部件是人们所熟知的,本文将不详细讨论。通过网络进行的通信可通过有线或无线连接以及它们的组合来实现。在此示例中,网络包括:互联网和/或其他公共可寻址通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1006,但是对于其他网络来说,可使用服务类似目的的备选设备,如对本领域普通技术人员是显而易见的。
说明性环境包括至少一个应用服务器1008和数据存储区1010。应当理解,可存在可链接起来或以其他方式来配置的若干应用服务器、层或其他元件、过程或部件,它们可交互以执行诸如从适当的数据存储区获得数据的任务。如本文所使用的服务器可以各种方式来实现,诸如硬件设备或虚拟计算机系统。在一些上下文中,服务器可指正在计算机系统上执行的编程模块。如本文所使用的,除非另有说明或从上下文中清楚地看出,否则术语“数据存储区”是指能够存储、访问并检索数据的任何设备或设备的组合,所述设备或设备的组合可包括任何标准、分布式、虚拟或集群环境中的数据服务器、数据库、数据存储设备以及数据存储介质的任何组合和任何数量的数据服务器、数据库、数据存储设备以及数据存储介质。应用服务器可包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数据访问和业务逻辑中的一些或全部。应用服务器可与数据存储区协作来提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或另一适当的客户端侧结构化语言的形式提供给用户。传输到客户端设备的内容可由客户端设备处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端设备1002与应用服务器1008之间的内容递送可由web服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当服务器侧结构化语言来处理。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个设备执行的操作可由可能形成分布式和/或虚拟系统的多个设备共同地执行。
数据存储区1010可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所示数据存储区可包括用于存储生产数据1012和用户信息1016的机构,所述生产数据1012和用户信息1016可以用于服务生产侧的内容。所示数据存储区还包括用于存储日志数据1014的机构,所述日志数据1014可用于报告、分析或其他此类目的。应理解,可能存在可需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机构中的任何机构中或存储在数据存储区1010中的另外机构中。数据存储区1010可通过与其相关联的逻辑来操作,以便从应用服务器1008接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器1008可响应于所接收指令而提供静态、动态数据或静态和动态数据的组合。诸如在web日志(博客)、购物应用、新闻服务以及其他此类应用中使用的数据之类的动态数据可由如本文所描述的服务器侧结构化语言生成或者可由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,通过由用户操作的设备,用户可提交针对某一类型的项目的搜索请求。在这种情况下,数据存储区可访问用户信息来验证用户的身份,并且可访问目录详细信息以获得有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户设备1002上的浏览器来查看所述网页。可在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应当指出的是,本公开的实施方案未必局限于网页的上下文,而是可更一般地应用于处理一般请求,其中请求未必是对上下文的请求。
每个服务器通常都将包括提供针对所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为由处理器执行的结果),允许服务器执行其预期功能。
在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接,经由通信链路进行互连。但是,本领域普通技术人员应理解,此类系统可在具有比图10中示出的部件更少或更多个部件的系统中同样顺利地操作。因此,图10中的系统1000的描绘本质上应视为说明性的,并且不限制本公开的范围。
本公开的实施方案可鉴于以下条款来描述:
1.一种计算机实现的方法,其包括:
将多个数据对象从客户数据源复制到位于客户端位置处的可连接网络的数据传输设备上,用于以物理方式运输到服务提供方位置;
生成源清单,所述源清单盘点已成功复制到所述客户端位置处的所述可连接网络的数据传输设备的所述多个数据对象中的数据对象集;
接收接收清单,所述接收清单盘点从位于服务提供方位置处的所述可连接网络的数据传输设备已成功传输到数据存储服务的所述多个数据对象中的数据对象;
将所述源清单与所述接收清单执行比较,以确定已成功从所述数据传输设备传输到所述数据存储服务的所述数据对象集的子集;以及
执行对所述数据对象集的所述子集的单个数据对象进行转换的一组操作。
2.如条款1所述的计算机实现的方法,其中:
所述源清单和所述接收清单中的至少一者包括所述多个数据对象中的一个或多个数据对象的完整性信息;并且
所述比较利用了所述完整性信息。
3.如条款1或2所述的计算机实现的方法,其中所述一组操作包括使得能够覆写存储所述第一数据对象集的所述子集的数据存储区域。
4.如条款1至3中任一项所述的计算机实现的方法,其中:
所述接收清单包括数据传输服务的数字签名;并且
执行所述一组操作的条件是所述数字签名的成功验证。
5.一种系统,其包括:
一个或多个处理器;
存储器,所述存储器存储计算机可执行指令,所述指令被执行时致使所述一个或多个处理器:
接收第一清单,所述第一清单盘点写入数据传输设备的第一数据对象集;
在所述第一清单与第二清单之间执行比较,所述第二清单盘点从所述第二数据传输设备写入的第二数据对象集,以确定所述第一数据对象集中的数据对象的状态;并且
根据所述状态处理所述数据对象。
6.如条款5所述的系统,其中所述状态至少部分地基于对应于数据对象标识符的所述第一清单中的传输状态与对应于所述相同数据对象标识符的所述第二清单中的通信状态的比较来确定。
7.如条款5或6所述的系统,其中所述比较至少部分地基于将所述第一数据对象集中的数据对象的散列值与所述第二数据对象集中的对应数据对象的散列值进行比较。
8.如条款5至7中任一项所述的系统,其中所述状态指示成功的写入操作,并且根据所述状态处理所述数据对象包括对所述第一数据对象集中的一个或多个数据对象执行删除操作。
9.如条款5至8中任一项所述的系统,其中所述状态指示未成功的写入操作,并且根据所述状态处理所述数据对象致使对所述数据对象执行写入操作。
10.如条款5至9中任一项所述的系统,其中所述状态指示未成功的写入操作,并且根据所述状态处理所述数据对象致使保护所述第一数据对象集中的一个或多个数据对象免受修改。
11.如条款5至10中任一项所述的系统,其中所述状态指示成功的写入操作,并且根据所述状态处理所述数据对象致使指示允许对所述数据对象的覆写。
12.如条款5至11中任一项所述的系统,其中:
对于所述数据对象,所述第一清单和所述第二清单中的至少一者包括与所述数据对象相对应的完整性信息;并且
所述比较至少部分地基于所述完整性信息来执行。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述指令由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
接收第一清单,所述第一清单盘点从数据传输设备获得的第一数据对象集;
在所述第一清单与第二清单之间执行比较,所述第二清单盘点写入所述数据传输设备的第二数据对象集,以确定所述第一数据对象集中的数据对象的状态;并且
根据所述状态处理所述数据对象。
14.如条款13所述的非暂时性计算机可读存储介质,其中所述数据传输设备是数据传输设备集群的成员,并且所述指令还包括如下指令,其由所述一个或多个处理器执行时致使所述计算机系统:
根据指定将一个或多个数据对象从所述数据传输设备集群传输到所述数据传输设备的指令集,将所述第二数据对象集写入所述数据传输设备。
15.如条款13或14所述的非暂时性计算机可读存储介质,其中致使所述计算机系统执行所述比较的所述指令还包括致使所述计算机系统将所述第一清单中指定的完整性信息与所述第二清单中指定的完整性信息进行比较的指令。
16.如条款15所述的非暂时性计算机可读存储介质,其中所述第一清单的所述完整性信息和所述第二清单的所述完整性信息根据散列函数生成,并且所述状态至少部分地基于所述第一清单的所述完整性信息与所述第二清单的所述完整性信息之间的匹配来确定。
17.如条款13至16中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统处理所述数据对象的所述指令还包括至少部分地基于指示所述数据对象已成功写入的所述状态,致使所述计算机系统将所述数据对象从数据传输设备集群中移除的指令。
18.如条款13至17中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统处理所述数据对象的所述指令还包括至少部分地基于指示所述数据对象尚未成功写入的所述状态,致使所述计算机系统至少临时阻止将所述数据对象从数据传输设备集群中移除的指令。
19.如条款13至18中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统执行比较的所述指令还包括致使所述计算机系统至少部分地基于所述第一清单中指示的第一元数据和所述第二清单中指示的第二元数据执行所述比较的指令,其中所述状态至少部分地基于所述第一元数据与所述第二元数据匹配的确定来指示成功。
20.如条款13至19中任一项所述的非暂时性计算机可读存储介质,其中所述状态指示所述数据对象的成功传输,并且致使所述计算机系统处理所述数据对象的所述指令致使所述计算机系统生成防止将所述数据对象写入所述数据传输设备的指令集。
21.一种计算机实现的方法,其包括:
从连接到服务提供方的服务提供方计算机系统的可连接网络的数据传输设备中读取第一数据对象集,所述可连接网络的数据传输设备已从所述服务提供方的客户的客户数据中心以物理方式传输到所述服务提供方的位置;
通过对所述服务提供方的数据存储系统的应用编程接口调用将所述第一数据对象集传输到所述数据存储系统;
至少部分地基于对所述应用编程接口调用的响应来确定所述第一数据对象集已被所述数据存储系统成功接收;
生成清单,所述清单盘点至少成功地存储到所述数据存储系统中的所述一个或多个数据对象;以及
将所述清单提供给所述可连接网络的数据传输设备。
22.如条款21所述的计算机实现的方法,其还包括:
确定所述第一数据对象集已由所述数据存储系统成功接收后,至少通过对所述第一数据对象集中的一个或多个数据对象执行删除操作来处理所述可连接网络的数据传输设备以供重新使用。
23.如条款21或22所述的计算机实现的方法,其中生成所述接收清单包括使用执行所述计算机实现的方法的服务的密码密钥对所述接收清单进行数字签名。
24.如条款21至23中任一项所述的计算机实现的方法,其中所述接收清单包括针对所述一个或多个成功传输的数据对象中的每一个的数据对象标识符和指示所述数据对象成功传输到所述数据传输系统的状态。
25.一种系统,其包括:
一个或多个处理器;
存储器,所述存储器存储计算机可执行指令,所述指令被执行时致使所述一个或多个处理器:
从可连接网络的传输设备读取数据对象;
将所述数据对象传输到数据存储服务;
至少部分地基于从所述数据存储服务接收的信息,确定所述数据对象在所述数据存储服务处的状态;并且
至少部分地基于所述状态来更新清单,所述清单指示从所述可连接网络的传输设备读取的多个数据存储对象的单独状态。
26.如条款25所述的系统,其中所述请求包括对所述存储服务的web服务应用编程接口调用。
27.如条款26所述的系统,其中来自所述数据存储服务的所述信息是对所述web服务应用编程接口调用的响应。
28.如条款25至27中任一项所述的系统,其中:
来自所述数据存储服务的所述信息包括所述数据对象的完整性信息;并且
所述状态至少部分地基于所述完整性信息来确定。
29.如条款28所述的系统,其中所述状态进一步至少部分地基于将所述完整性信息与来自不同于所述清单的另一清单的所述数据对象的其他完整性信息进行比较来确定。
30.如条款25至29中任一项所述的系统,其中写入所述清单的所述信息包括与所述数据对象相对应的数据对象标识符。
31.如条款25至30中任一项所述的系统,其中所述通信会话是根据为所述系统与所述存储服务之间的通信而建立的握手协议来建立的。
32.如条款25至31中任一项所述的系统,其中所述系统将所述清单存储在所述可连接网络的传输设备上。
33.一种非暂时性计算机可读存储介质,其上存储有可执行指令,所述指令由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
从可连接网络的传输设备读取多个数据对象;
将所述多个数据对象传输到数据存储服务;
生成清单,所述清单对于所述多个数据对象中的单个数据对象指示所述单个数据对象的状态;并且
使所述清单对于与所述可连接网络的传输设备相关联的实体是可用的。
34.如条款33所述的非暂时性计算机可读存储介质,其中所述指令还包括由所述一个或多个处理器执行时致使所述计算机系统从所述可连接网络的传输设备中删除所述多个数据对象的指令。
35.如条款33或34所述的非暂时性计算机可读存储介质,其中致使所述计算机系统使所述清单可用的所述指令致使所述计算机系统将所述清单存储在所述可连接网络的传输设备上。
36.如条款33至35中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统使所述清单可用的所述指令致使所述计算机系统将所述清单存储在要分配到与所述可连接网络的传输设备相关联的实体的另一个可连接网络的传输设备上。
37.如条款33至36中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括如下指令,其由所述一个或多个处理器执行时致使所述计算机系统:
读取第二清单,所述第二清单指示正被存储在所述可连接网络的传输设备上的所述多个数据对象;
将所述清单与所述第二清单进行比较,以确定所述多个数据对象中未由所述数据存储服务成功接收的数据对象;并且
生成指定所述数据对象的通知。
38.如条款37所述的非暂时性计算机可读存储介质,其中指令还包括由所述一个或多个处理器执行时致使所述计算机系统执行将所述清单的完整性信息与所述第二清单的对应完整性信息进行比较的指令;并且
其中所述清单至少部分地基于所述比较来生成。
39.如条款33至38中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括由所述一个或多个处理器执行时致使所述计算机系统将所述对象集中的所述一个或多个对象的每一个的数据对象标识符写入到所述清单的指令。
40.如条款33至29中任一项所述的非暂时性计算机可读存储介质,其中使所述清单可用包括:通过用户接口使所述清单对包括所述计算机系统的服务可用。
各种实施方案还可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算设备或处理设备,其可用于操作多个应用中的任何应用。用户或客户端设备可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝式、无线和手持设备。此类系统还可包括多个工作站,所述工作站运行多种可商购获得的操作系统和用于特定目的(诸如开发和数据库管理)的其他已知应用中的任一种。这些设备还可包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够通过网络进行通信的其他设备。这些设备还可包括虚拟设备,诸如虚拟机、管理程序以及能够通过网络进行通信的其他虚拟设备。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购获得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及它们的任意组合。在一些实施方案中,面向连接的协议可用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流的形式传输数据。面向连接的协议可以是可靠或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向数据包的协议(诸如UDP)不同,所述面向数据包的协议在没有保证排序的情况下传输数据包。
在利用web服务器的实施方案中,web服务器可运行多种服务器或中间层应用中的任一种,包括超文本传输协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。一个或多个服务器还可能够响应于来自用户设备的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)及其组合编写的一个或多个脚本或程序的一个或多个web应用。一个或多个服务器还可包括数据库服务器,包括但不限于可从以及商购获得的那些服务器以及开源服务器(诸如MySQL、Postgres、SQLite、MongoDB),以及能够存储、检索和访问结构化或非结构化数据的任何其他服务器。数据库服务器可包括基于表格的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
环境可包括如上文所讨论的多种数据存储区以及其他存储器和存储介质。这些可驻留在多种位置中,诸如在一个或多个计算机本地(和/或驻留在计算机中)的存储介质上,或在网络上远离计算机中的任一个或全部的存储介质上。在一组特定的实施方案中,信息可驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行归因于计算机、服务器或其他网络设备的功能的任何必要文件可在适当的情况下本地和/或远程存储。在系统包括计算机化设备的情况下,每个此类设备都可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。此类系统还可包括一个或多个存储设备,诸如磁盘驱动器、光存储设备以及诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)之类的固态存储设备,以及可移动介质设备、存储卡、闪存卡等。
此类设备还可包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线)、红外通信设备等)以及如上文所描述的工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动的存储设备,以及用于临时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常还将包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。此外,也可使用定制的硬件和/或可以用硬件、软件(包括移植性软件,例如小应用)或两者来实现特定元件。此外,可采用与诸如网络输入/输出设备的其他计算设备的连接。
用于包含代码或代码部分的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储设备、磁盒、磁带、磁盘存储设备或其他磁性存储设备,或可用于存储所需信息且可由系统设备访问的任何其他介质。基于本文所提供的公开和教导,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
因此,应当以说明性意义而不是限制性意义来理解本说明书和附图。然而,将显而易见的是,在不脱离如权利要求中所阐述的本发明的更广泛精神和范围的情况下,可对本发明做出各种修改和改变。
其他变型也在本公开的精神范围内。因此,虽然所公开的技术可易于进行各种修改和替代构造,但是在附图中已示出并且在上文中已经详细描述了所示的其特定实施方案。然而应当理解,并不意图将本发明局限于所公开的一种或多种具体形式,而是相反地,意图涵盖落在本发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求书中所限定。
除非本文另有说明或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求的上下文中)对术语“一(a)”和“一(an)”和“所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具有”、“包含”、“含有”和“容纳”应被解释为开放式术语(即,意味着“包括但不限于”)。当未修改并且指代物理连接时,术语“连接的”应解释为部分地或全部地容纳在内、附接到或连结在一起,即使存在介入物。除非本文另外指明,否则本文中对值范围的列举仅意图用作个别地表示落入所述范围的每个单独值的速记方法,并且如同本文中单独叙述地那样将各单独值并入本说明书中。除非另外指明或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用解释为包括一个或多个成员的非空集合。另外,除非另外指明或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,而是子集和对应集可以相等。
连接性语言,诸如“A、B、和C中的至少一个”或“A、B和C中的至少一个”形式的短语,除非另外特别指示或以其他方式明显地与上下文矛盾,否则如一般情况下所使用,根据上下文理解来表示:项目、项等可以是A或B或C、或A和B和C的集合的任何非空子集。比如,在具有三个成员的集合的说明性示例中,连接短语“A、B、和C中的至少一个”和“A、B和C中的至少一个”是指以下集合中的任一种:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言一般并非意图暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个都存在。另外,除非另外指明或与上下文矛盾,否则术语“多个”指示为呈多个的状态(例如,“多个项目”指示多个项目)。多个项目的数量至少为两个,但如果明确地或通过上下文指示,则可更多。
可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文所描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。代码可以例如计算机程序的形式存储在计算机可读储存介质上,所述计算机程序包括可由一个或多个处理器执行的多个指令。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,所述非暂时性计算机可读存储介质上存储有可执行指令,所述指令在由计算机系统的一个或多个处理器执行时(即,作为由处理器执行的结果),致使计算机系统执行本文所描述的操作。所述非暂时性计算机可读存储介质的集合可包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的一个或多个单独的非暂时性存储介质可不包含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。此外,在一些示例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为说明性示例,非暂时性计算机可读存储介质可存储指令。主CPU可执行所述指令中的一些且图形处理器单元可执行所述指令中的其他指令。一般来讲,计算机系统的不同部件可具有独立的处理器,并且不同处理器可执行指令的不同子集。
因此,在一些示例中,计算机系统被配置来实现一项或多项服务,所述一项或多项服务单独地或共同地执行本文所描述的过程的操作。此类计算机系统比如可被配置有能够执行操作的适用硬件和/或软件。此外,实现本公开的各种实施方案的计算机系统在一些示例中可为单一设备,并且在其他示例中可为包括多个设备的分布式计算机系统,所述多个设备不同地操作,使得分布式计算机系统执行本文所描述的操作并且使得单一设备可不执行全部的操作。
除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应解释为将任何非要求的元素指示为实践本发明所必需的。
本文中描述本公开的优选实施方案,包括发明人已知用于执行本发明的最佳模式。在阅读上述描述后,这些实施方案的变化对本领域的技术人员将变得显而易见。本发明人期望技术人员视情况采用此类变型,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在此所附的权利要求中叙述的主题的所有修改和等效物。此外,本公开的范围涵盖其所有可能变型中的上述元素的任意组合,除非本文另外指示或以其他形式明显地与上下文矛盾。
本文所引用的所有参考文献(包括公开案、专利申请和专利)特此以引用方式并入,其程度如同每个参考文献都单独地并具体地被指示为以引用方式并入并且以其全部内容在本文中进行阐述一样。
Claims (15)
1.一种计算机实现的方法,其包括:
将多个数据对象从客户数据源复制到位于客户端位置处的可连接网络的数据传输设备上,用于以物理方式运输到服务提供方位置;
生成源清单,所述源清单盘点已成功复制到所述客户端位置处的所述可连接网络的数据传输设备的所述多个数据对象中的数据对象基;
接收接收清单,所述接收清单盘点从位于服务提供方位置处的所述可连接网络的数据传输设备已成功传输到数据存储服务的所述多个数据对象中的数据对象;
将所述源清单与所述接收清单执行比较,以确定已成功从所述数据传输设备传输到所述数据存储服务的所述数据对象集的子集;以及
执行对所述数据对象集的所述子集的单个数据对象进行转换的一组操作。
2.如权利要求1所述的计算机实现的方法,其中:
所述源清单和所述接收清单中的至少一者包括所述多个数据对象中的一个或多个数据对象的完整性信息;并且
所述比较利用了所述完整性信息。
3.如权利要求1所述的计算机实现的方法,其中所述一组操作包括使得能够覆写存储所述第一数据对象集的所述子集的数据存储区域。
4.如权利要求1所述的计算机实现的方法,其中:
所述接收清单包括数据传输服务的数字签名;并且
执行所述一组操作的条件是所述数字签名的成功验证。
5.一种系统,其包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述指令被执行时致使所述一个或多个处理器:
接收第一清单,所述第一清单盘点写入数据传输设备的第一数据对象集;
在所述第一清单与第二清单之间执行比较,所述第二清单盘点从所述第二数据传输设备写入的第二数据对象集,以确定所述第一数据对象集中的数据对象的状态;并且
根据所述状态处理所述数据对象。
6.如权利要求5所述的系统,其中所述状态至少部分地基于对应于数据对象标识符的所述第一清单中的传输状态与对应于所述相同数据对象标识符的所述第二清单中的通信状态的比较来确定。
7.如权利要求5所述的系统,其中所述比较至少部分地基于将所述第一数据对象集中的数据对象的散列值与所述第二数据对象集中的对应数据对象的散列值进行比较。
8.如权利要求5所述的系统,其中所述状态指示成功的写入操作,并且根据所述状态处理所述数据对象包括对所述第一数据对象集中的一个或多个数据对象执行删除操作。
9.如权利要求5所述的系统,其中所述状态指示未成功的写入操作,并且根据所述状态处理所述数据对象致使对所述数据对象执行写入操作。
10.如权利要求5所述的系统,其中所述状态指示未成功的写入操作,并且根据所述状态处理所述数据对象致使保护所述第一数据对象集中的一个或多个数据对象免受修改。
11.如权利要求5所述的系统,其中所述状态指示成功的写入操作,并且根据所述状态处理所述数据对象致使指示允许对所述数据对象的覆写。
12.如权利要求5所述的系统,其中:
对于所述数据对象,所述第一清单和所述第二清单中的至少一者包括与所述数据对象相对应的完整性信息;并且
所述比较至少部分地基于所述完整性信息来执行。
13.一种系统,其包括:
一个或多个处理器;以及
一个或多个存储器,其上存储有可执行指令,所述指令由所述一个或多个处理器执行时致使所述一个或多个处理器至少:
接收第一清单,所述第一清单盘点从数据传输设备获得的第一数据对象集;
在所述第一清单与第二清单之间执行比较,所述第二清单盘点写入所述数据传输设备的第二数据对象集,以确定所述第一数据对象集中的数据对象的状态;并且
根据所述状态处理所述数据对象。
14.如权利要求13所述的系统,其中所述数据传输设备是数据传输设备集群的成员,并且,并且所述指令还包括如下指令,其由所述一个或多个处理器执行时致使所述计算机系统:
根据指定将一个或多个数据对象从所述数据传输设备集群传输到所述数据传输设备的指令集,将所述第二数据对象集写入所述数据传输设备。
15.如权利要求13所述的系统,其中致使所述计算机系统执行所述比较的所述指令还包括致使所述计算机系统将所述第一清单中指定的完整性信息与所述第二清单中指定的完整性信息进行比较的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/473,475 | 2017-03-29 | ||
US15/473,475 US10768849B2 (en) | 2017-03-29 | 2017-03-29 | Migration of information via storage devices |
US15/473,479 | 2017-03-29 | ||
US15/473,479 US20180285369A1 (en) | 2017-03-29 | 2017-03-29 | Manifest generation for data transfers |
PCT/US2018/024092 WO2018183118A1 (en) | 2017-03-29 | 2018-03-23 | Migration of information via storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110574352A true CN110574352A (zh) | 2019-12-13 |
CN110574352B CN110574352B (zh) | 2022-09-20 |
Family
ID=61966080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880028063.4A Active CN110574352B (zh) | 2017-03-29 | 2018-03-23 | 通过存储设备迁移信息 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3603025B1 (zh) |
CN (1) | CN110574352B (zh) |
WO (1) | WO2018183118A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11308986B2 (en) * | 2020-08-11 | 2022-04-19 | International Business Machines Corporation | Event based reconcile operation for hierarchical storage management |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144148A1 (en) * | 2001-04-03 | 2002-10-03 | Tony Hashem | Method and system for secure transmission of information |
CN1991855A (zh) * | 2005-12-29 | 2007-07-04 | 国际商业机器公司 | 复制受保护数据的方法与系统 |
CN1996871A (zh) * | 2006-01-05 | 2007-07-11 | 乐金电子(中国)研究开发中心有限公司 | 一种数据同步方法 |
US20120137001A1 (en) * | 2010-11-23 | 2012-05-31 | James Michael Ferris | Systems and methods for migrating subscribed services in a cloud deployment |
US8554735B1 (en) * | 2009-05-27 | 2013-10-08 | MiMedia LLC | Systems and methods for data upload and download |
CN103902410A (zh) * | 2014-03-28 | 2014-07-02 | 西北工业大学 | 云存储系统的数据备份加速方法 |
US8813117B1 (en) * | 2012-04-27 | 2014-08-19 | Google Inc. | Content subset conditional access framework |
CN104137104A (zh) * | 2012-02-24 | 2014-11-05 | 高通股份有限公司 | 基于共享元信息的网页的协作式加载 |
CN105359105A (zh) * | 2013-05-29 | 2016-02-24 | 微软技术许可有限责任公司 | 通过网络文件访问协议的高效编程存储器访问 |
-
2018
- 2018-03-23 EP EP18717482.6A patent/EP3603025B1/en active Active
- 2018-03-23 CN CN201880028063.4A patent/CN110574352B/zh active Active
- 2018-03-23 WO PCT/US2018/024092 patent/WO2018183118A1/en unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144148A1 (en) * | 2001-04-03 | 2002-10-03 | Tony Hashem | Method and system for secure transmission of information |
CN1991855A (zh) * | 2005-12-29 | 2007-07-04 | 国际商业机器公司 | 复制受保护数据的方法与系统 |
CN1996871A (zh) * | 2006-01-05 | 2007-07-11 | 乐金电子(中国)研究开发中心有限公司 | 一种数据同步方法 |
US8554735B1 (en) * | 2009-05-27 | 2013-10-08 | MiMedia LLC | Systems and methods for data upload and download |
US20120137001A1 (en) * | 2010-11-23 | 2012-05-31 | James Michael Ferris | Systems and methods for migrating subscribed services in a cloud deployment |
CN104137104A (zh) * | 2012-02-24 | 2014-11-05 | 高通股份有限公司 | 基于共享元信息的网页的协作式加载 |
US8813117B1 (en) * | 2012-04-27 | 2014-08-19 | Google Inc. | Content subset conditional access framework |
CN105359105A (zh) * | 2013-05-29 | 2016-02-24 | 微软技术许可有限责任公司 | 通过网络文件访问协议的高效编程存储器访问 |
CN103902410A (zh) * | 2014-03-28 | 2014-07-02 | 西北工业大学 | 云存储系统的数据备份加速方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3603025A1 (en) | 2020-02-05 |
WO2018183118A1 (en) | 2018-10-04 |
CN110574352B (zh) | 2022-09-20 |
EP3603025B1 (en) | 2023-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409458B2 (en) | Migration of information via storage devices | |
US11108863B2 (en) | Tag operating system | |
US10936729B2 (en) | Redundant key management | |
CN111801927B (zh) | 与工业数据验证相关联的方法和促进工业数据验证的系统 | |
US20180285369A1 (en) | Manifest generation for data transfers | |
US20180069844A1 (en) | Secure data destruction in a distributed environment using key protection mechanisms | |
US20200074103A1 (en) | Large network attached storage encryption | |
US20200364525A1 (en) | Rf tag operating system with iot connector core | |
US9898618B1 (en) | Securing a remote database | |
CN115349244A (zh) | 用于密码标签的存储和通信环境 | |
CN102428448A (zh) | 存储设备认证 | |
US20170277775A1 (en) | Systems and methods for secure storage of user information in a user profile | |
KR20190029509A (ko) | 사용자 프로필에 사용자 정보를 안전하게 저장하기 위한 시스템 및 방법 | |
US11356445B2 (en) | Data access interface for clustered devices | |
US20150271122A1 (en) | Systems and methods for managing security certificates through email | |
US9515997B1 (en) | Inline data encryption | |
US20180287801A1 (en) | Efficient device provision | |
CN111984726A (zh) | 测量数据集的存储和分布式数据库 | |
WO2019157122A1 (en) | Rf tag operating system with iot connector core | |
US11063915B1 (en) | Cluster of network-attachable storage devices with cluster manifest | |
CN110574352B (zh) | 通过存储设备迁移信息 | |
CN115374478A (zh) | 提供可运送存储装置以及从可运送存储装置提取数据 | |
US11381584B1 (en) | System and methods using ephemeral accounts to limit risk of exposing sensitive data | |
CN116467388A (zh) | 一种基于区块链的共享文件一致性维护系统及方法 | |
CN111429158B (zh) | 一种基于电子追踪标识链的追踪方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |