CN108431763B - 通过网络服务管理多个云存储装置 - Google Patents

通过网络服务管理多个云存储装置 Download PDF

Info

Publication number
CN108431763B
CN108431763B CN201780004682.5A CN201780004682A CN108431763B CN 108431763 B CN108431763 B CN 108431763B CN 201780004682 A CN201780004682 A CN 201780004682A CN 108431763 B CN108431763 B CN 108431763B
Authority
CN
China
Prior art keywords
cloud
storage system
specific
based storage
call
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.)
Active
Application number
CN201780004682.5A
Other languages
English (en)
Other versions
CN108431763A (zh
Inventor
S·K·毕拉纳
V·梅纳西纳齐达南达
J·拉蒂纳莫尔提
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108431763A publication Critical patent/CN108431763A/zh
Application granted granted Critical
Publication of CN108431763B publication Critical patent/CN108431763B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种服务暴露了独立于存储系统的应用编程接口(API),以及通过该API从应用接收数据请求。该服务将独立于存储系统的数据请求转换为特定于存储系统的数据请求,并针对识别的基于云的存储系统来执行该数据请求。该服务可以针对多个基于云的存储系统来执行该请求,然后通过独立于存储系统的API将聚合的结果返回给该应用。

Description

通过网络服务管理多个云存储装置
背景技术
计算机系统目前被广泛使用。一些计算机系统允许用户在远程服务器环境中存储和管理数据。例如,一些计算机允许用户在一个或多个基于云的存储系统中存储和管理数据。
通常,每个基于云的存储系统具有其自己的接口。为了访问这样的系统上的数据,用户经常需要向用户具有数据的个体基于云的存储系统中的每一者认证他或她自己,然后单独访问和管理他或她在每个基于云的存储系统上的数据。
为了至少在某种程度上缓解这个问题,最近已经做了一些工作来为用户访问这样的系统提供更方便的用户接口。例如,已经完成了一些工作来提供统一的用户接口,其允许用户看到用户在其上具有数据的多个不同的基于云的存储系统。从该统一的用户接口,用户可以选择个体基于云的存储系统,并通过该统一的用户接口来访问和管理所选择的系统上的数据。然而,这些类型的用户接口通常只是简单地将用户导航到所选择的基于云的存储系统的特定接口,然后用户仍然需要使用与其他系统分开的其特定的接口来访问和管理该基于云的存储系统上的数据。
上文的讨论仅为了提供一般背景信息,而非意在用于辅助确定所主张的主题的范围。
发明内容
一种服务暴露了独立于存储系统的应用编程接口(API),以及通过该API从应用接收数据请求。该服务将独立于存储系统的数据请求转换为特定于存储系统的数据请求,并针对识别的基于云的存储系统来执行该数据请求。该服务可以针对多个基于云的存储系统来执行该请求,然后通过独立于存储系统的API将聚合的结果返回给该应用。
提供本发明内容以便以简化的形式对下面在具体实施方式中进一步描述的设计构思的选择进行介绍。本发明内容并不意在标识主张的主题的关键特征或重要特征,也不意在用于协助确定主张的主题的范围。主张的主题不限于解决背景技术中指出的任意或所有缺点的实施方式。
附图说明
图1A和图1B(在本文中被统称为图1)示出了存储系统管理架构的一个示例的框图。
图2是示出图1所示的架构的操作的一个示例的流图。
图3是其中云存储管理系统自身部署在云中的框图。
图4-图6示出了可以用于前图所示的架构中的移动设备的示例。
图7是示出了可以用于前图所示的架构中的计算环境的一个示例的框图。
具体实施方式
图1A和图1B(在本文中被统称为图1)示出了存储系统管理架构100的一个示例的框图。架构100说明性地包括通过独立于存储系统的应用编程接口(API)108的集合与云存储管理系统106通信的一个或多个用户设备102-104。设备102和104可以通过API 108直接(如箭头110和112所示)通信或通过网络114通信。网络114可以是广域网、局域网或各种其他类型的网络。
云存储管理系统106自身说明性地与多个不同的基于云的存储系统116-118通信。系统116-118中的每一者说明性地具有其自己的特定于存储系统的接口120,并且系统106通过它们自己的特定于存储系统的接口120来与基于云的存储系统116-118通信。
架构100示出了用户设备102-104说明性地生成用户接口122-124,其每一者具有一个或多个用户输入机制126-128,用于用户130-132的交互。用户130-132说明性地与用户输入机制126-128进行交互,以便控制和操纵用户设备102和104以及云存储管理系统106并最终控制和操纵基于云的存储系统116-118。每个用户输入设备102-104说明性地包括一个或多个处理器140-142、数据存储装置144-146、一个或多个应用148-150,并且它们可以包括各种各样的其他项目152-154。
每个应用说明性地是访问相应用户的数据并操纵该数据以执行某种类型的功能的应用。因此,每个应用可以具有数据访问功能160-162、数据管理功能164-166、用户接口功能168-170、认证功能172-174,并且每个应用可以包括各种各样的其他功能176-178。为了本描述的目的,将更详细地描述应用148,尽管应用150可以是类似的或不同的应用。
数据访问功能160说明性地通过云存储管理系统106在用户具有账户并且存储了数据的各种基于云的存储系统116-118中的任一者上访问用户的数据。数据访问功能160可以用于从各个基于云的存储系统116-118(再次通过云存储管理系统106)创建、读取、更新和删除数据。数据管理功能164说明性地允许用户对他或她的数据执行数据管理功能,并且认证功能172说明性地允许用户执行与应用148的单一认证。应用148转而与云存储管理系统106进行认证来向系统106和各个基于云的存储系统116-118认证用户,使得应用148可以访问用户的数据。用户接口功能168说明性地生成针对用户130的用户接口122。再次,将注意的是,应用148说明性地访问独立于存储系统的API 108,以便获得对用户数据的访问权。因此,应用148仅需要被配置为针对用户在其中具有数据的各个基于云的存储系统116-118使用API 108的一个集合而不是所有的特定于存储系统的接口120。
在图1所示的示例中,云存储管理系统106说明性地包括一个或多个服务器或处理器180、存储系统识别逻辑单元181、搜索转换逻辑单元182、操作识别逻辑单元183、数据访问转换逻辑单元184、文件过滤转换逻辑单元186、备份转换逻辑单元188、认证和令牌管理逻辑单元190、数据存储装置192,并且其可以包括各种其他项目194。数据存储装置192可以包括云存储账户信息196,其对标识个体用户的基于云的存储系统账户的信息进行存储。该信息可以包括用户本可以用于向相应的基于云的存储系统认证他或她自己的认证信息。数据存储装置192还可以包括应用认证信息198,其是用于向云存储管理系统106认证应用148-150中的每一者的信息。数据存储装置192还可以包括各种各样的其他信息200。
在更详细地描述架构100的整体操作之前,首先将提供对云存储管理系统106上的一些项目的简要描述。
存储系统识别逻辑单元181通过API 108接收来自应用148-150的调用,以及识别该调用所针对的基于云的存储系统116-118的特定集合(例如,相关的基于云的存储系统116-118)。操作识别逻辑单元183识别将在相关的基于云的存储系统116-118上执行的操作,所述相关的基于云的存储系统116-118是在该来自应用的调用中识别的。
认证和令牌管理逻辑单元190说明性地管理调用应用148-150与系统106之间以及该应用与相关的基于云的存储系统116-118之间的认证。例如,用户130可以与应用148来认证他或她自己。应用148然后代表用户进行调用以访问或管理基于云的存储系统116-118中的一者或多者上的数据。认证和令牌管理逻辑单元190可以访问应用认证信息198和用户云存储账户存储信息196以生成可以由调用应用用来向基于云的存储系统116-118进行认证的认证令牌。在另一示例中,认证和令牌管理逻辑单元190基于先前存储的认证信息以及账户信息196和198来处理与基于云的存储系统116-118自身的认证。以这种方式,给定的用户只需要认证一次(如对相应的应用148-150),并且用户将被自动认证到在云存储管理系统106的数据存储装置192中识别的他的或她的所有基于云的存储系统116-118。再次,因为用户不需要分别认证他或她的每个基于云的存储系统,这节省了网络带宽、计算和存储资源以及开销,并且极大地简化了用户体验。
当来自应用(例如,应用148)的调用被识别为表示搜索操作的搜索请求时,其被提供给搜索转换逻辑单元182。搜索请求说明性地标识应用正在用户的基于云的存储系统116-118上搜索的信息。搜索转换逻辑单元182将其通过API 108接收的搜索请求转换为一个或多个特定于存储系统的请求,所述一个或多个特定于存储系统的请求是针对相关的基于云的存储系统116-118的相关的特定于存储系统的接口120启动的。搜索转换逻辑单元182通过它们的接口120从相关的基于云的存储系统接收搜索结果,并将那些结果转换为通过API 108提供给调用应用的返回结果。
如果调用被识别为数据访问请求,则其被提供给数据访问转换逻辑单元184。数据访问请求可以是执行数据访问操作,如从基于云的存储系统116-118中的一者或多者创建、读取、更新或删除数据。而且,值得注意的是,请求可以是将数据从基于云的存储系统116-118中的一者移动到另一者,或者在多个基于云的存储系统116-118之间分发数据。也可以将来自多个基于云的存储系统116-118的数据聚合到单个。在本文中设想了所有这些。将注意的是,数据访问转换逻辑单元184可以在无需将任何数据下载到调用应用驻留的特定用户设备的情况下做到这一点。以这种方式,与一些现有系统相比,执行这样的操作所需的网络带宽被显著降低。
在任何情况下,数据访问转换逻辑单元184接收独立于存储系统的数据访问请求并将其转换为通过相关接口120执行的一个或多个特定于存储系统的请求,以便对相关的基于云的存储系统116-118上的数据执行数据访问操作。逻辑单元184可以来回编组数据,将返回的数据转换为独立于存储系统的形式以便其可以通过API 108提供给调用应用。
如果调用被识别为表示文件过滤操作的文件过滤请求,则其被提供给文件过滤转换逻辑单元186。例如,过滤请求可以执行过滤操作,例如识别特定文件类型的所有文件(例如,音乐、视频、图像等)。文件过滤逻辑单元186将通过API 108接收的独立于存储系统的过滤请求转换为应用于相关的基于云的存储系统116-118的接口120的一个或多个特定于存储系统的请求。因此,逻辑单元186可以跨给定用户的所有基于云的存储系统116-118搜索并过滤该用户的所有数据,并且以独立于存储系统的方式通过API 108将过滤结果返回给调用应用。
备份转换逻辑单元188说明性地通过API 108接收备份配置请求。其将该请求转换为一个或多个特定于存储系统的备份配置请求,所述特定于存储系统的备份配置请求将配置基于云的存储系统116-118中的一者或多者以备份信息,如备份配置请求所指示的。将注意的是,这样的请求可以在其自己的存储系统上请求操作(如针对个体基于云的存储系统116-118)以生成文件集合的备份版本。然而,这也可以请求一个或多个基于云的存储系统116-118在基于云的存储系统116-118中不同的一者上备份版本。备份转换逻辑单元188说明性地控制基于云的存储系统116-118以执行这些备份操作,而不需要将要备份的信息下载到调用应用148-150的用户设备102-104。再次,这也显著降低了对网络带宽的需求,并加速了备份操作。
图2是更详细示出架构100的操作的一个示例的流图。现在将结合彼此来描述图1和图2。该描述将针对应用148的操作继续,以便在一个或多个基于云的存储系统116-118上执行操作。然而,将领会的是,本描述可以很容易地应用于应用150。
首先假设用户130已经启动或以其他方式启用了应用148。在一个示例中,应用148可以主动在基于云的存储系统116-118中的一者上执行操作,或者其可以在用户130请求时这样做。对于本示例,假设用户130提供指示用户期望对用户已经存储在基于云的存储系统116-118中的一者或多者上的信息执行某种类型的操作的输入。在应用148处接收这样的用户输入由图2中的框250指示。该输入可以指示各种各样的不同用户请求。例如,其可以是指示用户期望对他或她的数据执行某种类型的管理操作的管理输入252。这可以是用户创建文件或文件夹或者重新安排文件层次结构,或以其他方式设置属性或对用户的数据执行其他管理操作的操作。该输入可以指示用户数据访问请求254。例如,这可能是读取、复制、创建、更新、删除或以其他方式访问用户的数据并执行某种类型的操作。当然,用户输入也可以指示各种各样的其他请求256,并且在下文中描述了其中的一些。
应用148然后使用API 108进行对云存储管理系统106的独立于存储系统的调用。这由图2中的框258指示。在一个示例中,云存储管理系统106中的各个项目支持由系统106暴露的API 108,使得应用148可以通过独立于存储系统的API 108的单个集合来执行搜索请求、数据访问请求、文件过滤请求、备份(或备份配置)请求和认证请求,等等。将注意的是,因为应用148只需要调用独立于存储系统的API 108,所以它不需要实现由基于云的存储系统116-118所暴露的所有特定于存储系统的接口120。当转换组件被添加到系统106时,对于另外的基于云的存储系统,应用148也可以访问那些基于云的存储系统,而不需要知道新的特定于存储系统的接口120的细节。
存储系统识别逻辑单元181然后基于通过其API 108接收到的调用来识别哪些基于云的存储系统将被访问。这由框260指示。在一个示例中,逻辑单元181通过以下方式来进行该操作:访问由应用148表示的用户的账户信息196来识别用户在其上拥有账户的所有各种基于云的存储系统116-118。然后其通过API 108将这些提供给应用148,使得它们可以被显示给用户130。也说明性地提供用户输入机制126,使得用户130可以选择用户想要访问的特定的基于云的存储系统。列出用户的存储装置并要求用户通过应用148识别相关的存储装置由方框262指示。然而,在另一示例中,存储系统识别逻辑单元181可以基于该调用自身来辨别哪些特定的基于云的存储系统116-118将被访问。例如,被唤起的API 108可以接收标识将受该调用影响的特定的基于云的存储系统116-118的一个或多个标识符作为输入。基于该调用来自动识别要被访问的基于云的存储系统由图2中的框264指示。基于该调用将被访问的特定的相关的基于云的存储系统116-118也可以以其他方式被识别,并且这由框266指示。
操作识别逻辑单元183然后识别应用148正在请求的操作的类型。这由图2中的框268指示。例如,应用可能正在请求访问数据、过滤数据、执行其他搜索操作、配置备份操作、或在基于云的存储系统上执行各种各样的其他操作。特定类型的操作由逻辑单元183标识,使得它可以由管理系统106中的合适项目来处理。
一旦已经识别出了相关的基于云的存储系统(或一些系统),并且一旦特定的操作已经被识别,则认证和令牌管理逻辑单元190访问该应用以及数据存储装置192中的用户认证和账户信息196和198,使得特定用户和应用可以被认证到相关的基于云的数据存储装置。访问该信息由图2中的框270指示,并且执行认证由框272指示。
在执行认证时,逻辑单元190说明性地向与从应用148接收的调用相关的、所识别的基于云的存储系统116-118自动认证用户和应用。其可以基于先前从用户130和/或应用148接收并存储在数据存储装置192中的认证信息来进行该操作。在另一示例中,其可以执行认证操作,使得应用148(和/或用户130)通过API 108来向认证和令牌管理逻辑单元190认证它们自己。一旦完成,逻辑单元190就可以与所识别的基于云的存储系统执行认证。在又一示例中,逻辑单元190可以直接在应用148(和/或用户130)与所识别的基于云的存储系统116-118之间进行认证会话。在所有这些示例中,认证和令牌管理逻辑单元190说明性地处理其自身和应用148之间(如图2中的框274所指示)以及其自身和正在被访问的基于云的存储系统之间(如框276所指示)的认证。在认证过程期间,可以确保特定用户或应用不仅被授权访问所识别的基于云的存储系统,还可以确保用户或应用程序被授权对这些基于云的存储系统执行所识别的操作。认证和令牌管理逻辑单元190也可以用其他方式来执行认证,并且这由框278指示。
一旦向将被该调用影响的所识别的基于云的存储系统116-118认证了用户130和/或应用148,则所识别的操作被提供给合适的逻辑项目以便转换。然后,合适的逻辑项目将独立于存储系统的调用转换为特定于存储系统的调用,使得其可以针对相关的存储系统116-118的接口120来执行。这由图2中的框280指示。
这可以用各种各样不同的方式来完成。例如,云存储管理系统106中的逻辑项目182-190中的每一者可以具有单独的映射集合,其从通过API 108接收的调用映射到各种所支持的基于云的存储系统116-118的特定于存储系统的接口120。然后,一旦接收到所识别的操作,逻辑项目中的每一者就可以访问那些映射,以便在所识别的基于云的存储系统上执行所请求的操作。在另一示例中,可以通过访问映射的中心集合来执行转换,或者通过从独立于存储系统的调用动态地计算特定于存储系统的调用来执行转换。在本文中设想了所有这些和其他机制。
一旦执行操作的调用已经被转换为特定于存储系统的调用,然后就通过它们对应的接口120针对一个或多个基于云的存储系统116-118来执行它。这由框282指示。将注意的是,请求可能不涉及应用148直接访问基于云的存储系统116-118上的任何信息。替代地,例如,请求可以是将信息从一个系统116移动到另一系统118。在那种情况下,特定的逻辑项目可以在无需将数据下载到运行应用148的设备的情况下来进行该操作。这在各种情况下可以特别有用。例如,如果正在运行应用148的用户设备102是移动设备,则下载相对大的文件会增加存储器使用率、带宽使用率和其他处理开销。如果可以简单地将文件从一个基于云的存储系统116移动到另一个,而不需要下载它,则这可以加速操作并节约否则可能用于执行该操作的各种类型的处理和存储器开销操作。在不下载文件或其他数据的情况下在基于云的存储系统116-118当中执行操作由图2中的框284指示。
如果操作识别逻辑单元183将所请求的操作识别为搜索操作,则其被提供给搜索转换逻辑单元182。转换逻辑单元182将搜索请求转换为可以针对接口120启动的特定于存储系统的请求。再次,将注意的是,该请求可以识别多个不同的基于云的存储系统116-118。例如,在应用148跨用户的所有云存储账户中搜索当前用户的信息时可能是这种情况。在那种情况下,搜索转换逻辑单元182将搜索请求转换为多个独立的特定于存储系统的请求,所述请求可以针对将被搜索的各种不同的基于云的存储系统116-118的接口120来执行。执行搜索操作由框286指示。
如果操作识别逻辑单元183已经将操作识别为一个或多个基于云的存储系统116-118上的文件或一些文件上的数据访问请求(如用于创建、读取、更新、删除等的请求),则该请求被提供给数据访问转换逻辑单元184。逻辑单元184将数据访问请求转换为可以针对相关的基于云的存储系统116-118的接口120执行的一个或多个特定于存储系统的请求。转换和执行数据访问请求由图2中的框288指示。
还可以是操作识别逻辑单元183将操作识别为过滤操作。例如,可以是应用148期望获得(如下载或以其他方式访问)基于某些过滤准则过滤的用户文件列表。通过举例的方式,可以对文件列表进行过滤以识别文件的类型(如图像、音乐、视频、文本等)。当然,过滤准则也可以是各种各样的其他过滤准则。在那种情况下,文件过滤转换逻辑单元186将请求转换为可以针对一个或多个相关的基于云的存储系统116-118的接口120执行的一个或多个特定于存储系统的请求。转换和执行文件过滤请求由图2中的框290指示。
如果操作识别逻辑单元183将所请求的操作识别为备份请求或备份配置请求,则该操作可以被提供给备份转换逻辑单元188。然后,备份转换逻辑单元188说明性地将该请求转换为可以针对将发生备份操作或配置的接口120执行的一个或多个特定于存储系统的请求。转换和执行备份操作由框292指示。
将注意的是,操作也可以是各种各样的其他操作。可以提供转换以将那些请求的操作转换为针对相关的基于云的存储系统的特定于存储系统的操作。这由框294指示。
将注意的是,上述讨论已经描述了各种不同的系统、组件和/或逻辑单元。将领会的是,这样的系统、组件和/或逻辑单元可以由执行与那些系统、组件和/或逻辑单元相关联的功能的硬件项目(如处理器和相关联的存储器,或其他处理组件,在下文中描述了其中的一些)组成。另外,如下所述,系统、组件和/或逻辑单元可以由加载到存储器中并随后由处理器或服务器或其他计算组件执行的软件组成。系统、组件和/或逻辑单元还可以由硬件、软件、固件等的不同组合组成,在下文中描述了它们的一些示例。这些只是可以用于形成上述系统、组件和/或逻辑单元的不同结构的一些示例。也可以使用其他结构。
本文的讨论已经提及了处理器和服务器。在一个实施例中,处理器和服务器包括具有相关联的存储器和定时电路(没有单独示出)的计算机处理器。它们是其所属的系统或设备的功能部分,并且由那些系统中的其他组件或项目激活,并且促进那些系统中的其他组件或项目的功能。
而且,已经讨论了多个用户接口显示。它们可采取各种各样的不同的形式,并且可以具有置于其上的各种各样的不同的用户可致动输入机制。例如,用户可致动输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。也可以用各种各样的不同的方式来致动它们。例如,可以使用点击设备(如轨迹球或鼠标)来致动它们。可使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来致动它们。还可以使用虚拟键盘或其他虚拟致动器来致动它们。另外,在显示它们的屏幕是触摸敏感屏幕的情况下,可以使用触摸手势来致动它们。另外,在显示它们的设备具有语音识别组件的情况下,可以使用语音命令来致动它们。
也已经讨论了多个数据存储装置。将注意的是,可以将它们分别分割成多个数据存储装置。所有的数据存储装置对于访问它们的系统来说可以是本地的,所有的数据存储装置可以是远程的,或者一些可以是本地的而其他是远程的。在本文中设想了所有这些配置。
而且,附图示出了具有归于每个框的功能的多个框。将注意的是,可使用更少的框,从而功能由更少的组件执行。而且,在功能分布在更多的组件当中时,可以使用更多的框。
图3是图1中示出的架构100的框图,除了系统106也置于云计算架构500中之外。云计算提供不需要端用户知晓递送服务的系统的物理位置或配置的计算、软件、数据访问和存储服务。在各个实施例中,云计算使用合适的协议在广域网(如互联网)上递送服务。例如,云计算提供商在广域网上递送应用,并且它们可以通过网络浏览器或任何其他计算组件来访问。架构100的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以被合并在远程数据中心位置处,或者它们可以是分散的。云计算基础设施可以通过共享的数据中心来递送服务,即使对于用户来说它们看起来像单个接入点。因此,可以使用云计算架构从位于远程位置处的服务提供商提供本文中描述的组件和功能。替代地,它们可从传统服务器提供,或者,它们可以直接或以其他方式安装在客户端设备上。
本描述意在包括公共云计算和私有云计算二者。云计算(公共和私有二者)提供资源的大量无缝汇集,以及管理和配置底层硬件基础设施的降低的需要。
公共云由供应商管理,并且通常支持多个消费者使用相同的基础设施。而且,公共云与私有云相反,可以将终端用户从管理硬件中解放出来。私有云可以由组织自身管理,并且基础设施通常不与其他组织共享。组织将在某个程度上维护硬件,如安装和维修等。
在图3所示的示例中,一些项目与图1中示出的那些项目类似,并且对它们进行类似编号。图3具体示出了系统106、116-118都可位于云502(其可以是公共的、私有的,或者部分公共而其他部分私有的组合)中。因此,用户130-132可以使用用户设备102-104通过云502来访问那些系统。
图3还描绘了云架构的另一示例。图3示出:还设想了架构100的一些元素布置于云502中,而其他元素则不。通过举例的方式,数据存储装置192可以被布置在云502外部,并且通过云502被访问。在另一示例中,系统106可以在云502外部。不管它们位于何处,它们都可以由设备102-104通过网络(广域网或局域网)直接访问,它们可以由服务托管在远程站点处,或者它们可以作为服务通过云提供或由位于该云中的连接服务访问。在本文中设想了所有这些架构。
还将注意的是,架构100或其部分可以被布置在各种各样的不同设备上。那些设备中的一些包括:服务器、桌面式计算机、膝上型计算机、平板计算机或其他移动设备,如掌上计算机、手机、智能电话、多媒体播放器、个人数字助理等。
图4是本系统(或其部分)可以在其中部署的手持或移动计算设备16(其可用作用户或客户的手持设备16)的一个说明性示例的简化框图。图5-图6是手持或移动设备的示例。
图4提供了可以运行架构100的组件或与架构100进行交互或可以进行这二者的客户端设备16的组件的一般框图。在设备16中,提供了允许手持设备与其他计算设备通信的通信链路13,并且在一些实施例下,提供了用于自动接收信息(如通过扫描)的信道。通信链路13的示例包括:红外线端口、串行/USB端口、电缆网络端口(如以太网端口)以及允许通过一种或多种通信协议的通信的无线网络端口,所述通信协议包括用于向网络提供蜂窝接入的无线服务的通用分组无线服务(GPRS)、LTE、HSPA、HSPA+和其他3G和4G无线协议、lXrtt和短消息服务,以及提供到网络的本地无线连接的Wi-Fi协议和蓝牙协议。
在其他示例中,应用或系统是在可移动安全数字(SD)卡上接收的,所述可移动SD卡连接到SD卡接口15。SD卡接口15和通信链路13沿也连接到存储器21和输入/输出(I/O)组件23以及时钟25和定位系统27的总线19与处理器17(其也可以体现前图所示的处理器)通信。
在一个实施例中,提供I/O组件23以促进输入和输出操作。设备16的各个实施例的I/O组件23可以包括:输入组件(如按钮、触摸传感器、多点触摸传感器、光或视频传感器、语音传感器、触摸屏、接近传感器、麦克风、倾斜传感器和重力开关)和输出组件(如显示设备、扬声器和或打印机端口)。也可使用其他I/O组件23。
时钟25说明性地包括输出时间和日期的实时时钟组件。其还可以说明性地为处理器17提供定时功能。
定位系统27说明性地包括输出设备16的当前地理位置的组件。例如,这可以包括:全球定位系统(GPS)接收机、LORAN系统、航位推算系统、蜂窝三角测量系统或其他定位系统。例如,其还可以包括生成所需的地图、导航路线和其他地理功能的地图软件或导航软件。
存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储37、通信驱动器39和通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储设备。其还可以包括计算机存储介质(下文描述的)。存储器21存储当由处理器17执行时,使得处理器根据指令执行计算机实现的步骤或功能的计算机可读指令。类似地,设备16可以具有可以运行各种应用148-150或体现架构100的部分或全部的客户端系统24。处理器17也可以由其他组件激活以促进它们的功能。
网络设置31的示例包括诸如代理信息、互联网连接信息和映射之类的事物。应用配置设置35包括针对特定企业或用户定制应用的设置。通信配置设置41提供用于与其他计算机通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和密码之类的条目。
应用33可以是先前已经被存储在设备16上的应用,或者在使用期间安装的应用,但是这些也可以是操作系统29的一部分,或者被托管在设备16外部。
图5示出了设备16是平板计算机600的一个示例。在图6中,计算机600被示为具有用户接口显示屏幕602。屏幕602可以是触摸屏(从而来自用户手指的触摸手势可以用于与应用进行交互)或者是接收来自笔或触针的输入的笔写接口。其也可以使用屏幕上的虚拟键盘。当然,其也可以通过适当的附接机制(例如,无线链路或USB端口)附接到键盘或其他用户输入设备。计算机600还可以说明性地接收语音输入。
还可以使用设备16的另外的示例。设备16可以是功能电话、智能电话或移动电话。电话可以包括:用于拨电话号码的一组按键,能够显示图像(包括应用图像、图标、网页、照片和视频)的显示器,以及用于选择显示器上显示的项目的控制按钮。电话可以包括:用于接收蜂窝电话信号(如通用分组无线服务(GPRS)和lXrtt,以及短消息服务(SMS)信号)的天线。在一些示例中,电话还包括接受SD卡的安全数字(SD)卡插槽。
图6示出了设备可以是智能电话71。智能电话71具有显示图标或磁贴(tile)或者其他用户输入机制75的触摸敏感显示器73。机制75可以由用户用来运行应用、打电话、执行数据传输操作等。概括地说,智能电话71建于移动操作系统上,并且提供比功能电话更高级的计算能力和连接性。
注意的是,其他形式的设备16是可能的。
图7是可以在其中部署架构100或其部分(例如)的计算环境的一个示例。参考图7,用于实现一些实施例的示例系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于:处理单元820(其可以包括前图所示的处理器)、系统存储器830,以及将包括系统存储器的各种系统组件耦合到处理单元820的系统总线821。系统总线821可以是若干种类型的总线结构中的任意一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线架构中的任意一种的本地总线。通过举例而非限制的方式,这样的架构包括:工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外围组件互连(PCI)总线(也被称为Mezzanine总线)。针对图1描述的存储器和程序可以被部署在图7的相应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可以是可以由计算机810访问的任何可用介质,并且包括易失性和非易失性介质,可移动和不可移动介质。通过举例而非限制的方式,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于并且不包括经调制的数据信号或载波。其包括硬件存储介质,所述硬件存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质二者。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储期望的信息且可以由计算机810访问的任何其他介质。通信介质通常体现为计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并且包括任何信息递送介质。术语“经调制的数据信号”意指其一个或多个特性以用于对信号中的信息进行编码的方式来设置或改变的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声音、RF、红外线和其他无线介质之类的无线介质。上述各项中任意项的组合也应当被包括在计算机可读介质的范围内。
系统存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)831和随机存取存储器(RAM)832。包含有助于在计算机810内的元件之间传输信息(如在启动时)的基本例程的基本输入/输出系统833(BIOS)通常被存储在ROM 831中。RAM 832通常包含由处理单元820立即可访问的和/或当前在操作的数据和/或程序模块。通过示例而非限制的方式,图7示出了操作系统834、应用程序835、其他程序模块836以及程序数据837。
计算机810还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅通过举例的方式,图7示出了从不可移动、非易失性磁性介质读取或向其写入的硬盘驱动器841,以及从可移动、非易失性光盘856(如CD ROM或其他光介质)读取或向其写入的光盘驱动器855。可以用于示例性操作环境的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:磁带、闪存卡、数字多功能盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器841通常通过不可移动存储器接口(如接口840)连接到系统总线821,而光盘驱动器855通常由可移动存储器接口(如接口850)连接到系统总线821。
替换地或另外地,本文中描述的功能可以至少部分地由一个或多个硬件或逻辑组件来执行。举例而非限制性地,可以使用的硬件逻辑组件的说明性类型包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、系统芯片系统(SOC)、复杂可编程逻辑器件(PLD)等。
在上文讨论并且在图7中示出的驱动器及其相关联的计算机存储介质为计算机810提供计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图7中,硬盘驱动器841被示为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意的是,这些组件可以与操作系统834、应用程序835、其他程序模块836和程序数据837相同或不同。操作系统844、应用程序845、其他程序模块846和程序数据847在这里被赋予不同的编号以说明至少它们是不同的副本。
用户可以通过诸如键盘862、麦克风863和定点设备861(如鼠标、轨迹球或触摸板)之类的输入设备来向计算机810录入命令和信息。其他输入设备(未示出)可以包括操纵杆、游戏手柄、碟形卫星天线、扫描仪等。这些和其他输入设备经常通过耦合到系统总线的用户输入接口860连接到处理单元820,但可以由其他接口和总线结构(如并行端口、游戏端口或通用串行总线(USB))连接。可视化显示器891或其他类型的显示设备也经由接口(如视频接口890)连接到系统总线821。除了监视器之外,计算机还可以包括诸如扬声器897和打印机896之类的其他外围输出设备,这些设备可以通过输出外围接口895连接。
计算机810使用去往一个或多个远程计算机(如远程计算机880)的逻辑连接操作在联网环境中。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上文针对计算机810描述的许多或所有元素。图10中描绘的逻辑连接包括:局域网(LAN)871和广域网(WAN)873,但还可以包括其他网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和互联网。
当用于LAN联网环境时,计算机810通过网络接口或适配器870连接到LAN 871。当用于WAN联网环境时,计算机810通常包括调制解调器872或用于在WAN 873(如互联网)上建立通信的其他单元。调制解调器872(其可以是内部或外部的)可以经由用户输入接口860或其他合适的机制连接到系统总线821。在联网环境中,针对计算机810描绘的程序模块或其部分可以被存储在远程存储器存储设备中。通过举例而非限制的方式,图7将远程应用程序885示为位于远程计算机880上。将领会的是,示出的网络连接是示例性的,并且可以使用用于在计算机之间建立通信链路的其他手段。
还应当注意的是,本文中描述的不同实施例可以不同方式进行组合。也就是说,一个或多个实施例的一些部分可以与一个或多个其他实施例的一些部分组合。在本文中设想了所有这些。
示例1是一种计算系统,包括:
云存储管理系统,其暴露了独立于存储系统的应用编程接口,所述应用编程接口由应用唤起以进行用于在与用户相对应的基于云的存储系统上执行操作的调用;
认证逻辑单元,其执行用于向所述基于云的存储系统认证所述应用的认证操作;以及
操作转换逻辑单元,其将所述调用转换为特定于存储系统的调用,并针对特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述基于云的存储系统上执行所述操作。
示例2是根据任意或所有先前示例所述的计算系统,其中,所述云存储管理系统还包括:
存储系统识别逻辑单元,其将所述基于云的存储系统识别为将在其上执行所述操作的与所述用户相对应的多个不同的相关的基于云的存储系统,所述不同的相关的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口。
示例3是根据任意或所有先前示例所述的计算系统,其中,所述操作转换逻辑单元被配置为:将所述调用转换为多个特定于存储系统的调用,并针对所述相应的特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述多个相关的基于云的存储系统上执行所述操作。
示例4是根据任意或所有先前示例所述的计算系统,其中,所述调用指示用于将识别的文件从所述多个基于云的存储系统中的第一基于云的存储系统移动到所述多个基于云的存储系统中的第二基于云的存储系统的数据访问请求,并且其中,所述操作转换逻辑单元被配置为:通过在无需将所述文件下载到所述应用的情况下将所述识别的文件从所述第一基于云的存储系统移动到所述第二基于云的存储系统来执行所述操作。
示例5是根据任意或所有先前示例所述的计算系统,其中,所述调用包括指示搜索的搜索请求,并且其中,所述操作转换逻辑单元包括:
搜索转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的搜索请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的搜索请求,以便在所述多个不同的相关的基于云的存储系统上执行所述搜索。
示例6是根据任意或所有先前示例所述的计算系统,其中,所述调用包括数据访问请求,所述数据访问请求指示用于对所述多个不同的相关的基于云的存储系统上的数据执行数据访问操作的请求,并且其中,所述操作转换逻辑单元包括:
数据访问转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的数据访问请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据访问请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据访问操作。
示例7是根据任意或所有先前示例所述的计算系统,其中,所述调用包括数据分发请求,所述数据分发请求指示用于跨所述多个不同的相关的基于云的存储系统分发与所述用户相对应的数据的数据分发操作,所述数据访问转换逻辑单元被配置为:将所述调用转换为多个不同的特定于存储系统的数据分发请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据分发请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据分发操作。
示例8是根据任意或所有先前示例所述的计算系统,其中,所述调用包括指示文件过滤操作的文件过滤请求,并且其中,所述操作转换逻辑单元包括:
文件过滤转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的文件过滤请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的文件过滤请求,以便在所述多个不同的相关的基于云的存储系统上执行所述文件过滤操作。
示例9是根据任意或所有先前示例所述的计算系统,其中,所述调用包括指示备份操作的备份请求,并且其中,所述操作转换逻辑单元包括:
备份转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的备份请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的备份请求,以便在所述多个不同的相关的基于云的存储系统上执行所述备份操作。
示例10是一种计算机实现的方法,包括:
检测对暴露的独立于存储系统的应用编程接口(API)的唤起,所述API由应用唤起以进行用于在与用户相对应的基于云的存储系统上执行操作的调用;
执行用于向所述基于云的存储系统认证所述应用的认证操作;
将所述调用转换为特定于存储系统的调用;以及
针对特定于存储系统的接口执行所述特定于存储系统的调用,以便在所述基于云的存储系统上执行所述操作。
示例11是根据任意或所有先前示例所述的计算机实现的方法,其中,检测对所述暴露的独立于存储系统的API的唤起包括:
将所述基于云的存储系统识别为将在其上执行所述操作的与所述用户相对应的多个不同的相关的基于云的存储系统,所述不同的相关的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口。
示例12是根据任意或所有先前示例所述的计算机实现的方法,其中,转换包括:
将所述调用转换为多个特定于存储系统的调用,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述多个相关的基于云的存储系统上执行所述操作。
示例13是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用指示用于将识别的文件从所述多个基于云的存储系统中的第一基于云的存储系统移动到所述多个基于云的存储系统中的第二基于云的存储系统的数据访问请求,并且其中,执行包括:
通过在无需将所述文件下载到运行所述应用的所述设备的情况下将所述识别的文件从所述第一基于云的存储系统移动到所述第二基于云的存储系统来执行所述操作。
示例14是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用包括指示搜索的搜索请求,并且其中,转换包括:
将所述调用转换为多个不同的特定于存储系统的搜索请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的搜索请求,以便在所述多个不同的相关的基于云的存储系统上执行所述搜索。
示例15是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用包括数据访问请求,数据访问请求指示用于对所述多个不同的相关的基于云的存储系统上的数据执行数据访问操作的请求,并且其中,转换包括:
将所述调用转换为多个不同的特定于存储系统的数据访问请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据访问请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据访问操作。
示例16是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用包括数据分发请求,数据分发请求指示用于跨所述多个不同的相关的基于云的存储系统分发与所述用户相对应的数据的数据分发操作,其中,转换包括:
将所述调用转换为多个不同的特定于存储系统的数据分发请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据分发请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据分发操作。
示例17是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用包括指示文件过滤操作的文件过滤请求,并且其中,转换包括:
将所述调用转换为多个不同的特定于存储系统的文件过滤请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的文件过滤请求,以便在所述多个不同的相关的基于云的存储系统上执行所述文件过滤操作。
示例18是根据任意或所有先前示例所述的计算机实现的方法,其中,所述调用包括指示备份操作的备份请求,并且其中,转换包括:
将所述调用转换为多个不同的特定于存储系统的备份请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的备份请求,以便在所述多个不同的相关的基于云的存储系统上执行所述备份操作。
示例19是一种计算系统,包括:
云存储管理系统,其暴露了独立于存储系统的应用编程接口,所述应用编程接口由应用唤起以进行用于在与用户相对应的基于云的存储系统上执行操作的调用;
存储系统识别逻辑单元,其识别将在其上执行所述操作的与所述用户相对应的多个不同的相关的基于云的存储系统,所述不同的相关的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口;
认证逻辑单元,其执行用于向所述多个不同的相关的基于云的存储系统认证所述应用的认证操作;以及
操作转换逻辑单元,其将所述调用转换为与所述多个不同的相关的基于云的存储系统相对应的多个不同的特定于存储系统的调用,并针对所述多个特定于存储系统的接口中的相应的一个特定于存储系统的接口来执行所述多个不同的特定于存储系统的调用中的每一者,以便在所述多个不同的相关的基于云的存储系统上执行所述操作。
示例20是根据任意或所有先前示例所述的计算系统,其中,所述调用包括数据分发请求,数据分发请求指示用于跨所述多个不同的相关的基于云的存储系统分发与所述用户相对应的数据的数据分发操作,所述操作转换逻辑单元被配置为:将所述调用转换为多个不同的特定于存储系统的数据分发请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据分发请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据分发操作。
尽管已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但应当理解的是,所附权利要求中定义的主题并不一定受限于上述具体特征或动作。更确切地说,上述具体特征或动作是作为实现权利要求的示例性形式而公开的。

