CN115917538A - 针对云计算的分布式应用执行 - Google Patents

针对云计算的分布式应用执行 Download PDF

Info

Publication number
CN115917538A
CN115917538A CN202180041782.1A CN202180041782A CN115917538A CN 115917538 A CN115917538 A CN 115917538A CN 202180041782 A CN202180041782 A CN 202180041782A CN 115917538 A CN115917538 A CN 115917538A
Authority
CN
China
Prior art keywords
computing facility
data
components
local computing
cloud computing
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.)
Pending
Application number
CN202180041782.1A
Other languages
English (en)
Inventor
S·阿加詹彦
J·N·M·南杜里
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 CN115917538A publication Critical patent/CN115917538A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/547Remote procedure calls [RPC]; Web services
    • 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
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文公开了利用分布式应用执行的云计算技术。一种示例技术包括接收启动应用的命令,并且作为响应,确定与由应用的各个组件使用的数据类型相对应的执行位置。在确定组件中的一个组件将在本地计算设施中执行之后,该示例技术包括从云计算设施向本地计算设施传输在本地计算设施而不是云计算设施中执行该组件中的该一个组件的请求。在由本地计算设施授权之后,从在本地计算设施处被执行的该组件中的该一个组件请求和接收数据,而无需从云计算设施直接访问本地计算设施处的数据源。

Description

