管理计算节点间的通信的制作方法

文档序号:7677274阅读:101来源:国知局
专利名称:管理计算节点间的通信的制作方法
技术领域
以下公开总体涉及管理计算节点间的通信,以例如控制对远程目的节 点的传出数据传输,从而反映动态确定的传输授权。
背景技术
容纳大量互联计算系统的数据中心(如由单个组织以及代表单个组织 运营的私有数据中心,以及由实体(如企业)运营的、在多种商业模式下 为客户提供对计算资源的访问权限的公共数据中心)目前已十分常见。举 例而言,某些公共数据中心的运营商为客户所拥有的各种硬件提供网络访 问、功能、以及安全安装设施,而其它公共数据中心的运营商则提供"全 套服务"设施,后者还包括运营商的客户所使用的实际硬件资源。然而, 由于通常的数据中心的规模和范围不断扩大,供应、管理物理计算资源的 任务变得越来越为复杂。
商品硬件虚拟化技术的出现为对管理具有不同需求的大量客户的大 规模计算资源的问题提供了部分的解决方案,使多个客户能够有效和安全
地共享各种计算资源。举例而言,诸如由VMWare、 XEN、或User-Mode Linux提供的虚拟化技术通过为每个用户提供一个以上由单个物理计算机 所寄居的虚拟机的方式,使单个物理计算机能在多个用户之间共享,每个 这样的虚拟机是一个软件模拟起独立逻辑计算系统的作用,独立逻辑计算 系统使用户感到自己是特定硬件计算资源的唯一操作者和管理者,同时还 在各种虚拟机之间提供应用程序隔离和安全功能。此外,某些虚拟化技术 能够提供跨一个以上物理资源的虚拟资源,例如,单个虚拟机可以具有多 个实际上跨多个独立物理计算系统的多个虚拟处理器。
然而,在数据中心以虚拟或物理的方式寄居了大量针对一组不同客户 的应用程序或系统的情况下,将产生一个问题,该问题涉及为由各客户或 代表各客户运营的系统提供网络隔离,以例如在(当客户需要的情况下)
6制从其它系统对这些系统进行非期望 通信。利用传统的防火墙技术可提供有限的效果,但是问题依然存在。举 例而言,防火墙通常被配置为,在业务目的地或靠近目的地的位置过滤传 入网络的业务,但是即使防火墙能够很好地阻挡所有这些传入网络的业 务,这种配置使恶意应用程序能够通过使业务充满给定网络,从而导致资 源损耗。此外,防火墙通常不包括用于动态修改过滤规则以反映高度动态 的资源配置类型的设施,而所述高度动态的资源配置可能发生在寄居了大 量虚拟机的大规模数据中心环境中。因此,例如,当新的应用程序和系统 上线而其它应用程序和系统离线时,传统的防火墙缺乏动态确定正确运行 所需的、合适的过滤规则的能力,而必须使用耗时并易于出错的手工配置 来配置此类过滤规则。
因此,鉴于这些问题,提供使用户能够高效地指定通信策略的技术是 十分有利的,其中,通信策略通过管理多个计算节点(如工作于一个以上 的数据中心或其它计算资源设施中的多个寄居虚拟机)之间的数据传输的 方式自动执行。

发明内容