Claims (14)

1.一种计算系统,包括:
云存储管理系统,其通过独立于存储系统的应用编程接口从客户端设备接收调用,所述调用与所述客户端设备上的应用相关联且指示用于将识别的文件从第一基于云的存储系统移动到第二基于云的存储系统的数据访问请求;
认证逻辑单元,其执行用于向所述第一基于云的存储系统认证所述应用的认证操作;以及
操作转换逻辑单元,其将所述调用转换为特定于存储系统的调用,并且通过在无需将所述识别的文件下载到所述客户端设备的情况下将所述识别的文件从所述第一基于云的存储系统移动到所述第二基于云的存储系统,针对特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述基于云的存储系统上执行操作。
2.根据权利要求1所述的计算系统,其中,所述云存储管理系统还包括:
存储系统识别逻辑单元,其将所述基于云的存储系统识别为与将在其上执行所述操作的与用户相对应的多个不同的相关的基于云的存储系统,所述不同的相关的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口。
3.根据权利要求2所述的计算系统,其中,所述操作转换逻辑单元被配置为:将所述调用转换为多个特定于存储系统的调用,并针对所述相应的特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述多个相关的基于云的存储系统上执行所述操作。
4.根据权利要求2所述的计算系统,其中,所述调用包括指示搜索的搜索请求,并且其中,所述操作转换逻辑单元包括:
搜索转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的搜索请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的搜索请求,以便在所述多个不同的相关的基于云的存储系统上执行所述搜索。
5.根据权利要求2所述的计算系统,其中,所述调用包括数据访问请求,所述数据访问请求指示用于对所述多个不同的相关的基于云的存储系统上的数据执行数据访问操作的请求,并且其中,所述操作转换逻辑单元包括:
数据访问转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的数据访问请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据访问请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据访问操作。
6.根据权利要求5所述的计算系统,其中,所述调用包括数据分发请求,所述数据分发请求指示用于跨所述多个不同的相关的基于云的存储系统分发与所述用户相对应的数据的数据分发操作,所述数据访问转换逻辑单元被配置为:将所述调用转换为多个不同的特定于存储系统的数据分发请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的数据分发请求,以便在所述多个不同的相关的基于云的存储系统上执行所述数据分发操作。
7.根据权利要求2所述的计算系统,其中,所述调用包括指示文件过滤操作的文件过滤请求,并且其中,所述操作转换逻辑单元包括:
文件过滤转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的文件过滤请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的文件过滤请求,以便在所述多个不同的相关的基于云的存储系统上执行所述文件过滤操作。
8.根据权利要求2所述的计算系统,其中,所述调用包括指示备份操作的备份请求,并且其中,所述操作转换逻辑单元包括:
备份转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的备份请求,并针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的备份请求,以便在所述多个不同的相关的基于云的存储系统上执行所述备份操作。
9.一种计算机实现的方法,包括:
通过独立于存储系统的应用编程接口API从客户端设备接收调用,所述调用与所述客户端设备上的应用相关联且指示用于将识别的文件从第一基于云的存储系统移动到第二基于云的存储系统的数据访问请求;
执行用于向所述第一基于云的存储系统认证所述应用的认证操作;
将所述调用转换为特定于存储系统的调用;以及
通过在无需将所述识别的文件下载到所述客户端设备的情况下将所述识别的文件从所述第一基于云的存储系统移动到所述第二基于云的存储系统,针对特定于存储系统的接口来执行所述特定于存储系统的调用,以便执行操作。
10.根据权利要求9所述的计算机实现的方法,其中,检测对暴露的独立于存储系统的API的唤起包括:
将所述基于云的存储系统识别为与将在其上执行所述操作的与用户相对应的多个不同的相关的基于云的存储系统,所述不同的相关的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口。
11.根据权利要求10所述的计算机实现的方法,其中,转换包括:
将所述调用转换为多个特定于存储系统的调用,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述特定于存储系统的调用,以便在所述多个相关的基于云的存储系统上执行所述操作。
12.根据权利要求11所述的计算机实现的方法,其中,所述调用指示用于将识别的文件从所述多个基于云的存储系统中的第一基于云的存储系统移动到所述多个基于云的存储系统中的第二基于云的存储系统的数据访问请求,并且其中,所述执行包括:
通过在无需将所述文件下载到运行所述应用的设备的情况下将所述识别的文件从所述第一基于云的存储系统移动到所述第二基于云的存储系统来执行所述操作。
13.根据权利要求10所述的计算机实现的方法,其中,所述调用包括指示搜索的搜索请求,并且其中,所述转换包括:
将所述调用转换为多个不同的特定于存储系统的搜索请求,并且其中,执行包括:针对所述相应的特定于存储系统的接口来执行所述多个特定于存储系统的搜索请求,以便在所述多个不同的相关的基于云的存储系统上执行所述搜索。
14.一种计算系统,包括:
云存储管理系统,其通过独立于存储系统的应用编程接口,从客户端设备接收调用,所述调用与所述客户端设备上的应用相关联且用于执行数据分发操作以跨多个不同的基于云的存储系统分发与用户相对应的数据;
存储系统识别逻辑单元,其识别与将在其上执行所述操作的与所述用户相对应的所述多个不同的基于云的存储系统,所述不同的基于云的存储系统中的每一者实现不同的相应的特定于存储系统的接口;
认证逻辑单元,其执行用于向所述多个不同的基于云的存储系统认证所述应用的认证操作;以及
操作转换逻辑单元,其将所述调用转换为多个不同的特定于存储系统的数据分发请求,每个数据分发请求与所述多个不同的基于云的存储系统中之一相对应,并且通过在无需将所述识别的文件下载到所述客户端设备的情况下跨所述多个不同的基于云的存储系统分发所述识别的文件,针对所述多个特定于存储系统的接口中的相应的一个特定于存储系统的接口来执行所述多个不同的特定于存储系统的数据分发请求中的每一者,以便执行所述数据分发操作。
CN201780004682.5A 2016-03-10 2017-03-03 通过网络服务管理多个云存储装置 Active CN108431763B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/066,693 US10193975B2 (en) 2016-03-10 2016-03-10 Managing multiple cloud stores through a web service
US15/066,693 2016-03-10
PCT/US2017/020551 WO2017155791A1 (en) 2016-03-10 2017-03-03 Managing multiple cloud stores through a web service