针对云计算的分布式应用执行
背景技术
远程或云计算系统通常利用容纳在数据中心中的大量远程服务器来提供计算、存储、网络或其他计算服务。远程服务器可以通过计算机网络互连以形成一个或多个计算集群。计算集群中的每个远程服务器可以托管一个或多个虚拟机(VM)、容器、虚拟交换机、负载均衡器或用于资源共享的其他类型的虚拟化组件。在操作期间,虚拟化组件可以促进应用在云中的执行,以为用户提供计算服务。
发明内容
提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在表示所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。
云计算可以是高度可伸缩的,同时初始资本投资较低。然而,当应用消费租户不愿意或不能与云服务提供商合法共享的数据时,将某些应用从本地执行迁移到云可能会很困难。例如,银行可以具有分类帐应用,其消费个人身份、金融事务和其他类型的机密数据。法律要求银行完全控制此类数据,因此可能不愿意或无法与云服务提供商共享此类数据。即使银行愿意共享,所共享的机密数据通常也会被模糊到数据可能缺乏用处的程度。另一方面,云服务提供商可能不愿托管此类机密数据,即使是在模糊的情况下也是如此,因为即使是轻微的此类数据泄露也可能导致重罚。因此,将消费租户机密数据的应用部署到云可能很困难。
此外,租户对机密数据的严格控制或缺乏共享机密数据的意愿可能会限制甚至阻止消费来自多个租户的机密数据的某些应用的部署。例如,可以开发应用来通过消费来自多个银行的金融事务的数据来检测洗钱计划,以便追踪实体在多个银行之间的资金转移。在另一示例中,可以开发应用以将机器学习应用于检测金融市场中多家银行之间的银行事务模式。然而,一家或多家银行可能不愿意甚至在法律上不允许共享此类数据,从而使此类应用无法操作。
所公开技术的若干实施例可以通过基于应用的各个组件消费的数据类型,在计算框架中实现基于云的应用的分布式执行来解决上述困难的某些方面。在某些实施例中,计算框架可以包括经由诸如互联网的计算机网络互连到本地计算设施的云计算设施。云计算设施可以由云服务提供商(例如,Amazon.com)操作以提供各种云计算服务。本地计算设施可以在订阅由云计算设施提供的一个或多个云计算服务的租户的控制之下。在其他实施例中,计算框架可以包括附加的云和/或本地计算设施和/或其他适当的计算资源。
在一个实施例中,当开发在云计算设施中执行的应用时,应用的开发器可以基于每个组件所消费的数据类型将该应用划分成多个组件。例如,该应用可以被配置为基于第二用户的购买或浏览历史数据来生成对第一用户的礼物建议。当设计应用时,开发器可以将应用划分为经由数据交换与第二组件互连的第一组件。第一组件可以被配置为从第一用户接收输入数据以及向第一用户提供输出数据。第二组件可以被配置为编译第二用户的购买或浏览历史的数据,并且基于购买、浏览的频率或其他适当的标准来产生一个或多个礼物建议。因此,第一组件可以被配置为消费来自第一数据源的数据,即,来自第一用户的输入数据,而第二组件可以被配置为消费来自第二数据源的数据,即,第二用户的购买或浏览历史的数据。
在标识要由应用的组件消费的数据类型之后,开发器可以进一步确定由组件消费的这种数据的位置。在上面的示例中,开发器可以确定第一数据源可以位于云计算设施处,而第二数据源可以位于本地计算设施处(例如,第二用户的膝上型计算机)。在标识第一和第二数据源的位置之后,开发器可以生成用于执行应用的元数据文件。在一个示例中,元数据文件可以为每个组件标识执行位置、作为输入消费的数据和作为输出提供的数据。因此,在上面的示例中,元数据文件可以标识请求数据将从第一组件传输到第二组件,而建议数据将从第二组件传输到第一组件。在其他示例中,元数据文件还可以指示可以检索各种组件的网络位置以及诸如适当的运行时环境参数的其他执行特性。
基于元数据文件,计算框架可以被配置为在启动应用时在指定位置处部署应用的各种组件。例如,在执行开始期间,云计算设施中的服务器可以基于元数据文件确定第一组件将在云计算设施中执行,而第二组件将在本地计算设施上执行。作为响应,云计算设施中的服务器可以被配置为以这样的方式向本地计算设施传输用于执行应用的第二组件的请求,即所有通信对于本地计算设施处的可信方(例如,管理员)是语义透明的。在某些示例中,该请求可以包括向本地计算设施传输的数据类型的标识和从本地计算设施接收的数据类型的标识。在其他示例中,该请求还可以包括云和本地计算设施之间的数据传输的语法和可验证的语义。例如,该请求可以标识第一类型的数据之后是向本地计算设施传输/从本地计算设施接收的第二类型的数据。
根据所公开技术的各方面,本地计算设施可以被配置为在分别在云计算设施和本地计算设施处执行的第一和第二组件之间部署控制层。控制层被配置为授权、指导、监控和追踪部署在云和本地计算设施两者处的应用的各种组件之间的所有通信。在部署期间,在接收到来自云计算设施的请求之后,控制层可以被配置为分析从云计算设施接收和向云计算设施传输的数据的类型,并且基于租户在本地计算设施处配置的策略来确定是否允许这些类型的数据的通信。在上面的示例中,控制层可以确定向云计算设施传输诸如iPhone的建议数据符合本地计算设施中的策略。因此,控制层可以授权在本地计算设施中执行第二组件,以便向云计算设施提供规定的建议数据。
在操作期间,第一组件可以在云计算设施中执行,并且从在本地计算设施中执行的第二组件请求应用数据。控制层可以被配置为接收、检查、记录和路由分别在云和本地计算设施处执行的第一和第二组件之间的所有通信。因此,在云计算设施中执行的应用的组件不具有到在本地计算设施中执行的应用的其他组件的直接链路。例如,控制层可以被配置为从第一组件接收数据,确定该数据是否与元数据文件一致。在确定接收到的数据与元数据文件一致之后,控制层可以将接收到的数据转发到第二组件。类似地,控制层可以被配置为从第二组件接收去往第一组件的数据,并且检查接收到的数据以确定该数据是否符合元数据文件和租户的其他策略。在确定数据符合元数据文件并且不违反租户的任何策略之后,控制层可以被配置为将数据转发到第一组件。否则,控制层可以阻止或转换(例如,通过匿名化)数据被传输到第一组件、发出警报或执行其他适当的动作。控制层还可以记录此类通信的所有事件,以用于存档、审计或其他适当的用途。此外,控制层可以完全访问至少部分元数据文件的源代码。
因此,所公开技术的若干实施例可以允许消费租户的机密数据,同时允许租户保持对此类机密数据的严格控制。通过基于组件消费的数据类型将应用划分为组件,开发器可以指定适当的执行位置,租户可以在这些位置维护对所消费的数据的严格控制。通过在本地计算设施处执行消费机密数据的组件,可以避免与云服务提供商共享此类机密数据。相反,本地计算设施仅向云计算设施传输非机密数据。因此,可以避免模糊用于与云服务提供商共享的数据以及由云服务提供商维护模糊的数据。
所公开技术的若干实施例还可以允许对来自多个租户的机密数据进行联合数据分析。例如,模型开发器可以被配置为通过将模型开发器划分成在云计算设施和多个本地计算设施中执行的组件来开发多个银行的金融事务模型。每个本地计算设施可以被配置为分析相应的机密数据以产生不包括任何机密数据的分区模型。相反,分区模型每个可以包括基于机密数据观察的模式。然后,模型开发器可以组合各种分区模型来概括整个模型,而无需访问各种本地计算设施中的机密数据。
附图说明
图1是根据本技术的实施例的实现云计算的分布式应用执行的计算框架的示意图。
图2是示出根据所公开技术的实施例的图1的计算框架的某些硬件/软件组件的示意图。
图3A-图3C是示出根据本技术的实施例的云计算的分布式应用执行的某些阶段的示意性框图。
图4是示出根据本技术实施例的具有多个本地计算设施的联合处理的示意性框图。
图5-图6C是示出根据本技术的实施例的用于云计算的分布式应用执行的过程的各方面的流程图。
图7是适合于图1中的分布式计算框架的某些组件的计算设备。
具体实施方式
下面描述用于云计算的分布式应用执行的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在下面的描述中,包括组件的具体细节以提供对所公开技术的某些实施例的透彻理解。相关领域的技术人员也将理解,该技术可以具有附加实施例。也可以在没有下面参考图1-图7描述的实施例的若干细节的情况下实施该技术。
如本文所使用的,云计算设施或云指的是具有多个服务器或主机的计算机系统,该多个服务器或主机经由具有多个网络设备的计算机网络彼此互连或互连到外部网络(例如,互联网)。例如,一些服务器或主机可以位于不同地理位置处的不同数据中心。当公众可以访问云时,云可以是公共的,或者当只有组织的成员可以访问时,云可以是私有的。云计算设施可以由云服务提供商提供并且在云服务提供商的控制之下。例如,示例云计算设施可以是由诸如华盛顿州西雅图的Amanzon.com的云服务提供商部署和管理的数据中心。
网络设备可以是物理网络设备,其示例包括路由器、交换机、集线器、网桥、负载均衡器、安全网关或防火墙,或者被配置为从物理网络设备共享资源的虚拟化网络设备。主机可以包括计算设备,其被配置为实现例如一个或多个虚拟机或其他适当的虚拟化组件。例如,主机可以包括具有被配置为支持一个或多个虚拟机、容器或其他适当类型的虚拟化组件的管理程序的服务器。一个或多个虚拟机或容器可用于执行适当的应用或计算机程序以提供期望的云服务。
云计算服务或云服务可以包括通过诸如互联网的计算机网络提供给用户的各种计算资源。云服务的常见示例包括软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。SaaS是一种软件分发技术,其中软件应用由云服务提供商在例如数据中心中托管,并且由用户通过诸如互联网的计算机网络来访问。PaaS通常指的是在不需要下载或安装的情况下通过计算机网络交付操作系统和相关联的服务。IaaS通常指用于支持存储、硬件、服务器、网络设备或其他组件的外包设备,所有这些都可以通过计算机网络访问。
相反,本地计算设施可以包括计算机系统,其具有在具有多个网络设备的局域网中彼此互连的多个服务器、客户端设备或其他适当类型的设备。例如,示例本地计算设施可以包括公司、政府机构、学校或其他适当类型的实体的局域网。本地计算设施可以在这样的实体的控制之下,并且至少部分地与具有安全边界的诸如互联网的公共网络隔离。安全边界可以被配置为基于访问控制列表(ACL)授予对存储在本地计算设施中的各种设备或数据的访问权限。因此,只有当用户被授权时,本地计算设施才能授予用户访问存储在本地计算设施中的某些设备和/或数据的许可。安全边界的一个示例是基于由实体配置的ACL实现的防火墙。
由于数据安全方面的考虑,将某些应用从本地计算设施中执行迁移到云计算设施可能是困难的。例如,用户的应用的执行可以消费来自本地计算设施中的数据源的机密数据。如本文所使用的,消费数据一般是指根据应用或其组件中的逻辑处理来自数据源的数据以生成结果数据。例如,应用可以是被配置为经由机器学习,基于机密数据(例如,金融事务)生成行为模型的模型开发器。因此,即使当模型开发器可以被迁移到云计算设施时,模型开发器在云计算设施处的执行也可能是不可操作的,因为机密数据可能不被允许迁移到云。即使当机密数据被迁移到云时,机密数据通常也会被模糊(例如,经由匿名化)到模型开发器可能不能充分地从模糊的数据中“学习”以生成令人满意的行为模型的程度。
所公开技术的若干实施例可以通过基于由应用的各个组件消费的数据类型,在计算框架中实现应用的分布式执行来解决上述困难的某些方面。在一个示例中,可以基于各个组件消费的相应数据类型将应用划分为多个组件。因此,消费来自本地计算设施的机密数据的组件可以与消费云计算设施处可用的数据或根本不消费任何数据的另一组件分离。例如,在上面的模型开发器示例中,模型开发器可以被分为接收和处理用户对模型开发器的输入的用户接口组件和被配置为基于原始机密数据生成行为模型的数据训练器。在其他示例中,应用可以被分成多个组件,其中至少一些组件消费来自多个本地计算设施处的数据源的数据。
基于各个组件消费的数据类型,计算框架可以被配置为在组件消费数据的对应位置处执行应用的组件。例如,在本地计算设施处消费来自数据源的数据的组件可以被部署在安全边界内的本地计算设施中。在云计算设施处消费来自数据源的数据的另一组件可以被部署在云计算设施中。在操作期间,应用的各种组件可以交换符合本地计算设施的各种数据控制策略的数据,使得应用可以在云中执行,同时允许本地计算设施保持对存储在本地计算设施中的机密数据的控制,如下面参考图1-图7更详细地描述的。
图1是根据本技术的实施例的实现云计算的分布式应用执行的计算框架100的示意图。如图1所示,计算框架100可以包括经由计算机网络108互连到云计算设施110的本地计算设施102。计算机网络108可以包括互联网、广域网、虚拟私有网或其他适当类型的计算机网络。尽管在图1中仅示出了一个本地计算设施102,但在其他实施例中,计算框架100可以包括多个本地计算设施102,其可以互连到单个云计算设施110,如下面参考图4所描述的。
如图1所示,本地计算设施102可以是内部网络,其包括将诸如服务器104、客户端设备103和包含机密数据111的数据存储106的一个或多个端点互连到对本地计算设施102行使控制的实体的局域网107。局域网107可以包括经由有线或无线通信介质互连服务器104、客户端设备103和数据存储106的多个路由器、交换机、防火墙或其他适当的网络设备(未示出)。服务器104可以被单独配置为执行适当的指令以向客户端设备103提供功能。例如,服务器104可以被配置为提供文件管理系统、电子邮件交换或其他适当的计算服务。如下面参考图3A-图3C更详细地讨论的,服务器104还可以被配置为实现控制层170(图3B中所示),其被配置为促进计算框架100中的应用的分布式执行。
客户端设备103可以各自包括促进对应用户101经由计算机网络108访问服务器104和由云计算设施110提供的各种云服务的计算设备。在所示的示例中,客户端设备103各自包括台式计算机。在其他示例中,客户端设备103还可以包括膝上型计算机、平板计算机、智能手机或其他适当的计算设备。尽管为了说明的目的在图1中示出了两个用户101和对应的客户端设备103,但在其他实施例中,云计算设施110可以促进任何适当数量的用户101。
数据存储106可以包括具有被配置为促进机密数据111的存储、检索、维护和其他管理操作的适当硬件和/或软件组件的数据存储设施。例如,数据存储106可以包括数据库服务器,其执行适当的指令以提供数据库应用,该数据库应用被配置为根据诸如结构化查询语言(SQL)的数据库语言来输入和检索来自数据库的信息。一个示例数据库应用是由华盛顿州雷蒙德市的微软公司提供的Access。
机密数据111可以是对本地计算设施102实施控制的实体(未示出)不愿意或甚至在法律上不允许共享的任何数据。例如,该实体可以是银行,并且机密数据111可以包括客户的个人可标识信息、顾客的金融事务记录、与客户的交互记录和/或其他适当类型的信息。银行可能不愿意或在法律上不允许与诸如云计算设施110的云服务提供商(未示出)的任何第三方实体共享此类机密信息111。如下面参考图3A-图3C更详细地描述的,在云计算设施110中执行的应用147(在图3B中示出)仍然可以经由分布式应用执行来消费本地计算设施102中的机密数据111,即使云计算设施110不能直接访问机密数据111。
如图1所示,本地计算设施102包括被配置为经由计算机网络108与云计算设施110对接的内部(on-premise)网关105。在某些实施例中,内部网关105可以被配置为实现适当的安全通信协议,并且在本地计算设施102和云计算设施110之间提供安全边界109。在一个示例中,内部网关105可以包括被配置为实现IPsec协议的路由器,以经由计算机网络108在内部网关105和云网关114的一个或多个实例之间提供数据机密性、数据完整性和数据认证。在其他示例中,内部网关105还可以包括交换机、服务器或被配置为实现附加的和/或不同的安全通信协议的其他适当的组件,以便提供安全边界109。
还如图1所示,云计算设施110可以包括一个或多个主机116、平台控制器118、网络存储设备112、以及通过云网络117可操作地耦合的云网关114的第一实例和第二实例114a和114b。在某些实施例中,主机116可以各自包括物理服务器或具有若干物理服务器的计算刀片,物理服务器各自具有一个或多个非易失性数据存储设备、计算机存储器、网络接口卡和/或其他适当的计算组件。在其他实施例中,主机116还可以包括具有多个处理器核的一个或多个物理服务器,或其他适当类型的计算设备。虽然图1中未示出,但是主机116可以被组织成机架、可用区、组、集合、计算集群或其他适当的分区。尽管为了说明的目的在图1中示出了两个主机116,但在其他实施例中,云计算设施110可以包括任何适当数量的主机116和/或其他适当类型的组件。各个主机116可以被配置为托管一个或多个虚拟机144(图2中示出)或其他适当的软件组件,如参考图2更详细地描述的。
平台控制器118可以包括结构控制器、数据中心控制器、应用递送控制器或被配置为监控云计算设施110中的主机116的状态和管理操作的其他适当类型的控制器。例如,平台控制器118可以监控主机116或其组件是否发生故障。响应于检测到主机116或其组件的故障,平台控制器118可以尝试通过例如将故障主机116上托管的虚拟机迁移到其他主机116、重启故障主机116、替换故障主机116的硬件组件和/或执行其他适当的操作来补救检测到的故障。尽管平台控制器118在图1中示为分离的物理服务器,但在其他实施例中,平台控制器118还可以包括由云计算设施110中的一个或多个主机116提供的计算服务。
云网关114可以被配置为经由一个或多个网络连接(诸如经由计算机网络108的虚拟私有网络(VPN)连接)与内部网关105对接。云网关114可以实现各种通信/安全协议,其用于保护和加密在本地计算设施102处的内部网关105和云计算设施110处的虚拟网络146(图2中所示)之间传输的数据。如图1所示,云网关114包括第一实例和第二实例114a和114b,每个实例都具有适合于经由计算机网络108将网络业务从内部网关105路由到第一实例或第二实例114a或114b的对应网络地址(例如,IP地址)。在其他实施例中,云网关114可以包括三个、四个或任何适当数量的实例(未示出)。
如图1所示,内部网关105可以经由计算机网络108连接到云网关114的第一实例或第二实例114a和114b,以在云计算设施110处发送/接收来自虚拟网络146的网络业务。例如,两个客户端设备103都可以向云计算系统100处的对应的虚拟机144发送/接收数据。在接收到这样的数据之后,内部网关105可以在将安全数据作为分组(未示出)经由计算机网络108传输到云计算设施110之前,将对应的安全处理(例如,封装、加密等)应用到数据。在接收到分组之后,负载均衡器(未示出)可以检查分组的用于分组的源地址、目的地地址和协议值中的一个或多个。使用分组的这样的参数和/或其他适当的参数,负载均衡器可以将接收到的分组标识为属于一个或多个外部流,并且将某些外部流的分组转发到适当的对应目的地,例如第一实例114a或第二实例114b。
网络存储设备112可以包括一个或多个具有适当硬件和/或软件组件的网络存储设施,其被配置为促进云计算设施中的主机116可访问的数据的存储、检索、维护和其他管理操作。例如,如图1所示,网络存储设备112可以包括应用147的可执行文件或“映像”。根据所公开技术的实施例,应用147可以包括多个组件(各自被分别标识为第一组件和第二组件147a和147b)以及基于组件147a和147b中的每一个所消费的数据类型的对应的元数据文件149。例如,应用147可以被配置为基于使用本地计算设施102中的客户端设备103和/或服务器104购买或浏览第二用户101”的历史数据来生成对第一用户101’的礼物建议。
当设计应用147时,开发器(未示出)可以将应用147划分为经由数据交换互连到第二组件147b的第一组件147a。第一组件147a可以被配置为从第一用户101’接收输入数据以及向其提供输出数据。第二组件147b可以被配置为编译具有第二用户101”在本地计算设施102处的购买或浏览历史的信息的机密数据111,并且基于购买、浏览的频率或其他适当的标准来产生一个或多个礼物建议。因此,第一组件147a可以被配置为消费来自第一数据源的数据,即来自第一用户101’的输入数据,而第二组件147b可以被配置为消费来自第二数据源的数据,即来自本地计算设施102处的机密数据111的第二用户101”的购买或浏览历史的数据。
在标识要由应用147的第一组件和第二组件147a和147b消费的数据类型之后,开发器可以进一步确定要由组件147a和147b消费的这种数据的位置或数据源。在所示的示例中,开发器可以确定第一数据源,例如来自第一用户101’的输入,其可以位于云计算设施100处,而第二数据源可以位于本地计算设施102上,例如数据存储106。在标识第一数据源和第二数据源的位置之后,开发器可以生成用于执行应用147的元数据文件149。在一个示例中,元数据文件149可以为组件147a和147b中的每一个标识执行位置、作为输入消费的数据和作为输出提供的数据。因此,在所示的示例中,元数据文件149可以包括数据,该数据标识请求数据将从第一组件147a传输到第二组件147b同时建议数据将从第二组件147b传输到第一组件147a。在其他示例中,元数据文件149还可以指示可以检索各种组件147a和147b的网络位置、以及诸如适当的运行时环境参数的其他执行特性。基于元数据文件149,计算框架100可以被配置为在启动应用147时在指定位置处部署应用147的各种组件147a和147b,如下面参考图3A-图3C更详细地描述的。
图2是示出根据所公开技术的实施例的图1的计算框架100中的云计算设施110的某些硬件/软件组件的示意图。在图2中,为清楚起见,仅示出了图1的云计算设施110的某些组件。在其他示例中,云计算设施110可以包括如图2所示的附加和/或不同组件。
如图2所示,第一主机116a和第二主机116b可以各自包括彼此可操作地耦合的处理器132、存储器134和输入/输出组件136。处理器132可以包括微处理器、现场可编程门阵列和/或其他适当的逻辑器件。存储器134可以包括易失性和/或非易失性介质(例如,ROM;RAM,磁盘存储介质;光存储介质;闪存设备,和/或其他适当的存储介质)和/或被配置为存储从处理器132接收的数据以及用于处理器132的指令(例如,用于执行本文讨论的方法的指令)的其他类型的计算机可读存储介质。输入/输出组件136可以包括网络接口卡或其他适当类型的输入/输出设备,其被配置为接受来自操作员和/或自动化软件控制器(未示出)的输入并向其提供输出。
第一主机和第二主机116a和106b的存储器134可以包括可由对应的处理器132执行的指令,以使各个主机116提供管理程序140(各自标识为第一管理程序和第二管理程序140a和140b)和其他适当的虚拟组件,例如虚拟网络接口卡、虚拟交换机等(未示出)。管理程序140可以各自被配置为启动、监控、终止和/或以其他方式本地管理被组织成租户站点142的一个或多个虚拟机144。例如,如图2所示,第一主机116a可以为相同或不同的租户或用户101(图1)提供分别管理第一租户站点和第二租户站点142a和142b的第一管理程序140a。第二主机116b可以提供分别管理第一租户站点和第二租户站点142a’和142b’的第二管理程序140b。
管理程序140可以是软件、固件或硬件组件。租户站点142可以各自包括多个虚拟机144或租户的其他适当的租户实例。例如,第一主机116a和第二主机116b两者都可以托管第一用户101a的租户站点142a和142a’。第一主机116a和第二主机116b两者都可以托管第二用户101b的租户站点142b和142b’(图1)。云计算设施110还可以包括跨多个主机116互连租户站点142a和142b的一个或多个虚拟网络146。例如,第一虚拟网络146a将第一主机116a和第二主机116b处的第一租户站点142a和142a’互连。第二虚拟网络146b将第一主机116a和第二主机116b处的第二租户站点142b和142b’互连。即使单个虚拟网络146被示为对应于一个租户站点142,但在其他实施例中,多个虚拟网络146(未示出)可以被配置为对应于单个租户站点146。
即使虚拟机144位于不同的主机116上,虚拟网络146上的虚拟机144也可以彼此通信。每个虚拟网络146的通信可以与其他虚拟网络146隔离。在某些实施例中,可以允许通信通过安全网关或以其他受控方式从一个虚拟网络146交叉到另一。虚拟网络地址可以对应于虚拟网络146中的一个虚拟机144。因此,不同的虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括IP地址、MAC地址和/或其他适当的地址。
在操作期间,每个虚拟机144可以执行对应的操作系统、中间件和/或应用。例如,如图2所示,第一主机116a的虚拟机144可以被配置为执行应用147的适当指令,而第二主机116b的虚拟机144可以被配置为执行另一应用147’的适当指令。在其他示例中,托管在各个主机116上的容器(例如,Docker)也可以被配置为提供应用147和147’或其组件的实例。在进一步的示例中,云计算设施110中的各种虚拟机144可以被配置为在经由计算机网络108(图1)与同一应用147的第二组件147b通信并从其接收数据的同时执行应用147的第一组件147a。因此,即使第一组件147a不能直接访问机密数据111,第一组件147a也可以在本地计算设施102处消费机密数据111,如下面参考图3A-图3C更详细地描述的。
图3A-图3C是示出根据本技术的实施例的云计算的分布式应用执行的某些阶段的示意性框图。在图3A-图3C中,为了清楚起见,省略了计算框架100的某些元件。例如,图3A-图3C中仅示出了用于执行应用147的组件147a或147b的一个服务器104和一个主机105。在其他示例中,计算框架100可以被配置为使用本地计算设施102或云计算设施110中的多个服务器104或主机116来执行多个组件(未示出)。
如图3A所示,云计算设施110处的主机116可以被配置为执行适当的指令以提供启动应用147的启动器160。在所示实施例中,启动器160可以包括彼此可操作地耦合的接口模块162和执行模块164。在其他实施例中,启动器160还可以包括网络、数据库、输入/输出或其他适当类型的模块。
接口模块162可以被配置为从用户101接收用于启动应用147的命令。在所示的示例中,用户101经由计算机网络108将命令150从本地计算设施102中的客户端设备103传输到接口模块162。在其他示例中,用户101(为清楚起见用虚线表示)可以位于本地计算设施102的外部,并且经由计算机网络108中的其他适当的信道提交命令150。在接收到命令150之后,接口模块162可以被配置为例如基于用户101提交的适当凭证来认证命令150。然后,接口模块162可以将命令150转发到执行模块164,以便在认证命令150之后进行进一步处理。
如图3B所示,执行模块164可以被配置为在接收到命令150之后检索应用147的元数据文件149,并且基于检索到的元数据文件149确定应用147的各种组件147a和147b的执行位置。例如,执行模块164可以确定第一组件147a将在云计算设施110处的主机116(或另一主机116)中执行,而第二组件147b将在本地计算设施102处的服务器104(或另一服务器104)上执行。作为响应,执行模块164可以被配置为向本地计算设施102传输用于执行应用147的第二组件147b的请求152。在所示的示例中,请求152包括第二组件147b的副本。在其他示例中,请求152还可以包括向本地计算设施102传输的数据类型和从其接收的数据类型的标识。在进一步的示例中,请求152还可以包括云和本地计算设施110和102之间的数据传输的语法。例如,请求152可以标识第一类型的数据之后是向本地计算设施102传输/从其接收的第二类型的数据。
如图3B所示,本地计算设施可以被配置为在分别在云和本地计算设施110和102处执行的第一组件和第二组件147a和147b之间部署控制层170。控制层170被配置为授权、引导、监控和追踪部署在云和本地计算设施110和102两者处的应用147的各种组件147a和147b之间的所有通信。在部署期间,在从云计算设施110处的执行模块164接收到请求152之后,控制层170可以被配置为分析从云计算设施110接收和向其传输的数据的类型,并且基于策略172来确定是否允许这些类型的数据的通信。
在某些实现中,本地计算设施102的管理员(未示出)可以在本地计算设施102处配置策略172。例如,管理员可以配置策略172以禁止向云计算设施110传输任何个人可标识信息。管理员还可以配置策略172以限制或禁止任何金融事务、用户101的个人购买或浏览历史或其他类型的数据的传输。在进一步的示例中,管理员可以配置策略172以基于隐私、安全性、合法合规性或其他适当的标准来限制或禁止数据的传输。
在一个实施例中,当第二组件147b从云计算设施110接收和向其传输的数据类型和违反任何策略172时,控制层170可以拒绝请求152并且阻止第二组件147b在本地计算设施102中执行。在其他实施例中,控制层170还可以被配置为记录请求152的接收、分析和拒绝。在进一步的实施例中,控制层170还可以被配置为发出警报、拒绝来自执行模块164的任何其他请求(未示出)或执行其他适当的操作。
当由第二组件147b从云计算设施110接收和向其传输的数据类型不违反任何策略172时,控制层170可以授权第二组件147b在本地计算设施102中执行。然后,控制层170可以向执行模块164传输响应153,以指示第二组件147b被授权在本地计算设施102中执行。控制层170还可以被配置为通过例如下载第二组件147b的映像、将第二组件147b的执行分配给服务器104之一、以及向所分配的服务器104发出命令以执行第二组件147b来触发或以其他方式促进第二组件147b在本地计算设施102中的启动。
在从控制层170接收到响应153之后,执行模块164可以被配置为使得第一组件147a被实例化并在云计算设施110中执行,并且请求来自第二组件147b的数据以在本地计算设施102中执行。如图3C所示,在所示示例中,第一组件147a在还托管启动器160的主机116上执行,并且第二组件147b在还托管控制层17的服务器104中执行。在其他示例中,第一组件或第二组件147a或147b中的至少一个可以在不托管启动器160或控制层170的其他主机116或服务器104上执行。
在操作期间,第一组件147a可以在云计算设施中执行,并且向在本地计算设施102中执行的第二组件147b请求应用数据。控制层170可以被配置为接收、检查、记录和路由分别在云和本地计算设施110和102处执行的第一组件和第二组件147a和147b之间的所有通信。因此,在云计算设施110中执行的应用147的第一组件147a不具有到在本地计算设施102中执行的应用147的第二组件147b的直接链路。相反,第一组件和第二组件147a和147b之间的通信穿过控制层170。例如,控制层170可以被配置为从第一组件147a接收数据,确定该数据是否符合元数据文件149和/或策略172。在确定接收到的数据与元数据文件149和/或策略172一致之后,控制层170可以被配置为将接收到的数据转发到第二组件147b。
类似地,控制层170可以被配置为从第二组件147b接收去往第一组件147a的数据,并且检查接收到的数据以确定该数据是否符合元数据文件149和/或策略172。该数据可以包括通过消费来自本地计算设施102中的数据存储106的机密数据111来执行第二组件147b的结果154。例如,第二组件147b可以包括模型开发器,其被配置为基于作为机密数据111存储在数据存储106中的用户101的购买或浏览历史,使用机器学习来开发用户101的行为模型。通过消费这样的机密数据111,第二组件147b可以基于用户101的购买或浏览历史来生成例如指示用户101最想要的物品的数据。
在确定数据符合元数据文件149和/或策略172之后,控制层170可以被配置为经由计算机网络108将数据转发到第一组件147a。否则,控制层170可以阻止数据被传输到第一组件147a、发出警报或执行其他适当的动作。控制层170还可以记录这种通信的所有事件,以用于存档、审计或其他适当的用途。如图3C所示,在接收到应用数据(在图3C中示出为结果154)之后,第一组件147a可以使用接收到的结果154来生成总体执行结果156,并将执行结果156传输给用户101。
因此,所公开技术的若干实施例可以允许在本地计算设施102中消费机密数据111,同时允许对本地计算设施102行使控制的实体保持对此类机密数据111的严格控制。通过基于第一组件和第二组件147a和147b消费的数据类型将应用147划分为第一组件和第二组件147a和147b,开发器可以指定在本地消费数据的适当执行位置。通过在本地计算设施102处执行消费机密数据111的第二组件147b,可以避免与云服务提供商共享此类机密数据111。相反,本地计算设施102仅向云计算设施110传输非机密数据,例如结果154。因此,可以避免模糊用于与云服务提供商共享的机密数据111以及由云服务提供商维护模糊的机密数据111。
尽管为了说明的目的在图1-图3C中仅示出了第一组件和第二组件147a和147b,但在其他实施例中,应用147可以包括三个、四个、五个或任何其他适当数量的组件。在一个示例中,附加组件可以分别在云和本地计算设施110和102中的多个主机116或服务器104上执行。
在其他示例中,可以在附加本地计算设施(未示出)上执行附加组件中的一个或多个。例如,如图4所示,计算框架100可以包括经由计算机网络108可操作地耦合到云计算设施110的第一本地计算设施102a和第二本地计算设施102b。第一本地计算设施或第二本地计算设施102a和102b中的每一个可以包括自己的机密数据111,并且被配置为以如上参考图3A-图3C所描述的分布式方式执行应用147(图3A)的一个或多个组件。在进一步的示例中,计算框架还可以包括被配置为执行应用147的适当组件的一个或多个附加云计算设施(未示出)。
因此,所公开技术的若干实施例可以允许对来自多个本地计算设施102的机密数据111进行联合数据分析。例如,应用147可以包括模型开发器,其被配置为通过将模型开发器划分为在云计算设施110和多个本地计算设施102a和102b中执行的组件(未示出)来开发多个银行的金融事务模型。每个本地计算设施102a或102b可以被配置为分析相应的机密数据111以产生不包括任何机密数据111的模型组件159a或159b。相反,模型组件159a和159b可以各自包括基于机密数据111观察到的模式。云计算设施110处的模型开发器然后可以组合各种模型组件159a和159b以概括总体模型159,而无需访问各种本地计算设施102a和102b中的机密数据111。
图5-图6C是示出根据本技术的实施例的用于云计算的分布式应用执行的过程的各方面的流程图。尽管下面在图1-图4的计算框架100的上下文中描述过程的各个方面,但是在其他实施例中,该过程也可以在具有附加的和/或不同的设备和/或组件的计算框架中实现。
如图5所示,过程200可以包括在阶段202,标识应用所消费的一个或多个数据源。数据源可以位于本地计算设施处或云计算设施处。然后,过程200可以包括判定阶段204,以确定是否存在多个数据源。响应于确定仅存在一个数据源,过程200前进到在阶段208,配置单个组件应用。该单个组件应用被指定为在单个位置处执行。响应于确定存在多个数据源,过程200前进到在阶段206,将应用划分成各自与数据源中的一个数据源相对应的组件。各个组件经由数据交换彼此互连。过程200然后可以前进到生成描述应用的各种执行位置以及可选的其他执行参数的元数据文件,如以上参考图1-图4所描述的。
如图6A所示,在云计算设施中启动应用的过程220可以包括在阶段222,接收启动命令。然后,过程220可以包括在阶段224,标识应用的各个组件。这种标识可以基于元数据文件或经由其他适当的技术。然后,过程220可以包括判定阶段226,以针对每个组件确定该组件是在本地计算设施中执行还是在云计算设施中执行。响应于确定组件将不在本地计算设施中执行,过程220前进到在阶段228,在云中执行该组件。否则,过程220前进到在阶段230,请求本地执行。然后,过程220可以前进到在阶段232,从本地执行的组件接收数据,并将接收到的数据提供给云中的执行组件。上面参考图3A-图3C描述了请求本地执行和从本地执行的组件接收数据的示例操作。
如图6B所示,授权在本地计算设施中执行应用的组件的过程240可以包括在阶段242,接收执行应用的组件的请求。然后,过程240可以包括判定阶段,以确定组件接收或传输的任何数据是否违反本地计算设施中的任何策略。上面参考图3A-图3C描述了接收和分析执行应用组件的请求的示例操作。响应于确定组件接收或传输的数据违反本地计算设施中的至少一个策略,过程240前进到在阶段246,拒绝该请求并阻止该组件的执行。否则,过程240前进到在阶段248,允许执行该组件。
如图6C所示,检查在本地计算设施和云计算设施上执行的组件之间的数据传输的过程260可以包括在阶段262,接收去往云计算设施的数据。然后,过程260可以包括判定阶段264,以确定数据是否违反本地计算设施的任何策略。上面参考图3A-图3C描述了检查去往云的数据的示例操作。响应于确定数据违反本地计算设施的至少一个策略,过程260前进到在阶段268,阻止数据被传输到云,并且可选地在阶段270,终止组件在本地计算设施处的执行。否则,过程260可以包括在阶段266,将数据转发到云。
图7是适合于图1中的计算框架100的某些组件的计算设备300。例如,计算设备300可以适合于图1的客户端设备102、主机116或云网关114。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可用于在处理器304和系统存储器306之间通信。
根据期望的配置,处理器304可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器304可以包括多一级高速缓存,例如一级高速缓存310和二级高速缓存312、处理器核心314和寄存器316。示例处理器核314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。
根据期望的配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其任意组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。该描述的基本配置302在图10中由内虚线内的那些组件示出。
计算设备300可以具有附加特征或功能,以及附加接口,以促进基本配置302与任何其他设备和接口之间的通信。例如,可以使用总线/接口控制器330来促进基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移动存储设备336、不可移动存储设备338或其组合。可移动存储和不可移动存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如光盘(CD)驱动器或数字多功能盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。术语计算机可读存储介质或计算机可读存储设备不包括传播信号和通信介质。
系统存储器306、可移动存储设备336和不可移动存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或可用于存储期望信息并且可由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备300的一部分。术语计算机可读存储介质不包括传播信号和通信介质。
计算设备300还可以包括接口总线340,用于促进从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信。示例输出设备342包括图形处理单元348和音频处理单元350,其可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器的各种外部设备通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)的外部设备或其他外围设备(例如,打印机、扫描仪等)通信。示例通信设备346包括网络控制器360,其可以被布置为促进经由一个或多个通信端口364在网络通信链路上与一个或多个其他计算设备362进行通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据来实现,例如载波或其他传输机制,并且可以包括任何信息传递介质。调制数据信号可以是其一个或多个特性以将信息编码到信号中的方式设置或改变的信号。作为示例而非限制,通信介质可以包括有线介质,例如有线网络或直接有线连接,以及无线介质,例如声学、射频(RF)、微波、红外(IR)和其他无线介质。本文使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备300可以被实现为包括上述任何功能的小型便携式(或移动)电子设备的一部分,例如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络观看设备、个人耳机设备、专用设备或混合设备。计算设备300还可以实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
出于说明的目的,上面已经描述了该技术的具体实施例。然而,可以在不偏离前述公开的情况下进行各种修改。此外,一个实施例的许多元素可以与其他实施例的元素组合,作为其他实施例的元素的补充或替代。因此,除了所附权利要求书之外,该技术不受限制。
从前文可以理解,出于说明的目的,本文描述了本公开的具体实施例,但是可以在不偏离本公开的情况下进行各种修改。此外,一个实施例的许多元素可以与其他实施例的元素组合,作为其他实施例的元素的补充或替代。因此,除了所附权利要求书之外,该技术不受限制。