图1是一幅网络图,示出了多个传输管理器组件管理计算节点间通信 的示例实施例。
图2是一幅方框图,示出了适于执行用于管理计算节点间通信的系统
实施例的示例计算系统的实施例。
图3A-3B示出了采用组成员资格信息管理计算节点间的通信的示例。 图4A-4F示出了用于管理计算节点间通信的动态修改的传输管理规
则的示例。
图5示出了两个互通计算节点间的传输数据以及管理通信的相关传输 管理器组件的示例。
图6示出了节点通信过程的示例实施例的流程图。
图7A-7B示出了传输管理器的工作过程的示例实施例的流程图。
7图8示出了 DTM系统管理器工作过程的示例实施例的流程图。
具体实施例方式
下面对用于管理多个互通计算节点间的通信的技术进行说明。在某些 实施例中,计算节点包括寄居在一个以上物理计算机或系统上的虚拟机节 点,并且所述通信包括在一个以上网络中在寄居于不同物理计算机上的节 点间传输数据(例如,消息、数据分组或帧等)。此外,在某些实施例中, 对源节点和目的节点间的数据通信或其它通信进行管理是由一个以上能 够在源节点和目的节点间的通信进行识别和操纵的中间节点予以提供的。 举例而言,在源节点和目的节点分别为寄居在两个不同的物理计算机之上 的实施例中,中间计算节点可能包括一个以上的其它寄居在这两个物理计 算机之一或全部之上的虚拟机。
此外,在至少某些实施例中,管理数据传输包括对由源节点向一个 以上的目的节点请求或发起的传出数据传输加以分析,以(例如在与源节 点相关的中间计算节点的控制下)判断数据传输是否得到授权,并在仅当 确定授权存在时,才允许通过一个以上的网络向目的节点继续进行数据传 输。举例而言,中间计算节点可至少部分基于所定义的数据传输策略来判 断是否得到授权,其中,当例如源节点以及目的节点均属于一组公共节点 组时,所述传输策略指定了多组一个以上的源节点,所述多组一个以上的 源节点得到了与多组一个以上的目的节点进行通信的授权。此外,与源节 点相关的中间计算节点可同与预期的目的节点相关的不同的中间计算节 点进行通信,以对数据传输的授权进行协商,并且还可以存储规则(例如, 指示如果协商表明为当前数据传输授权,就对今后的此类数据传输授权的 传输管理规则)或其他反映协商结果的指示,以同将来的从源节点到目的 节点的数据传输一起使用。
在某些实施例中,应用程序执行业务利用(例如,在一个以上数据中
心中的)多个物理机执行第三方客户的应用程序,所述各物理机(physical machine)寄居了多个虚拟机(每个虚拟机能够为客户执行一个以上的应 用程序),并且一个以上作为应用程序执行业务的一部分而执行的数据传 输管理系统可利用所述技术来控制同各客户的应用程序的通信往来。如以下所详细讨论的那样,客户可以向执行业务提供用以执行的应用程序,并 在由执行业务提供的物理或虚拟硬件设施上保留执行时间和其它资源。此 外,客户可创建新的计算节点组(例如,多个分别正在执行客户程序的多
个实例之一的计算节点),指定组的访问策略,并(自动或手工地)更新 组成员和/或指定的访问策略,以反映改变的条件,以例如反映执行的新应 用程序的实例、不再执行的先前执行的应用程序的实例、和/或新的或调整 过的访问策略(例如,诸如通过改变是允许还是拒绝对其它计算节点、组、 和/或应用程序进行访问,来反映新的安全需求)。
在某些实施例中,访问策略通过例如使用网络地址或其它标识的范 围,将源节点(例如,使用网络地址或其它标识)独立描述为一组以上的 的相关源节点等的方式,描述被允许向特定目的节点或节点组发送数据的 源节点(亦称"发送节点"或"发送者"),然而在其它实施例中,访问策 略可以类似的方式,描述被允许从一个以上的特定源节点或节点组接收数 据传输的目的节点。在不存在指定访问策略和/或不具备判断特定的己发起 的数据传输是否得到授权的能力时,某些实施例可以提供默认的访问策略 和/或授权策略,以例如拒绝所有无法确定其得到授权的数据传输,或允许 所有无法确定其未被授权的数据传输。
在一示例实施例中,数据传输管理("DTM")系统的多个数据传输管 理器组件协同工作,以管理大量互通的参与计算节点的数据传输。起初, 当参与计算节点联机时,与参与节点相关的数据传输管理器组件确定节点 的网络地址(例如,IP地址)或其它网络位置、节点所属的组、以及源节 点被授权向该节点传输数据的指示。然后,当参与节点尝试发起同远程目 的节点的通信时,相关数据传输管理器组件检测到发起的通信,并基于所 获得对先前从参与源节点到目的节点的通信的授权,来判断对于该通信的 授权是否已存在。如果已存在的授权不可用,相关数据传输管理器组件就 尝试协商授权(例如通过同与远程目的节点相关的远程数据传输管理器组 件进行通信(例如,通过发送触发协商的协商请求)),以同远程目的节点 进行通信,所述对从参与源节点到目的节点的数据传输的协商请求可包含 与参与源节点的网络标识和组成员资格相关的信息。
在与远程节点相关的远程数据传输管理器组件接收到代表源节点的协商请求之后,组件就基于任意远程目的节点的访问和/或传输策略(例如, 基于远程目的节点所属的组)判断源节点是否得到了同远程目的节点进行 通信的授权。如果确定存在授权,远程数据传输管理器组件用指示已提供 了通信授权的应答对协商请求予以响应。与参与源节点相关的数据传输管 理器组件接收到该应答,并允许(通过代表参与源节点传输数据,或使由 参与源节点发起的数据传输继续进行等方式)将数据传输至远程目的节 点。相反,如果应答表明尚未获得通信授权,与参与源节点相关的数据传 输管理器就(通过抛弃或丢弃拦截到的数据传输,或通过向参与源节点和 /或其它节点指示不要再向目的节点进行任何数据传输等方式)阻止向目的 节点进行数据传输。此外,与参与源节点相关的数据传输管理器组件可高 速缓存或存储协商结果,从而使将来的数据传输不再需要额外的协商步 骤,并且与目的节点相关的数据传输管理器组件可类似地缓存或存储协商 结果。采用这种方式,数据传输管理器系统可以动态地判断其管理的相关 计算节点是否得到向各远程目的节点传输数据的授权。
为了说明性的目的,以下对某些实施例进行了说明,其中,特定类型 的通信管理只在特定类型的情况中执行。为了说明性的目的,提供这些示 例,并且为简洁起见,对这些示例进行了简化,并且本发明的技术可用于 各种其它情况,以下对其中一些情况进行了说明,并且本发明的技术不局 限于同虚节点、同传出数据传输一起使用、以及在一个以上数据中心内使 用等等。
图1是一幅网络图,示出了多个传输管理器("TM")组件管理计算 节点间通信的示例实施例,其中,多个TM组件管理是数据传输管理
("DTM")系统的一部分,所述DTM管理位于数据中心100内的各计算 节点之间的数据传输。在本示例中,数据中心100包括多个机架105,每 个机架包括多个物理计算系统110a-c以及机架支撑计算系统122。计算系 统110a-c的各系统提供一个以上的虚拟机节点120,各虚拟机节点可用于 提供独立的计算机环境,以在数据中心100内寄居应用程序。此外,计算 系统110a-c分别寄居了 TM组件节点115, TM组件节点115管理从寄居 在计算系统上的其它虚拟机节点120到计算系统上的那些寄居虚拟机节点 的传出数据传输,以及从其它节点(数据中心100的本地或远程节点)到计算系统上的那些寄居虚拟机节点的传入数据传输。在本示例实施例中, 机架支撑计算系统122向机架的本地计算系统以及可能的位于数据中心的 其它计算系统提供实用工具服务(如,数据存储服务、网络代理、应用监 控以及管理等),然而在其它实施例中,可以不使用此类机架支撑计算系
统。在本示例中,计算系统110a-c以及机架的机架支撑计算系统122 (通 过例如特定机架的物理上的本地或远程共享背板、 一个以上的集线器、和 /或交换机等)共享未示出的公共、高速、机架级的网络互连。
此外,示例数据中心100还包括附加计算系统130a-b以及135,它们 不在机架之上、但共享与这些附加计算系统相关的TM组件125互连的公 共网络,然而在其它实施例中可以不存在此类附加的非机架的计算系统。 在该示例中,计算系统135还寄居了多个虚拟计算节点,然而计算系统 130a-b作为单个物理机节点。类似地,TM组件125为寄居在计算系统135 上的相关虚拟机以及计算系统节点130a-b管理传入和传出数据传输。还示 出了位于数据中心100本地网络和外部网络170连接处的可选的计算系统 145,可使用该可选的计算系统提供多种服务(如,网络代理、过滤或其 它对传入和/或传出数据传输的管理等),包括管理从数据中心100内部 的部分或全部节点向位于数据中心100外部的附加数据中心160或其它系 统180传出的数据传输、和/或管理外部节点向部分或全部内部节点传入的 数据传输。还示出了可选的DTM组管理器组件140,该组件可向数据中 心100本地的TM组件提供多种服务,以例如为TM组件维护全局状态信 息(如,组成员信息、访问策略等)
示例数据中心IOO通过网络170 (如,互联网)与多个其它计算系统 相连接,所述其它计算系统包括可由数据中心100的操作者或第三方操 作的附加计算系统180、同样可由数据中心100的操作者或第三方操作的 附加数据中心160、以及可选的DTM系统管理器系统150。在该示例中, DTM系统管理器150可为多个数据中心(诸如,所示数据中心100和附 加数据中心160)中的TM组件维护全局状态信息。例如,由DTM系统 管理器维护和提供的信息可包括例如组成员资格信息、访问策略等。虽 然在本示例实施例中示例DTM系统管理器150被描述为位于数据中心100 外部,但是在其它实施例中DTM系统管理器可位于数据中心100的内部。图2是一幅方框图,示出了适于例如通过执行TM组件的实施例的方 式管理计算节点间通信的示例计算系统。该示例计算系统200包括中央
处理单元("CPU") 235、各种输入/输出("I/O")设备205、存储器240、 以及内存245,其中,所述I/0设备包括显示器210、网络连接215、计 算机可读介质驱动器220、以及其它I/0设备230。
在所示实施例中,在内存245中执行示例TM组件250,以管理被管 理的相关节点260a-c与其它节点(诸如通过网络265连接的其它计算系统 275所表示的那些节点)间的数据传输。在本示例中,被管理节点260a-c 位于独立的计算系统上,并通过物理网络与计算系统200和TM 250相连 接,然而在其它实施例中一个以上被管理节点260a-c可以可选地作为虚拟 机节点寄居在计算系统200上。图2还示出了与计算系统200相连接的 DTM系统管理器系统270,以例如像在别处详细讨论的那样维护和提供与 操作一个以上的TM组件相关的信息(诸如访问策略和组成员)。
将意识到的是,计算系统200、 260a-c、 270、以及275仅仅用于说明, 而不是用来限制本发明的范围的。举例而言,计算系统200可(通过一个 以上诸如互联网或万维网("Web")等网络)连接至其它未示出的设备。 更一般地,"节点"或其它计算系统可以包括可相互作用和执行所述各类 功能的硬件或软件的任意组合,包括但不局限于台式计算机或其它计算 机、数据库服务器、网络存储设备以及其它网络设备、PDA、蜂窝电话、 无线电话、寻呼机、电子记事簿、互联网设备、基于电视的(如,采用机 顶盒和/或个人/数字录像机的)系统、以及各种其它包括适当的互通功能 的消费产品。此外,在某些实施例中,可以将由所述系统模块提供的功能 合并于更少的模块中或分布在附加模块中。类似地,在某些实施例中,可 能不提供某些所述组件的功能和/或可以使用其它附加功能。
还应理解的是,虽然将各个项目说明为在使用时存储在内存中或存储 器上,但是为了进行内存管理和保持数据完整性,这些项目或者其部分可 在内存和其它存储设备之间发生转移。可选地,在其它实施例中,某些或 全部软件组件和/或模块可执行于另一设备的内存中,并利用计算机间的通 信同所述计算系统进行通信。某些或全部组件、系统或数据结构也可以(例 如,作为软件指令或结构体数据)被存储在计算机可读介质(如可由适当
12的驱动器或通过合适的连接读取的硬盘、内存、网络、或便携介质)上。 系统、组件也可作为所产生的数据信号(例如,作为载波或其它模拟或数 字传播信号的一部分)在包括基于无线和基于有线/电缆的媒介在内的各种 计算机可读传输媒介上传输,并且可以采取各种形式(例如,作为单独或 复用的模拟信号,或作为多个离散的数字分组或帧)。在其它实施例中, 此类计算机程序产品也可采用其它形式。因此,本发明可以用其它计算机 系统配置予以实施。
图3A-3B示出了采用组成员资格信息管理计算节点间的通信的示例。
图3A和3B中所示的数据可通过多种不同方式(如通过图1中所示的DTM 系统管理器系统150和/或(例如,以无需使用中央系统的分布式方式)通 过一个以上的不同的TM组件)予以维护和提供。
图3A描述了包含多个节点组的成员资格信息在内的表300。具体而 言,各数据行302b-304f说明了标识于列302a中的节点与标识于列302b 中的组之间的成员资格关系。因此,举例而言,行304c和304d表示节点 组组2至少包括节点A和B,行304e和行304f表示节点D是至少两组 的成员。为了进行说明,本示例中的节点均用单个字母表示,诸如
'B'、 'C'等,然而在其它实施例中它们可以用其它方式(如,互联网协 议("IP")地址、DNS域名等)来表示。类似地,本示例中以诸如"组1" 等字符串来表示组,然而还可采用多种其它类型的名字,并且至少在某些 实施例中,用户可以为他们所使用的组指定描述性的组名。列302c表示 可为组指定多种不同类型的附加信息(诸如到期日期、创建或管理组的用 户的联系信息等)并将使用这些信息。
图3B描述了表310,表310指定了与图3A中所标识的某些组相关的 访问权限。具体而言,各数据行314b-314g表示列312b中指定的发送者得 到了作为源节点向属于列312a中所指定的组的任意成员节点发送数据的 授权。在本示例中,可针对具体传输协议指定此访问权限,本示例示出了 三种示例协议,HTTP312c、 FTP312d、以及简单邮件传输协议("SMTP") 312e。此外,在本示例中,可采用三种不同方式来区分发送者,所述不同 方式包括通过IP地址、通过IP地址范围、或通过组名进行区分,然而在 其它实施例中可采用其它命名规范(例如,DNS域名)。举例而言,行314b
13表示具有IP地址在0.0.0.0/0 (在这里使用以表示所有主机)范围内的发送
节点可采用HTTP协议向组1中的成员节点发起通信,但是这样的发送节 点不能采用FTP或SMTP协议向组1中的成员节点发起通信。行314c表 示组1的成员源节点可采用HTTP协议而不可以采用FTP或SMTP协议向 组2的成员节点发起通信。行314d表示组3的成员源节点可采用HTTP 或SMTP协议而不可以采用FTP协议向组2的成员节点发起通信。行314e 表示具有IP地址196.25丄23的单个源节点可采用以上列出的三个协议中 的任意一种发起同组2的成员节点的通信。随后的行314f-314h包含对附 加访问策略的说明。列312f表示可以针对访问策略指定附加信息(如,附 加协议、操作类型、数据格式类型、策略到期准则(如超时)、创建或管 理策略的用户的联系信息等)。
在图3B所示的示例中,可基于每个传输协议来指定访问策略。在本 示例中,当许可通过特定协议(如HTTP)对源进行访问时,这意味着发 送者可以在HTTP的默认端口 (即端口 80)向所指定的组中的节点发送传 输控制协议("TCP")分组。其它实施例可以以其它详细程度来指定访问 权限,以例如不指出具体协议,或进一步指定同具体协议一起使用的特定 端口。举例而言,针对特定网络传输的任意传输属性(如特定协议中的分 组类型(例如, 一般为TCP SYN分组、广播分组、多播分组、TCP标记 等)、连接限制(例如,所允许的同时连接的最大数目)、分组大小、分组 到达或离开时间、分组生存时间、分组有效载荷内容(如,包含特定字符 串的分组)等),某些实施例可允许更一般地为其指定访问权限。此外, 其它实施例可以以多种方式指定访问策略。举例而言,某些实施例可提供 否定式访问策略的规定,诸如指定除了所指定的节点以外的所有节点都具 有某种访问权限。而且,不同实施例可对默认(未列出)的访问策略提供 不同语义。举例而言,某些实施例可以提供这样的默认策略,使得除非得 到特定的其它策略的授权,否则没有发送者可与给定组的节点进行通信, 而其它实施例可能提供这样的默认策略,使得由给定用户操作的发送者默 认情况下可与由同一用户操作的其它任意节点进行通信,或者给定组的节 点默认情况下可与同一组的其它节点进行通信。最后,不同实施例可以以 不同方式(如通过提供组层次结构或允许组为其它组的成员,使策略适用于层次结构中所指示的点以下的任意节点或属于所指示的组或所指示组 的任意子组的任意成员节点)来指定组或组成员。
图4A-4F示出了用于管理计算节点间通信的动态修改的传输管理规
则的示例。在本示例实施例中,给定的TM组件采用传输管理规则,以判 断是否对TM组件所管理的一个以上的相关节点的数据传输进行授权,其 中各TM组件维护自身的一组规则。在其它实施例中,图4A-4F中所示的 规则可以可选地由图1中的DTM组管理器组件140、图1中的DTM系统 管理器系统150、或向一个以上的TM组件提供共享访问的一个以上其它 组件来维护。
图4A-4F所示的示例中,两个示例TM组件DTM1和DTM2基于所 发起的数据传输随时间动态生成和修改传输管理规则,DTM1管理两个相 关节点A和B, DTM2管理相关节点D。两个示例DTM还维护与被管理 节点的组成员资格有关的信息,以及与组的相关访问策略的有关信息。在 本示例中,如图3A中行304b-e所示,节点A属于组1,节点B属于组2, 节点D属于组3和组4。 DTM可以用多种方式获取关于组成员资格和访 问策略的信息。举例而言,当由特定DTM管理的新节点上线时,DTM就 被告知该新节点及其网络地址(例如IP地址),并且DTM可以(例如通 过查询和/或通过由DTM组管理器组件140或DTM系统管理系统150进 行通知、通过从网络访问数据存储器获取信息等方式)访问组成员资格, 并访问用于该新节点的访问策略信息。此外,可用多种方式向DTM传输 与组成员(例如,将特定的现有节点添加到或从某组中删除)和访问策略 (例如,对与特定组有关的访问策略进行了修改,以例如允许在此时由先 前未经授权的另一组传输数据)有关的改变。在某些实施例中,只(例如 利用发自例如DTM组管理器组件和/或DTM系统管理器系统的信息)通 知正在管理受特定改变影响的节点的DTM。在其它实施例中,可以向所 有DTM广播这样的改变,或者所有DTM可以被配置为周期性地查询合 适的组件,从而获得与这样的状态改变有关的更新。
图4A示出了在三个节点中的任意一个与其它节点发起任何通信前 DTM1和DTM2的初始条件。表400表示由DTM1维护的传输管理规则 集以及其它信息。行401列出了 DTM1当前所管理的节点(在这种情况下为节点A和B)。表400还包括子表402,后者示出了由DTM1维护的传 输管理规则。各行404a-404b可以保持一种传输管理规则,该传输管理规 则说明了针对节点的传输策略,每个规则指定了源403a、目的403b、以 及行为403c。由于此时没有节点发起通信,因此所示的规则集为空,然而 在某些实施例中可包括低优先级的默认规则(例如,如果没有应用其它规 则,则拒绝发起数据传输)。类似地,表405示出了由DTM2维护的传输 管理规则。行406显示DTM2管理单个节点D。此外,由于节点D还没 有发起任何通信,因此子表407显示空的传输管理规则集。
图4B示出了节点B利用HTTP协议发起同节点D的通信之后的规则 集的状态。当节点B尝试开始向节点D传输数据时,DTM1首先检查其 规则集,以判断是否存在管理从节点B到节点D的数据传输的己有规则。 如果未找到,DTM1就与DTM2进行协商,以判断节点B是否得到向节 点D传输数据的授权,并且作为协商过程的一部分,DTM1通知DTM2 节点B已准备好利用HTTP协议向节点D传输数据,且节点B是组2的 成员。在某些实施例中,这样的协商包括DTM1产生并向目的节点D传 输协商信息,同时希望节点D的DTM (其标识和网络地址可能对DTM1 是未知的)以合适的方式拦截协商信息并对其予以响应。如上所述,DTM2 知道节点D是组3和组4的成员(如图3A中行304e和304f所示),并且 组3允许组2的成员利用HTTP协议发起通信(如图3B的行314f所示)。 由于规定的访问策略允许所期望的通信,因此DTM2通过向DTM1发送 表示授权节点B与节点D进行通信的响应,来对协商请求予以响应。DTM2 还在行419a中存储允许从源节点B到目的节点D进行HTTP通信的传输 管理规则。在DTM1从DTM2接收到表示授权的响应后,DTM1也在行 414a中存储允许从源节点B到目的节点D进行HTTP通信的传输管理规 则。在本示例中,由于两个DTM己协商和存储了授权节点B通过HTTP 向节点D传输数据的规则,因此今后从节点B向节点D使用同一协议进 行数据传输时不再需要重新协商授权。此外,虽然未在此处进行说明,但 在某些实施例中,DTM组件还将(通过增加相应的传输管理规则或通过 对这样的数据传输授权的方式)自动对至少某些从节点D到节点B进行 的数据传输授权(例如,对来自节点D的对于从节点B到节点D的传输
16数据的应答进行授权)。
在某些实施例中,在协商过程完成之前,通过DTM1从节点B接收
到的发往节点D的任何数据,都将由DTM1进行排队,直到判断出节点B 是否得到向节点D传输数据的授权为止。在此实施例中,在接收到授权同 节点B进行通信的指示后,DTM1将任何排好队的数据,以及协商过程之 后到达的任何数据发送至节点D。在其它实施例中,在协商过程完成之前 由DTM1收到的来自节点B任何发往节点D的数据将被DTM1丢弃。在 可接受某些数据传输损失的情况下,或在发送节点将重传未被接收者收到 以及确认的任何数据的情况下,这样的技术是十分适合的。举例而言,许 多传输协议将会重传任何丢失的包(例如,基于TCP的超时和重传机制), 并且虽然这种基于丢弃的方法可能使最终应该到达的某些分组在起初时 丢失(例如,在协商过程成功的情况下),但是重传将确保那些起初的分 组将被重新发送。可选地,在某些实施例中,在协商过程完成或节点B获 得向节点D传输数据的授权之前,数据传输可向节点D发送,并在DTM2 中排队(例如,在被DTM2拦截之后),直到获得授权或者DTM2确定向 节点D转发排好队的数据为止(或者如果最终没有获得授权则丢弃数据传 输)。
图4C示出了节点D利用SMTP协议发起同节点A的通信之后的规则 集的状态。当节点D尝试开始向节点A发送数据时,DTM2首先检査其 规则集,以判断是否存在管理从节点D到节点A传输数据的己有规则。 如果未找到,DTM2就与DTM1进行协商,以判断节点D是否得到采用 给定协议向节点A传输数据的授权。DTM2通知DTM1节点D为组3和 组4的成员(如图3A中304e和304f中所示),并且节点D已尝试利用 SMTP协议与节点A进行通信。DTM1知道节点A为组1的成员(如图 3A的行304b中所示),并且组1已获得利用HTTP而不是SMTP访问所 有主机的许可(如图3B的行314b中所示)。由于没有主机被允许采用 SMTP协议向节点A传输数据,因此DTM1通过向DTM2发送表示拒绝 授权节点D利用SMTP协议同节点A进行通信的响应,来对协商请求予 以响应。DTM1还在行424b中存储拒绝从源节点D到目的节点A进行 SMTP通信的传输管理规则。在DTM2从DTM1接收到表示拒绝授权的响应之后,DTM2也在行429b中存储拒绝对未来从源节点D到目的节点A 进行SMTP通信予以授权的传输管理规则。至少在某些实施例中,在协商 过程完成之前,DTM进行还将对节点D尝试向节点A传输的任何数据进 行排队。当协商过程的完成时,DTM2将丢弃节点D利用SMTP协议向节 点A发送的任何排好队的和所有将来数据。
图4D示出了节点D已尝试利用HTTP协议发起同节点B的通信之后 的规则集的状态。事实上,参考该图说明的情况是上述参考图4B说明的 情况的相反情况。查看图3A和3B中所示的表,由于节点B属于组2(图 3A,行304c),组2已获得授权成为组3可以利用HTTP协议向其传输数 据的成员(图3B,行314d),并且节点D是组3的成员(图3A,行304e), 因此该通信已被授权。因此,DTM2将成功地协商授权节点D利用HTTP 向节点B传输数据,可应用的规则将由DTM2添加至行439c并由DTM1 添加到行434c,并且从节点D利用HTTP协议向节点B发送的数据将由 DTM2进行转发。还应注意,在本示例中,允许节点D使用多种协议(例 如,HTTP禾P SMTP)向节点B传输数据。某些实施例在该情况下可以通 过用表示授权发送节点与目的节点进行通信可以使用的全部传输协议的 响应,对关于特定传输协议的协商请求予以响应(与纯粹的请求协议相 反),从而进行优化,以例如在本示例中使附加规则被添加到DTM1和 DTM2中,以表示节点D得到向节点B发送SMTP通信的授权。这样的 优化消除了需要对其它授权协议执行附加的后续协商过程。
图4E示出了节点A准备已尝试利用FTP协议发起同节点B的通信之 后的规则集的状态。在该情况下,源和目的节点均由相同的DTM管理, 并且在某些实施例中,DTM1可以不对这样的数据传输进行管理,然而在 所述实施例中,DTM1对这样的数据传输进行管理(然而在这种情况下 DTM1不必与远程DTM协商)。查看图3A和3B中所示表,由于节点B 属于组2 (图3A,行304c),节点A属于组1 (图3A,行304b),但是组 2未授权组1的成员利用FTP协议传输数据(图3B,行314c),这表明未 该通信未获得授权。因此DTM1将可应用规则添加至行444d,并丢弃采 用FTP协议从节点A向节点B传输的任何数据。
图4F示出了节点B已尝试利用FTP协议发起同节点D的通信之后的规则集的状态。该图示出了源节点利用不同协议向之前获得允许的目的节
点传输数据的示例。査看图3A和3B所示的表,由于节点B属于组2(图 3A,行304c),节点D属于组3 (图3A,行304e),但是组3未授权组2 的成员利用FTP协议传输数据(图3B,行314f),这表明该通信获得授权。 因此,DTM1在协商授权节点B利用HTTP向节点D传输数据时将无法 获得成功,并且可应用的规则将由DTM1添加至行454e,并由DTM2添 加至行459d。此外,DTM1将丢弃采用FTP协议从节点B向节点D传输 的任何数据。
因此,用所指示的方式,传输管理器组件可基于管理发起的数据传输, 动态创建传输管理规则。虽然未在此处进行说明,然而在其它实施例中, 用于传输管理器组件和/或特定节点的规则集可通过其它方式进行修改,以 例如在节点的相关组成员或其它相关信息发生改变后(例如,代表第一客 户在虚拟机节点上执行的程序结束之后),删除与该节点相对应的所有规 则,使得该节点(或之后被分配以相同的相关信息(诸如与之前该节点所 用的网络地址相同)的另一节点)将需要重新协商以确定合适的授权,或 者仅删除受特定改变影响的规则。举例而言,如果组3的访问策略当前发 生动态改变,使得组2无法再获得向组3发送HTTP通信的授权,那么节 点B (属于组2)将无法再获得向节点D (属于组3)发送HTTP通信的 授权。因此,DTM1的规则454a和DTM2的规则459a不再有效,并且访 问策略的改变将使这两个规则遭到删除,但是至少在某些实施例中,关于 节点B和D的其它规则(例如,分别为DTM1和DTM2的规则的454e 和459d)可以得到保持。
图5示出了在两个互通计算节点间的数据传输以及管理通信的相关传 输管理器组件的示例,其中数据传输按时间顺序(以向下的方向为时间推 移方向)显示。在本示例中,消息名称和内容说明了在管理节点B禾口 D 时在DTM1和DTM2之间传递的消息,然而在其它实施例中,还可以采 用其它消息传递或其它交互方案。此外,在某些实施例中,数据传输的发 起以及所采用的相应的协议可以通过检査所检测到的基本数据和/或控制 分组(例如,TCP分组、用户数据报协议("UDP")分组等)的方式予 以确定。具体而言,图5示出了在如参考图4B所述的成功的协商过程中
19在节点和DTM之间传递的消息的示例。起初,节点505通过传输Send消 息530尝试利用HTTP协议向节点D 520发送数据。DTM510接收到该消 息,并将其作为节点B尝试向节点D传输数据的指示。此时,DTM1不 具有管理该传输的规则,因此DTM1尝试与DTM2 515进行协商许可。在 该示例中,DTM1通过发送一条由DTM2接收的Is—Allowed 消息532来 进行协商,然而在至少某些实施例中,如在别处具体所讨论的那样,消息 532被发送给远程目的节点D,但被管理该远程节点数据传输的DTM所 拦截(采用该方式,发送DTM可以在远程DTM的网络位置未知的情况 下工作)。DTM2通过检查适当数据的方式,确定节点D已对该传输进行 了授权,从而发送一条由DTM1接收的Allowed消息534。接收到传输授 权后,在所述实施例中,DTM1在依然由DTM2接收的、向节点D发送 的第二条Send消息536中发送来自Send消息530的排队数据,DTM2将 该数据通过Send消息538转发至其最终目的节点D 520。如前所述,在其 它实施例中,DTM1可以不在进行协商时对Send消息530排队,因而在 该示例中将不会发送Send消息536。协商之后,节点B通过发送Send消 息540尝试向节点D传输更多数据。由于DTM1之前已经对该类型的数 据传输进行了协商,因此DTM1通过Send消息542转发该数据而无需再 进行协商。DTM2接收到Send消息542,并类似地利用Send消息544向 节点D转发数据。
接着,图5示出了在如参考图4D所述的成功的协商过程中在节点和 DTM之间传递的消息的示例。起初,节点D以Send消息550尝试利用 HTTP协议向节点B传输数据。如果数据传输与之前得到授权的采用HTTP 从节点B到节点D进行的数据传输相关(例如,所述数据传输是对接收 到的Send消息544的应答,或者是同一会话的一部分),那么如在别处具 体所讨论的那样在某些实施例中DTM1和DTM2将自动对作为预先协商 过程一部分的这一应答数据传输进行授权,自动授权这一能力将带来很多 优点,以例如使某些类型的传输协议(例如,TCP)能够高效工作。然而, 在本示例中,DTM2以Is—Allowed 消息552发起一个单独的针对数据传 输的授权协商。DTM1通过检查适当的数据确定节点B己对该传输进行了 授权,从而用Allowed消息554进行响应。最后,DTM2利用新的Send
20消息556转发来自Send消息550排队的数据,DTM1利用Send消息558 将其向自己的最终目的转发。最后,图5示出了在导致如参考图4F所述 的拒绝授权的协商过程中在节点和DTM之间传递的消息的示例。起初, 节点B通过Send消息560尝试利用FTP协议向节点D传输数据。DTM1 通过Is—Allowed 消息562向DTM2发起协商。DTM2通过检査合适的数 据确定节点D为对该传输进行授权,因而以Not—Allowed消息564作出响 应。作为响应,DTM1丢弃通过Send消息560接收到的数据。
图6示出了节点通信过程600的示例实施例的流程图。该过程可作为 通信节点(诸如图1所示的虚拟机节点120或计算系统节点130a)行为的 一部分予以实现。
该过程起始于步骤605,过程在步骤605中接收由另一节点发送的数 据或向远程节点传输数据的指示(例如,节点行为的另一部分)。在步骤 610中,过程判断数据是否是从另一节点接收到的。如果是,过程就进入 步骤615,并处理接收数据。相反,如果在步骤610中确定接收到发送数 据的指示,过程就进入步骤625,并且向适当的目的传输数据。在步骤625 或615之后,过程进入步骤620以判断是否继续。倘若继续,过程就返回 步骤605,倘若不继续,就进入步骤699并结束。
图7A-7B示出了传输管理器的工作过程700的示例实施例的流程图。 过程可通过执行例如数据传输管理器组件(诸如图1中所示的DTM 115 或DTM 125)予以实现。
过程起始于步骤705,并接收传出传输、传入传输、协商请求,或管 理消息。过程接着进入步骤710,并判断在步骤705中接收到的消息或请 求的类型。如果在步骤710中确定过程接收到传出传输的指示,过程就进 入步骤715,以判断是否存在指示先前授权协商的适用规则。适用规则可 以是允许或拒绝传出传输所指示的从源节点到目的节点的数据传输。如果 确定不存在这样的规则,过程就进入步骤720,并通过向目的节点发送请 求来发起授权协商。在本示例实施例中,当向目的节点发送请求时,发送 请求被管理目的节点的远程DTM拦截(因此使DTM能够在远程DTM网 络地址未知的情况下发起协商),然而在其它实施例中,可(例如,通过 将目的节点映射至管理它们的远程DTM)或以其它方式将协商请求消息直接发送至合适的DTM。接着,过程进入步骤715以接收响应或超时信 息。如果由于某种原因远程DTM离线或不可到达,就会接收到超时信息。 在本实施例中,如果在预定的超时时间内为接收到来自DTM的响应,则
可以将没有响应看作拒绝对通信进行授权的响应,然而在其它实施例中, 没有响应可被看作授权,或可能触发更多的授权协商尝试。过程接着进入
步骤730,以判断是否授权从源向目的节点传输数据。如果接收到对授权 的明确允许(例如,包含授权指示的信息),过程就进入步骤735,并添加 允许传输管理规则,对从源到目的节点的未来数据传输授权。如果过程收 到对授权的明确拒绝或超时信号,过程就进入步骤765,以添加指示拒绝 授权的规则,并丢弃从源节点接收到的发送至给定目的节点的任何数据。 在本示例中,所添加的拒绝授权规则包括到期准则,诸如超时或到期日期, 以例如强行基于一定周期对数据传输进行重新协商,从而确保组成员、接 入策略、和/或节点网络标识的动态改变能够被正确地反映在由多个DTM 所维护的规则集中。
相反,如果在步骤715中确定存在管理从源节点到目的节点的数据传 输的规则,过程就进入步骤755,以判断该规则是否对这一传输进行了授 权。如果是,或在步骤735之后,过程就进入步骤740并从源节点向目的 节点传输数据。相反,如果在步骤755中确定该规则拒绝对从源节点向目 的节点进行的数据传输授权,过程就进入步骤760并丢弃来自源节点的发 送至给定目的节点的任何数据。值得注意的是,在等待授权协商的过程中 不将接收到的数据进行排队而丢弃接收到的数据的实施例中,诸如725和 740的步骤可稍稍得到简化。举例而言,由于根据等待协商的结果,要么 丢弃数据或要么传输数据,不存在聚集的排队数据,因此在等待协商请求 的响应时不对数据进行排队的实施例可能不会如参考上述步骤725所描述
的那样等待接收超时信号。此外,在该情况下,由于没有要传输的数据(因 为发起授权协商的任何数据已被丢弃而不是进行排队),因此过程可直接 从步骤735进入步骤745,而跳过步骤740。
如果在步骤710中确定过程从远程DTM收到协商请求,而所述远程 DTM正在尝试为源节点获取同由DTM管理的目的节点之一进行通信的许 可,过程就进入步骤770以确定源节点地址和源节点所属的组。在某些实施例中,某些或全部信息将作为从远程DTM接收到的协商请求的一部分
被提供给DTM。可选地,DTM可以其它方式(如从另一系统组件(例如, 图1中DTM组管理器140或DTM系统管理器150))获取某些或全部信 息。接着,过程进入步骤772以判断源节点的网络地址是否得到与目的节 点进行通信的授权。如果没有,过程就进入步骤774,以判断是否至少源 节点的组中有一组得到了与目的节点进行通信的授权。如果没有,过程就 进入步骤776,并添加拒绝对从源节点向目的节点进行的通信予以授权的 规则,该规则可包括以一定周期促使对数据传输进行重新协商的到期准 则。接着,过程进入步骤778,并向远程DTM发送拒绝对通信进行授权 的响应。然而,如果在步骤772或步骤774中确定源节点已获得与目的节 点进行通信的授权,过程就进入步骤782并添加对从源节点到目的节点进 行的通信予以授权的规则。接着,过程进入步骤784,在步骤784中,程 序向远程DTM发送一条指示授权源节点与目的节点进行通信的响应。
如果在步骤710中确定程序接收到传入数据,过程就进入步骤786。 在步骤786中,过程确定规则集中是否存在对从传入数据的源节点向传入 数据的目的节点进行的通信予以授权的规则。如果在步骤788中确定存在, 过程就进入步骤790并向最终目的节点转发数据。如果不存在拒绝对该通 信予以授权的规则,或者存在明确地拒绝对该通信授权的规则,过程就进 入步骤792并丢弃传入数据。此外,在某些实施例中,在这种情况下DTM 可向最初发送数据的远程DTM发送一条消息表明不允许该通信,从而通 知远程DTM应该使与该特定目的节点相关的某些或全部规则无效。
如果在步骤710中确定接收到管理消息,过程就进入步骤794。管理 消息可包括 一个以上由DTM管理的节点离线的通知、由DTM管理的 新节点上线通知等。在某些实施例中,当新节点上线时,管理该新节点的 DTM可确定该新节点的网络位置(例如,网络地址)、新节点所属的组、
被授权与该新节点进行通信的源节点或其它发送者(单个节点或组),发 送者可以使用的、与该新节点进行通信的特定协议。在其它实施例中,DTM
可以可选地将获取该信息推迟到稍后某一时间,如新节点第一次发送传出 通信,或发往该新节点的传入通信第一次到达的时刻。该信息可由DTM 通过与其它系统组件(如图1中的DTM组管理器140或DTM系统管理器)进行通信,或查询可以通过网络进行访问的数据存储器的方式予以获
得。类似地,当由DTM管理的节点下线时,DTM将从其规则集中删除将 该节点作为源节点或目的节点的任何规则。DTM也可删除与网络标识、 组成员资格,和/或节点访问规则相关的任何信息。
在步骤760、 740、 765、 784、 778、 790、 792或794之后,过程继续 进入步骤780,以可选地执行常规任务(例如,检查与存储在TM组件规 则集中的规则相关的到期准则)。在某些实施例中,规则可被设置为在指 定时间间隔后自动到期。在其它实施例中,DTM周期性地检查规则集中 的规则,并删光或删除到达某一生存期的规则。其它常规工作包括诸如 更新或轮替日志、或处理未在以上流程图中示出的附加信息或请求。举例 而言,在某些情况下,DTM的上述示例实施例将具有到期的授权规则, 即,授权规则将以在初始协商许可之后的某时刻下线的目的节点作为参 照。在这种情况下,DTM可能在受DTM管理的源节点之一尝试向目的节 点发送数据时才知道该节点已经下线。由于DTM具有允许该传输的规则, 因此DTM将向目的节点传输数据。然而,远程DTM将拒绝该传输,并 以通知该DTM使允许这一通信的规则(或可选地,将该节点作为目的节 点的所有规则)无效的消息作为应答。作为响应,DTM将视情况删除与 该给定目的节点相关的某些或全部存储规则。
在步骤745之后,过程进入步骤750以判断是否继续。倘若继续,过 程返回步骤705,否则,继续执行步骤799并结束。
图8示出了 DTM系统管理器工作过程800的示例实施例的流程图。 该过程可通过执行例如图1所示的DTM系统管理器150予以实现。程序 起始于步骤805,并接收执行用户账户操作或配置组信息的请求。接着, 过程进入步骤810,以判断是否收到执行用户账户操作的请求。倘若收到, 就进入步骤840并视情况执行所请求的用户账户操作(例如,创建或删除 用户账户、修改用户账户设置(如计费信息)、保留计算时间或由数据中 心提供的其它资源、提供和管理机器镜像或应用程序配置文件等)。如果 在步骤810判定未请求用户账户操作,过程就进入步骤815以判断是否接 收到配置组访问策略的请求。如果收到,过程就进入步骤845并根据要求 视情况设置或配置组访问策略。例如,这些访问策略可以与图4B的表中
24所示的策略类似。在某些情况下,过程可进一步向某些DTM (例如,仅
仅那些管理受所指示的访问策略影响的节点的DTM)或所有DTM通知所 指示的访问策略。如果在步骤815中判定未接收到配置组访问策略的请求, 过程就进入步骤820,在步骤820中判断是否接收到指定组成员资格的请 求。如果收到,就进入步骤850并视情况对组成员资格信息进行修改。在 某些情况下,过程可进一步向某些DTM (例如,仅仅那些管理受组成员 资格规定影响的节点的DTM)或所有DTM通知组成员资格信息的修改。 如果在步骤820中确定未收到指定组成员资格的请求,过程就进入步骤 825以处理其它请求。其它请求可以包括未在上述步骤中处理的,诸如创 建新组、删除组、修改现有组或用户账户等操作。在步骤830、 840、 845、 或850之后,过程就进入步骤830并可选地执行附加的常规操作(例如, 周期性产生用户计费信息、访问和操作记录或日志轮替、系统备份、或其 它管理功能)。接着,过程进入步骤835以判断是否继续。倘若继续,过 程就进入步骤805以处理更多传入的请求。否则,过程进入步骤899并返回。
本领域的技术人员还将意识到,在某些实施例中,由上述过程提供的 功能可通过其它方式(如将所述功能分入更多过程,或合并为更少的过程) 予以提供。类似地,在某些实施例中,在诸如其它所述过程分别缺少或包 括这样的功能,或当所提供的功能的数量发生改变的情况下,所述过程可 以提供比所描述的功能数量更多或更少的功能。此外,虽然可能将各个操 作说明为是以特定方式(例如,串行或并行)和/或特定顺序予以执行的, 但是本领域技术人员将意识到,在其它实施例中,可按照其它顺序或其它 方式来执行操作。本领域技术人员还将意识到,以上讨论的数据结构可采 用不同方式(如通过将单个数据结构分解为多个数据结构,或将多个数据 结构合并为单个数据结构)加以组织。类似地,在某些实施例中,在诸如 其它所述数据结构分别缺少或包括这样的信息,或当所存储的信息的数量 或类型发生改变时,所述数据结构可以存储比所描述的数量更多或更少的
{曰息。
如前所述,在某些实施例中,计算节点可以多种方式发起数据传输或 其它通信,并且相关的数据传输管理器组件可以多种方式识别数据传输或
25其它通信的发起。在某些实施例中,计算节点可向管理该计算节点的TM 组件发送一条明确的消息,请求允许同远程节点进行通信,然而在其它实
施例中,TM组件的存在及其所执行的授权协商过程对计算节点可能是完 全透明的,倘若如此,计算节点只尝试向远程节点发送数据,而TM组件 监控并处理从该计算节点传出的所有传输。当TM组件(通过诸如在TCP 或UDP分组流经网络接口时检查其源和目的网络地址等方式,或从计算 节点接收到明确的请求消息,或检测到未经协商许可的传出传输,从而) 识别到由计算节点发起数据传输时,如果尚不存在授权或授权拒绝,TM 组件就发起授权协商。当TM组件进行授权协商时,TM组件可以令从计 算节点传出的、发送至远程目的节点的数据排队,并根据授权协商的结果 处理数据(例如,通过允许或阻止向目的节点进行数据传输),以及可选 地在向目的节点转发数据之前操作数据(例如,在数据中包括目的计算节 点和/或目的传输组件在验证数据传输的授权和/或真实性时所使用的获得 授权的指示;修改数据传输的方式,以例如为了反映目的计算节点的偏好 或其它原因,改变数据格式和/或传输协议;通过诸如添加和/或移除数据 等方式,修改传输数据)。
此外,各种实施例可以向客户用户或其它用户提供与DTM系统的实 施例进行交互的机制。举例而言,某些实施例可提供交互式控制台(如, 提供交互式用户界面的客户端应用程序、基于浏览器的Web界面,等), 通过该控制台,用户可以管理组的创建或删除,以及通信访问策略或组成 员资格的规范,以及更一般的与寄居应用程序的操作和管理相关的管理功 能(例如,创建或修改用户账户;提供新应用程序;发起、终止、或监控 寄居应用程序;向组分配应用程序;保留时间或其它系统资源,等)。此 外,某些实施例可提供使其它计算系统和程序能够可编程地调用这类函数 的API ("应用程序接口")。此类API可由库或类接口 (例如,通过以C、 C++、或Java编写的程序来调用)和减诸如利用Web服务的网络服务协 议予以提供。
此外,DTM系统的实施例可能存在多种实现架构。在某些实施例中, 多个TM组件可以(通过分别作为独立的自治程序运行或通过与其它TM 组件协同工作的方式)以分布式方式工作,使得各TM组件分别管理一个以上相关节点的数据传输,并且多个TM组件可能是位于与正被管理的节 点相同的计算系统上的寄居虚拟机,或者可以工作于其所管理的节点的远 程计算系统上。虽然在已说明授权协商过程中,TM组件彼此直接交互,
但是在其它实施例中,这些TM组件可以以其它方式(诸如通过与管理整
个系统的通信策略的中央组件进行通信,或通过参考配置文件或其它可在
本地或网络上得到的静态信息存储器)协商授权。此外,由TM组件执行 的授权协商可以具有多种形式。举例而言,在某些实施例中,远程TM组 件的实际网络地址或其它标识对于发起协商的TM组件可能是已知的,倘 若如此,TM组件就可以直接与远程TM组件进行交互,然而在其它实施 例中,TM组件向目的计算节点的网络地址发送信息,并期望所发送的信 息被适当的远程TM组件拦截。在其它实施例中,如果单个组件可访问由 大量计算节点(例如,整个数据中心)发起的数据通信(由于节点的配置 或网络结构或其它提供这样的访问的机制的缘故),单个、中央TM组件、 或其它组件可以为这些节点管理数据通信。另外,在其它实施例中,可以 诸如通过将TM组件的功能并入被管理的各个计算节点中的方式(例如, 由所有节点将功能构建到用于网络通信的系统库内)将其进行分布,或者 不同的TM组件可代表各个计算节点工作。
此外,在DTM系统的功能被分布在多个系统组件的实施例中,可存 在多种协商方案和协议。在TM组件之间或在TM组件以及其它系统组件 之间传递的协商请求和与数据传输策略和许可相关的其它消息可通过多 种方式(例如通过发送包含相关信息的低层UDP分组,或通过在诸如 HTTP的高层协议上实现的协议(例如,XML-RPC, SOAP,等))予以实 现。
如前所述,可针对大量计算节点利用所述技术向这些节点提供多种利 益。此外,至少在某些实施例中,此类计算节点还可根据各自的利益利用 更多技术来提供其它功能,例如各节点可分别配置和提供各自的防火墙, 用于实现传入通信、病毒防护、以及防范其它不法行为等。
当将所述技术同位于某个定义边界内部的一组计算节点(例如,数据 中心内的节点) 一起使用时,由于诸如具有获得对由这些计算节点发起的 数据传输的访问权这一能力的缘故,在某些实施例中,所述实施例还可以被扩展到所定义的边界的边缘。因此,除了管理定义边界内的计算节点间 的数据通信, 一个以上可穿过内部和外部计算节点之间的边界进行通信的 传输管理器组件可类似地提供至少某些用于这些通信的所述技术。举例而 言,当在边界接收到由外部节点发起、发往内部计算节点的数据通信时, 与边缘相关的传输管理器组件可类似地将该通信看作由所管理的计算节 点发起的传出数据传输进行处理,诸如将该通信进行排队,并且只有在进 行协商(例如,通过与目的计算节点相关的传输管理器组件进行协商,或 与代表所有内部计算节点运行的组件进行协商)并获得授权的情况下允许 该通信进入内部网络。
本领域技术人员将认识到,虽然在某些实施例中,所述技术被用于容 纳多个互通节点的数据中心的环境中,但是所述技术也可用于其它实现情 形。举例而言,所述技术可用于由企业或其它机构(例如,大学)运营的 部门级内联网环境中,以为其员工和/或成员提供便利。可选地,网络服务 提供商可利用所述技术来提高网络安全性、可用性,以及隔离度。此外, 为了各种目的,可将示例实施例用于数据中心或其它环境之中。举例而言, 在某些实施例中,向客户出售对寄居应用程序的访问权限的数据中心操作 者或用户可利用所述技术在他们的客户应用程序和数据之间提供隔离;在 某些实施例中,软件开发小组可利用所述技术在他们所使用的多种网络环 境(例如,开发、构建、测试、部署、生产等环境)之间提供网络隔离; 在某些实施例中,组织可利用所述技术将由某一职员组或部门(例如,人 力资源部门)所使用的资源与由另一职员组或部门(例如,财务部门)所
使用的资源进行隔离;或者在某些实施例中,部署多组件应用程序(例如,
多层企业应用程序)的数据中心操作者或用户可以利用所述技术为多种组
件类型(Web前端、数据库服务器、企业规则引擎等)提供功能分解和/ 或隔离。更一般地,所述技术可用于划分虚拟机,以反映在传统情况下必 须对独立计算系统进行物理划分的几乎任何情况。
根据前述内容,将会理解到,虽然此处为了进行说明描述了特定的实 施例,但是可以在不背离本发明的精神和范围的前提下,对本发明做大量 的改动。因此,本发明只受所附权利要求以及在权利要求中所陈述的内容 的限制。此外,虽然下面以特定的权利要求形式对本发明的某些方案进行
28了说明,但是发明者考虑了具有任意可用权利要求形式的本发明的各种方 案。举例而言,虽然目前本发明只有某些方案被描述为包含于计算机可读 介质,但是同样还可以将其它方案包含于计算机可读介质。
权利要求
1. 一种计算系统中的数据传输管理器的方法,包括接收从源节点到目的节点进行数据传输的请求;通过应用传输管理规则,判断数据传输是否得到了授权,所述判断包括,在通过应用传输管理规则判定数据传输未经授权的情况下发起同与目的节点相关的第二数据传输管理器的授权协商;并且从所述第二传输管理器设备接收指示数据传输是否得到授权的消息;如果数据传输得到授权,就向目的节点的所述第二数据传输管理器传输数据;并且如果数据传输未经授权,就终止数据传输。
2. 根据权利要求1所述的方法,如果在来自所述第二数据传输管理 器的接收消息中指示数据传输得到授权,就更新数据传输管理规则,从而 允许从源节点到目的节点的数据传输。
3. 根据权利要求1所述的方法,其中,所述判断数据传输是否得到 授权还包括确定第一组以源节点为其成员节点的一个以上的节点组; 确定第二组以目的节点为其成员节点的一个以上的节点组;以及 至少部分基于应用于所述第一和第二组节点组的传输管理规则,判断 源节点是否得到了同目的节点进行通信的授权。
4. 根据权利要求1所述的方法,还包括 接收在源节点和目的节点之间进行协商的请求; 判断源节点是否为节点组的一部分;并且 在判定源节点为节点组的一部分的情况下 判断节点组是否具有针对所述数据传输的授权; 在判定节点组具有授权的情况下更新传输规则;并且向所述第二数据传输管理器发送表明允许从源节点到目的节点进 行数据传输的协商响应。
5. 根据权利要求4所述的方法,其中,所述协商响应包括源节点网络地址的指示、以及源节点的节点组的指示。
6. 根据权利要求4所述的方法,其中,所述协商响应包括向目的 节点传输数据所用的传输协议的指示。
7. 根据权利要求l所述的方法,还包括 接收对从目的节点到源节点的第二数据传输的请求;通过应用传输管理规则判断所述第二数据传输是否得到了授权; 如果所述第二数据传输得到授权,就向源节点转发数据;并且 如果第二数据传输未经授权,就终止第二数据传输。
8. 根据权利要求1所述的方法,其中,数据传输管理器以及第二数 据传输管理器是通过软件模拟实现的虚拟机。
9. 根据权利要求8所述方法,其中,每个虚拟机代表一个不同的逻 辑计算系统。
10. 根据权利要求1所述的方法,其中,所述数据传输管理器从数据 传输管理器组管理器接收数据传输管理规则,所述数据传输管理器组管理 器维护组成员资格以及组数据传输管理规则。
11. 根据权利要求1所述的方法,其中,判断数据传输是否得到授权 还包括识别包含源节点的组,所应用的传输管理规则是对所述组应用的传 输管理规则。
12. —种用于执行权利要求1至11所述的任一方法的计算机程序。
13. —种用于在计算系统中进行传输数据管理的装置,包括 用于接收从源节点到目的节点进行传输数据的请求的单元,所述请求被发送至数据传输管理器;用于通过应用数据传输管理规则,判断数据传输是否得到了授权的单 元,所述判断包括,在通过应用传输管理规则判定数据传输未经授权的情 况下发起同与目的节点相关的第二数据传输管理器的授权协商;并且 从所述第二传输管理器设备接收指示数据传输是否得到授权的消息; 用于在数据传输得到授权的情况下,向目的节点的所述第二数据传输 管理器传输数据的单元;以及用于在数据传输未经授权的情况,终止数据传输的单元。
14. 根据权利要求13所述的装置,还包括用于在在来自所述第二 传输管理器的接收消息中指示数据传输得到授权的情况下,更新传输管理 规则,以允许从源节点到目的节点的数据传输的单元。
15. 根据权利要求13所述的装置,其中,所述判断数据传输是否得 到授权的单元包括用于确定第一组以源节点为其成员节点的一个以上的节点组的单元; 用于确定第二组以目的节点为其成员节点的一个以上的节点组的单 元;以及至少部分基于应用于所述节点组的传输管理规则,判断源节点是否得 到了同目的节点进行通信的授权的单元。
16. 根据权利要求13所述的装置,还包括 用于接收在源节点和目的节点之间进行协商的请求的单元; 用于判断源节点是否为节点组的一部分的单元;以及 用于在判定源节点为节点组的一部分的情况下,判断源节点是否具有授权的单元,所述判断的实现方式为判断节点组是否具有针对所述数据传输的授权; 在判定节点组具有授权的情况下, 更新传输规则;并且向所述第二数据传输管理器发送表明允许从源节点到目的节点 进行数据传输的协商响应。
17. 根据权利要求16所述的装置,其中,所述协商响应包括源节 点网络地址的指示、以及源节点的节点组的指示。
18. 根据权利要求16所述的装置,其中,所述协商响应包括向目 的节点传输数据所用的传输协议的指示。
19. 根据权利要求16所述的装置,其中,所述数据传输管理器以及 所述第二数据传输管理器是通过软件模拟实现的虚拟机。
20. 根据权利要求19所述的装置,其中,每个虚拟机代表一个不同 的逻辑计算系统。
21. 根据权利要求16所述的装置,其中,所述数据传输管理器从数 据传输管理器组管理器接收数据传输管理规则,所述数据传输管理器组管理器维护组成员资格以及组数据传输管理规则。
22. 根据权利要求16所述的装置,其中,用于判断数据传输是否得到授权的单元包括用于识别包含源节点的组以及对所述组应用数据传输 管理规则的单元。
23. 根据权利要求13所述的装置,还包括用于接收对从目的节点到源节点的第二数据传输的请求的单元;用于通过应用传输管理规则判断所述第二数据传输是否得到授权的单元;用于在所述第二数据传输得到授权的情况下,向源节点转发数据的单元;用于在所述第二数据传输未经授权的情况下,终止所述第二数据传输 的单元。
24. 根据权利要求13至23中任意一项所述的装置,其中,所述装置 包括用于实现所述数据传输管理器的单元。
25. 根据权利要求24所述的装置,其中,所述装置包括用于实现 所述第二数据传输管理器的单元。
全文摘要
说明了用于管理互通的多个计算节点(诸如多个寄居在一个以上物理计算机或系统上的虚拟机)间的通信的技术。在某些情况下,用户可以指定计算节点组,以及可选地(通过诸如指定允许哪些源节点向特定目的节点传输数据的方式)指定用于管理这些组的通信的相关访问策略。此外,可以动态协商并记录所发起的从源节点到目的节点数据通信是否得到了授权的判断结果,以供稍后用于在无需协商的情况下对将来的此类数据传输自动授权。该摘要的提供是为了满足要求摘要的规定,并且提供摘要的目的不是为了解释或限制权利要求的范围或含义。
文档编号H04L12/28GK101461190SQ200780020175
公开日2009年6月17日 申请日期2007年3月29日 优先权日2006年3月31日
发明者克里斯托弗·C·平卡姆, 威廉·R·范比林, 昆顿·R·胡利, 罗兰·帕特森-琼斯 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1