Publications (2)

Publication Number Publication Date
CN108431763A CN108431763A (zh) 2018-08-21
CN108431763B true CN108431763B (zh) 2021-08-24

Family

ID=58387888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780004682.5A Active CN108431763B (zh) 2016-03-10 2017-03-03 通过网络服务管理多个云存储装置

Country Status (4)

Country Link
US (1) US10193975B2 (zh)
EP (1) EP3427140A1 (zh)
CN (1) CN108431763B (zh)
WO (1) WO2017155791A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904068B2 (en) * 2018-01-12 2021-01-26 Datera, Inc. System and method to provide seamless data placement, data movement, and data management into cloud
CN111367866B (zh) * 2020-03-10 2022-02-08 西安奥卡云数据科技有限公司 一种数据云的柜模型系统
JP2021167993A (ja) * 2020-04-09 2021-10-21 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
WO2021213085A1 (en) * 2020-04-22 2021-10-28 Guangdong Oppo Mobile Telecommunications Corp., Ltd. System and method for storing data on cloud storage
US10997243B1 (en) * 2020-06-30 2021-05-04 Snowflake Inc. Supporting unstructured, semi-structured, and structured files
US11423081B1 (en) 2020-06-30 2022-08-23 Snowflake Inc. Accessing files in a database stage using a user defined function
US11361026B2 (en) 2020-06-30 2022-06-14 Snowflake Inc. Accessing files in a database stage using a user defined function
CN112291278B (zh) * 2020-12-29 2021-06-04 中天众达智慧城市科技有限公司 城市大脑系统中的个人消费数据处理装置
US11645243B2 (en) 2021-06-07 2023-05-09 Snowflake Inc. Accessing files in a database stage using a user defined function

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102196006A (zh) * 2010-03-17 2011-09-21 中国移动通信集团公司 一种为应用程序提供资源的开放系统
CN104270388A (zh) * 2014-10-22 2015-01-07 南京市测绘勘察研究院有限公司 企业设备接入云服务认证系统及其方法
CN105144153A (zh) * 2013-01-30 2015-12-09 微软技术许可有限责任公司 用于内容组织的应用编程接口

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US20110047480A1 (en) 2009-08-21 2011-02-24 Primadesk Inc System and Method to aggregate users data that is spread all over the internet and show an uniform view in the form the user is most used to
US8799413B2 (en) 2010-05-03 2014-08-05 Panzura, Inc. Distributing data for a distributed filesystem across multiple cloud storage systems
JP6082387B2 (ja) * 2011-05-14 2017-02-15 ビットカーサ インコーポレイテッド ユーザ不可知暗号化ファイルのサーバ側非複製化を有するクラウドファイルシステム
US9218406B2 (en) 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
GB2502337A (en) 2012-05-25 2013-11-27 Ibm System providing storage as a service
US9317709B2 (en) * 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
US10025638B2 (en) 2012-07-02 2018-07-17 Vmware, Inc. Multiple-cloud-computing-facility aggregation
US9525588B2 (en) * 2012-08-14 2016-12-20 Empire Technology Development Llc Push content to a currently utilized device among client devices
US10044808B2 (en) 2012-12-20 2018-08-07 Software Ag Usa, Inc. Heterogeneous cloud-store provider access systems, and/or associated methods
US8904503B2 (en) * 2013-01-15 2014-12-02 Symantec Corporation Systems and methods for providing access to data accounts within user profiles via cloud-based storage services
WO2014160934A1 (en) 2013-03-28 2014-10-02 Google Inc. System and method to store third-party metadata in a cloud storage system
US9461870B2 (en) 2013-05-14 2016-10-04 Google Inc. Systems and methods for providing third-party application specific storage in a cloud-based storage system
US9280678B2 (en) * 2013-12-02 2016-03-08 Fortinet, Inc. Secure cloud storage distribution and aggregation
US10114835B2 (en) * 2015-04-29 2018-10-30 Box, Inc. Virtual file system for cloud-based shared content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102196006A (zh) * 2010-03-17 2011-09-21 中国移动通信集团公司 一种为应用程序提供资源的开放系统
CN105144153A (zh) * 2013-01-30 2015-12-09 微软技术许可有限责任公司 用于内容组织的应用编程接口
CN104270388A (zh) * 2014-10-22 2015-01-07 南京市测绘勘察研究院有限公司 企业设备接入云服务认证系统及其方法