Claims (10)

1.一种用于计算框架中的分布式应用执行的方法,所述计算框架具有经由计算机网络被互连到云计算设施并且被安全边界分开的租户的本地计算设施,所述方法包括:
在所述云计算设施处接收启动针对所述租户的应用的命令,所述应用包括经由数据被彼此互连的多个组件;
响应于接收到所述命令,针对所述各个组件确定与由所述各个组件消费的数据的类型相对应的执行位置;以及
响应于确定所述组件中的一个组件要在所述本地计算设施中被执行,
从所述云计算设施向所述本地计算设施传输用以在所述本地计算设施而不是所述云计算设施中执行所述组件中的所述一个组件的请求;以及
在响应于所述请求而由所述本地计算设施授权以执行所述组件中的所述一个组件之后,从在所述本地计算设施处被执行的所述组件中的所述一个组件请求和接收数据,而无需从所述云计算设施直接访问所述本地计算设施处的数据源,所述组件中的所述一个组件从所述数据源消费数据。
2.根据权利要求1所述的方法,还包括:
响应于确定所述组件中的另一组件要在所述云计算设施中被执行,
在所述云计算设施处执行所述应用的所述组件中的所述另一组件;以及
其中请求数据包括:利用所执行的所述组件中的所述另一组件来请求来自在所述本地计算设施处被执行的所述组件中的所述一个组件的数据,以用于由所述云计算设施处的所述组件中的所述应用的另一组件消费。
3.根据权利要求1所述的方法,还包括:
响应于确定所述组件中的另一组件要在所述云计算设施中被执行,
在所述云计算设施处执行所述应用的所述组件中的所述另一组件;
从在所述本地计算设施处被执行的所述组件中的所述一个组件接收所请求的所述数据;以及
在所述云计算设施处利用所述组件中的所述另一组件来处理所接收的所述数据以产生对所述租户的输出。
4.根据权利要求1所述的方法,其中确定所述执行位置包括:
从所述云计算设施中的数据存储库取回与所述应用相对应的元数据文件,所述元数据文件包括数据,所述数据标识所述应用的所述各个组件以及基于由所述各个组件消费的数据的所述类型而被选择的对应的执行位置;以及
基于所述元数据文件中的所述数据,选择针对所述各个组件的所述执行位置。
5.根据权利要求1所述的方法,其中:
数据的所述类型包括具有第一重要等级的第一类型和具有对所述租户低于所述第一重要等级的第二重要等级的第二类型;以及
确定所述执行位置包括:
当所述各个组件具有所述第一重要等级时,选择所述本地计算设施以用于执行所述各个组件;以及
当所述各个组件具有低于所述第一重要等级的所述第二重要等级时,选择所述云计算设施以用于执行所述各个组件。
6.根据权利要求1所述的方法,其中传输用以执行所述组件中的所述一个组件的所述请求包括传输标识以下项的请求:所述组件中的所述一个组件、所述组件中的所述一个组件从中消费数据的所述数据源、以及要从所述组件中的所述一个组件被传输到所述云计算设施的数据。
7.根据权利要求1所述的方法,其中:
所述本地计算设施是第一本地计算设施;以及
所述方法还包括:
响应于确定所述组件中的另一组件要在与所述第一本地计算设施不同的第二本地计算设施中被执行,
从所述云计算设施向所述第二本地计算设施传输用以在所述第二本地计算设施而不是所述云计算设施或所述第一本地计算设施中执行所述组件中的所述另一组件的另一请求;以及
在响应于所述另一请求而由所述第二本地计算设施授权以执行所述组件中的所述另一组件之后,从在所述第二本地计算设施处被执行的所述组件中的所述另一组件请求附加数据,而无需从所述云计算设施直接访问在所述第二本地计算设施处的另一数据源,所述组件中的所述另一组件从所述另一数据源消费数据。
8.根据权利要求1所述的方法,其中:
所述本地计算设施是第一本地计算设施;
从所述组件中的所述一个组件被请求的所述数据是来自在所述第一本地计算设施处被执行的所述组件中的所述一个组件的第一数据;以及
所述方法还包括:
响应于确定所述组件中的所述另一组件要在与所述第一本地计算设施不同的第二本地计算设施中被执行,
从所述云计算设施向所述第二本地计算设施传输用以在所述第二本地计算设施而不是所述云计算设施或所述第一本地计算设施中执行所述组件中的所述另一组件的另一请求;
在响应于所述另一请求而由所述第二本地计算设施授权以执行所述组件中的所述另一组件之后,从在所述第二本地计算设施处被执行的所述组件中的所述另一组件中请求第二数据;以及
在接收到所述第一数据和所述第二数据之后,在所述云计算设施处处理来自所述第一本地计算设施的所述第一数据和来自所述第二本地计算设施的所述第二数据,而不需要从所述云计算设施直接访问所述第一本地计算设施处的所述数据源或所述第二本地计算设施处的所述另一数据源。
9.根据权利要求1所述的方法,其中:
所述本地计算设施是第一本地计算设施;
从所述组件中的所述一个组件被请求的数据是由所述组件中的所述一个组件基于来自所述第一本地计算设施处的数据源中的所述一个数据源的数据经由机器学习开发的第一模型;以及
所述方法还包括:
接收由所述组件中的所述另一组件基于来自所述第二本地计算设施处的另一数据源的数据经由机器学习开发的第二模型;以及
在接收到所述第一模型和所述第二模型之后,在所述云计算设施处将第一模型和第二模型处理成总体模型,而无需从所述云计算设施的直接访问所述第一本地计算设施处的所述数据源或所述第二本地计算设施处的所述另一数据源。
10.一种云计算设施中的计算设备,所述计算设备向租户提供云服务,并且所述计算设备经由计算机网络被互连到所述租户的本地计算设施并且被安全边界分开,所述计算设备包括:
处理器;以及
存储器,被操作地耦合到所述处理器,所述存储器具有指令,所述指令由所述处理器执行以使所述计算设备执行根据权利要求1至9中的一项的过程。
CN202180041782.1A 2020-06-10 2021-04-21 针对云计算的分布式应用执行 Pending CN115917538A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/898,026 2020-06-10
US16/898,026 US11366709B2 (en) 2020-06-10 2020-06-10 Distributed application execution for cloud computing
PCT/US2021/028314 WO2021252077A1 (en) 2020-06-10 2021-04-21 Distributed application execution for cloud computing