Also Published As

Publication number Publication date
WO2017155791A1 (en) 2017-09-14
US20170264687A1 (en) 2017-09-14
CN108431763A (zh) 2018-08-21
EP3427140A1 (en) 2019-01-16
US10193975B2 (en) 2019-01-29

Similar Documents

Publication Publication Date Title
CN108431763B (zh) 通过网络服务管理多个云存储装置
US10379818B2 (en) Multi-tenant, tenant-specific applications
CN110321733B (zh) 使用近场通信与许可控制共享内容
US10027644B2 (en) Analysis with embedded electronic spreadsheets
WO2016210195A1 (en) Conversion of platform-independent accessibility logic into platform-specific accessibility functionality
JP2015517165A (ja) ユーザーインターフェイスウェブサービス
WO2015123121A1 (en) Caching queries for dynamic webpages
US10895963B2 (en) Using sections for customization of applications across platforms
US9804749B2 (en) Context aware commands
CN109074357B (zh) 动态地管理服务的不同版本
US20150149456A1 (en) Sharing document links from multiple data providers
CN112005217A (zh) 服务于请求的独立线程api调用
US10530860B2 (en) Single multi-instance tenant computing system
CN106415626B (zh) 从单个项目发起的组选择
US20160378574A1 (en) Integration and synchronization using a virtual data provider
US9753788B2 (en) Extensibility of engines in computing systems

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