Publications (1)

Publication Number Publication Date
CN115917538A true CN115917538A (zh) 2023-04-04

Family

ID=75914580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180041782.1A Pending CN115917538A (zh) 2020-06-10 2021-04-21 针对云计算的分布式应用执行

Country Status (4)

Country Link
US (3) US11366709B2 (zh)
EP (1) EP4165531A1 (zh)
CN (1) CN115917538A (zh)
WO (1) WO2021252077A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516291B2 (en) * 2020-09-29 2022-11-29 Cohesity, Inc. Secure communications of storage tenants that share a storage cluster system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8875240B2 (en) * 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
US9253252B2 (en) 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between intranet resources and cloud resources
US9326145B2 (en) * 2012-12-16 2016-04-26 Aruba Networks, Inc. System and method for application usage controls through policy enforcement
US9813318B2 (en) 2013-03-15 2017-11-07 International Business Machines Corporation Assessment of best fit cloud deployment infrastructures
US9479398B2 (en) * 2013-07-03 2016-10-25 International Business Machines Corporation Enforcing runtime policies in a networked computing environment
US10038721B2 (en) * 2015-02-16 2018-07-31 International Business Machines Corporation Enabling an on-premises resource to be exposed to a public cloud application securely and seamlessly
CN107409126B (zh) * 2015-02-24 2021-03-09 思科技术公司 用于保护企业计算环境安全的系统和方法
US20170293501A1 (en) 2016-04-11 2017-10-12 Vmware, Inc. Method and system that extends a private data center to encompass infrastructure allocated from a remote cloud-computing facility
WO2018031551A1 (en) 2016-08-08 2018-02-15 The Dun & Bradstreet Corporation Trusted platform and integrated bop applications for networking bop components
US10476948B2 (en) 2016-09-21 2019-11-12 Microsoft Technology Licensing, Llc Service location management in computing systems
US10678579B2 (en) * 2017-03-17 2020-06-09 Vmware, Inc. Policy based cross-cloud migration
US10673728B2 (en) * 2018-01-26 2020-06-02 Cisco Technology, Inc. Dynamic selection of models for hybrid network assurance architectures
US10884814B2 (en) 2018-09-28 2021-01-05 Intel Corporation Mobile edge-cloud security infrastructure

Also Published As

Publication number Publication date
US11709724B2 (en) 2023-07-25
EP4165531A1 (en) 2023-04-19
US20220276918A1 (en) 2022-09-01
US11366709B2 (en) 2022-06-21
US20230325264A1 (en) 2023-10-12
US20210390003A1 (en) 2021-12-16
WO2021252077A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US10826682B2 (en) Multi-instance architecture supporting trusted blockchain-based network
JP6963613B2 (ja) コンテナベースのオペレーティング・システムおよび方法
CN108351944B (zh) 链式安全系统
EP2842049B1 (en) Secure administration of virtual machines
US9836308B2 (en) Hardware security module access management in a cloud computing environment
US10944560B2 (en) Privacy-preserving identity asset exchange
US20150271180A1 (en) Protection of user data in hosted application environments
US10735452B2 (en) Virtual machine compliance checking in cloud environments
EP3488584B1 (en) Usage tracking in hybrid cloud computing systems
JP2020528609A (ja) データ処理における侵入検知および侵入軽減
US10296741B2 (en) Secure memory implementation for secure execution of virtual machines
KR20220024758A (ko) 클라우드 기반 인증, 허가, 및 사용자 관리 서비스의 발견 및 매핑
JP2023530817A (ja) クラスタにおける無許可のパッケージ展開の阻止
JP7445358B2 (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
US20230325264A1 (en) Distributed application execution for cloud computing
JP2023551124A (ja) 自己監査ブロックチェーン
US11755374B2 (en) Cloud resource audit system
US11297065B2 (en) Technology for computing resource liaison
US20240061941A1 (en) Distribution of Secure Data for Networked Transactions
US11023619B2 (en) Binding a hardware security module (HSM) to protected software
US10574634B2 (en) Management of authenticator information in a computer system
WO2024118389A1 (en) Software defined community cloud
Csibi Integration of Virtual Machine Technologies for the support of Remote Development Units

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