在主机上执行上下文丰富的基于属性的服务的制作方法

文档序号:18516475发布日期:2019-08-24 09:29阅读:202来源:国知局
在主机上执行上下文丰富的基于属性的服务的制作方法

历史上,中间盒服务一直是在企业或数据中心的网络拓扑中的一个或多个点处实现的硬件电器。随着软件定义联网(sdn)和网络虚拟化的出现,传统硬件电器无法利用sdn和网络虚拟化提供的灵活性和控制。因而,近年来,一些人已经提出了在主机上提供中间盒服务的各种方法。但是,这些中间盒解决方案中的大多数都没有利用可以为主机上的每个数据消息流捕获的上下文丰富的数据。对此的一个原因是现有技术不提供用于过滤数千个捕获的上下文属性以便高效地处理根据更小的上下文属性集定义的服务规则的高效分布式方案。



技术实现要素:

一些实施例提供了一种用于配置主机上的一个或多个服务节点的集合以在主机计算机上执行上下文丰富的基于属性的服务的新方法,该主机计算机除了服务节点的集合之外还执行若干数据计算节点(dcn)。该方法使用主机上的上下文过滤节点来收集与由主机计算机上的服务节点集合处理的服务规则相关联的第一属性集合。上下文过滤器还收集与在主机上执行的dcn(例如,虚拟机(vm)或容器的)的至少一个数据消息流相关联的第二属性集合。在一些实施例中,第一和第二属性集合不是l2-l4报头参数。例如,在一些实施例中,这些属性集合包括l7参数或组标识符(例如,网络安全组标识符)。而且,在一些实施例中,每个服务规则包括用于与数据消息标识符匹配的规则标识符,并且第一属性集合是在该服务节点集合的服务规则的规则标识符中使用的属性。

在收集第一和第二属性集合之后,主机上的上下文过滤节点比较第一和第二属性集合以生成服务标签以表示与数据消息流相关联的第一属性集合的子集。该方法将这个服务标签与数据消息流相关联。然后,当服务节点需要处理其数据消息流的基于属性的服务规则时,这个服务标签可以用于识别与数据消息流相关联的属性子集。

在一些实施例中,上下文过滤器将与数据消息流相关联的服务标签提供给dcn和属性解析引擎。当为这个流发送数据消息时,dcn沿着带内(即,与数据消息流一起)或带外(即,与数据消息流分离)转发数据消息的服务标签,以便服务节点可以使用这个服务标签来处理其基于属性的服务规则。

为了处理其基于属性的服务规则,服务节点将数据消息流的服务标签提供给属性解析引擎。从上下文过滤引擎,属性解析引擎接收具有由这个标签表示的属性子集的服务标签,并将这个信息存储在将每个服务标签与其对应属性子集相关联的映射数据结构(例如,映射表)中。在一些实施例中,属性解析引擎是服务节点的一部分,而在其它实施例中,它与所有服务节点分离。

当属性解析引擎从服务节点接收到服务标签时,这个引擎在其映射数据结构中找到这个服务标签,从映射结构中检索标签的关联属性子集,并将该属性子集返回给服务节点。然后,服务节点使用返回的属性子集来识别与这个子集匹配的服务规则,然后基于由这个服务规则指定的动作参数执行服务操作。此类服务操作的示例包括防火墙操作、负载平衡操作、入侵检测操作、入侵防御操作、加密操作和其它类型的中间盒操作。

如上面所提到的,在一些实施例中由上下文过滤节点收集的第一和第二属性集合是l7参数和/或组标识符。例如,在一些实施例中,客人内省(gi)代理在dcn上运行。在发生事件(例如,登录事件或连接会话的开始)时,客人内省代理收集与事件有关的多个l7参数。这些参数的示例包括登录标识符、订户(例如,活动目录sid)或应用所属的组标识符、位置、设备信息、访问级别等。在一些实施例中,由gi收集的信息涉及一个数据消息流,而在其它实施例中,所收集的信息涉及一个以上的数据消息流或连接会话(例如,涉及登录事件之后的所有数据消息流)。

客人内省代理将这个收集的信息传递给上下文过滤节点。这个信息用作上面提到的第二属性集合。在一些实施例中,第一属性集合用在服务节点集合的规则标识符中,并且上下文过滤节点从服务节点集合收集这些属性。在一些实施例中,第一和第二属性集合是完全相同类型的属性,并且上下文过滤节点仅识别作为第一属性集合的一部分的第二属性集合的子集,以便识别数据消息流的服务标签。联合地或可替代地,在一些实施例中,第一属性集合是组标识符,并且上下文过滤节点使用第二属性集合来识别与数据消息流相关联的一个或多个组标识符。然后,上下文过滤节点将识别出的组标识符与数据消息流的服务标签相关联。

当dcn在数据消息流内带内嵌入服务标签时,服务标签可以用于在其它电器和/或主机计算机上(例如,在除dcn在其上执行的主机计算机之外的主机计算机上)执行服务操作。在这种情况下,其它电器和/或主机计算机上的属性解析代理将服务标签转换成属性集合,然后使用这些属性来为数据消息流识别要处理的一个或多个服务规则。

为了促进在其它电器和/或主机计算机处处理基于属性的服务规则,在一些实施例中创建服务标签定义的主机计算机将这个定义发送到其它电器/主机计算机。在这些实施例的一些当中,其它设备(即,其它电器或主机计算机)的模块(例如,上下文过滤器或属性解析代理)从生成服务标签定义的主机计算机的上下文过滤代理接收或检索服务标签定义。在这些实施例的一些当中,这种通信是这两个设备之间的控制信道通信。

如上面所提到的,在一些实施例中,服务标签定义识别与每个服务标签相关联的属性集合。在一些实施例中,每个服务标签的定义还包括唯一标识符(例如,主机标识符)。这个唯一标识符允许从多个主机计算机接收服务标签定义的设备的属性解析代理将服务标签正确映射到属性,因为不同的主机计算机可以使用相同的服务标签,并且属性解析代理需要唯一标识符嵌入在服务标签中,以区分两个相似的服务标签。

前面的发明内容旨在用作对本发明的一些实施例的简要介绍。这并不意味着是对本文档中公开的所有发明性主题的介绍或概述。以下的具体实施方式和在具体实施方式中提及的附图将进一步描述在本发明内容中描述的实施例以及其它实施例。因此,为了理解由本文档描述的所有实施例,需要对发明内容、具体实施方式、附图和权利要求书进行全面审阅。而且,所要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制。

附图说明

本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在以下图中阐述了本发明的若干实施例。

图1图示了在一些实施例中用于建立分布式体系架构的主机计算机,该分布式体系架构用于在数据中心中配置和执行上下文丰富的基于属性的服务。

图2图示了主机计算机的更详细示例,在一些实施例中,主机计算机用于建立用于在数据中心中配置和执行上下文丰富的基于属性的服务的分布式体系架构。

图3概念性地图示了上下文过滤器每当从gi代理接收属性集合时执行的过滤处理。

图4概念性地图示了当端口针对与连接到端口的vm相关联的接收消息调用引擎时服务引擎执行的处理。

图5呈现了概念性地图示在源vm的主机计算机和目的地vm的主机计算机上执行的操作集合以基于在源vm的主机计算机上定义的服务标签在目的地vm的主机计算机上执行服务操作的处理。

图6图示了在一些实施例中如何管理管理程序服务引擎的示例。

图7概念性地图示了用于实现本发明的一些实施例的计算机系统。

具体实施方式

在本发明的以下详细描述中,阐述和描述了本发明的许多细节、示例和实施例。但是,对于本领域技术人员将清楚和显而易见的是,本发明不限于所阐述的实施例,并且本发明可以在没有所讨论的一些具体细节和示例的情况下实践。

一些实施例提供了一种新颖的分布式体系架构,用于在具有执行数据计算机节点(dcn)和服务节点的若干主机计算机的数据中心中配置和执行上下文丰富的基于属性的服务。这种分布式体系架构允许主机高效地对由在主机上执行的数据计算节点发送和/或发送到该数据计算节点的数据消息执行上下文丰富的基于属性的服务。这种体系架构可以高效地处理通过引用广泛的上下文属性定义的服务规则。

如在本文档中所使用的,数据消息是指跨网络发送的特定格式的位集合。本领域普通技术人员将认识到的是,术语“数据消息”可以在本文中用于指可以跨网络发送的各种格式化的位集合,诸如以太网帧、ip分组、tcp片段、udp数据报等。而且,如本文档中所使用的,对l2、l3、l4和l7层(或第2层、第3层、第4层、第7层)的引用分别是对osi(开放系统互连)层模型的第二数据链路层、第三网络层、第四传输层和第七应用层的引用。

图1图示了主机计算机100,在一些实施例中,主机计算机100用于建立分布式体系架构,其用于在数据中心中配置和执行上下文丰富的基于属性的服务。如图所示,主机计算机100包括若干dcn105、上下文过滤器模块110、若干服务节点115以及属性解析引擎120。它还包括基于属性的服务规则存储装置125、服务标签定义存储装置130和映射存储装置135。

主机100上的上下文过滤器110收集与由主机计算机上的服务节点集合处理的服务规则相关联的属性集合,以便识别用于定义服务规则的属性,然后该过滤器110用来过滤掉从dcn收集的不必要的属性。在一些实施例中,上下文过滤器110通过策略引擎(未示出)与服务节点115交互。这个策略引擎用作服务节点115和上下文过滤器110之间的接口。

在一些实施例中,所收集的属性集合可以包括l2-l4报头参数,但是还包括不是l2-l4报头参数的属性。例如,在一些实施例中,这些属性集合包括l7参数或组标识符(例如,网络安全组标识符)。而且,在一些实施例中,每个服务规则包括用于与数据消息标识符匹配的规则标识符,并且所收集的属性集合是在该服务节点集合的服务规则的规则标识符中使用的属性。服务节点是在主机100上执行的服务模块(下面也称为服务引擎)。

在一些实施例中,上下文过滤器110通过服务节点接口(例如,api集合,未示出)与服务节点交互来收集该属性集合。在这些实施例中,服务节点从服务规则存储装置125检索这些属性,并将它们提供给上下文过滤器。在其它实施例中,上下文过滤器100通过直接访问基于属性的服务规则存储装置125或通过另一个模块访问这些规则来收集该服务规则属性集合。

除了收集服务规则属性之外,上下文过滤器110还从在主机100上执行的dcn105收集属性集合。dcn在一些实施例中是虚拟机,在其它实施例中是容器,在还有其它实施例中是vm和容器。在一些实施例中,每次dcn开始新的数据消息流时,或者每次dcn将要开始新的数据消息流集合时(例如,在发生诸如登录事件之类的事件后),dcn105向上下文过滤器110提供属性集合。在一些实施例中,dcn105上的客人内省代理检测dcn上的新事件,捕获与那个事件相关联的属性集合,并将这个属性集合发送到上下文过滤器。与从服务规则收集的属性类似,在一些实施例中从dcn收集的属性可以包括l2-l4报头参数,但是还包括不是l2-l4报头参数的属性(诸如l7参数或组标识符)。在其它实施例中,从dcn收集的属性不包括l2-l4报头参数。

在从dcn105收集属性集合之后,主机上的上下文过滤节点将该属性集合与从服务规则收集的属性集合进行比较,以生成服务标签来表示dcn收集的属性集合的子集,其用在一个或多个服务规则(即,其在从服务规则收集的属性集合内)中。然后,上下文过滤器将服务标签返回到从其接收属性集合的dcn105,以便dcn可以关联用于它为其收集属性集合的一个或多个数据消息流的这个服务标签。在一些实施例中,dcn(例如,dcn的gi代理)将服务标签存储在dcn的高速缓存存储装置(未示出)中,使得它可以将服务标签用于该数据消息流或随后的流而不必重新访问上下文过滤器110。

当服务节点需要处理其用于与服务标签关联(例如,通过dcn)的数据消息流的基于属性的服务规则时,服务标签可以用于识别与数据消息流相关联的属性的子集。对于每个服务标签,在一些实施例中,上下文过滤器110生成服务标签定义,该服务标签定义识别服务标签和与服务标签相关联的属性子集。在一些实施例中,上下文过滤器110将生成的服务标签的定义提供给属性解析引擎120,并且属性解析引擎120将这个定义存储在将每个服务标签与其对应的属性子集相关联的映射数据存储装置135(例如,具有一个或多个映射表的数据库)中。

当为这个流发送数据消息时,dcn105沿着带内(即,与数据消息流一起)或带外(即,与数据消息流分离)转发数据消息的服务标签,以便服务节点可以使用这个服务标签来处理其基于属性的服务规则。为了处理其基于属性的服务规则,服务节点115将数据消息流的服务标签提供给属性解析引擎120。在一些实施例中,属性解析引擎120是服务节点的一部分,而在其它实施例中,它与所有服务节点分离。在还有其它实施例中,每个服务节点115具有其自己的属性解析引擎120。

当属性解析引擎120从服务节点115接收到服务标签时,属性解析引擎在其映射数据存储装置135中找到这个服务标签,从映射存储装置中检索标签的关联属性子集,并将该属性子集返回给服务节点115。然后,服务节点使用返回的属性子集来识别与这个子集匹配的服务规则,然后基于由这个服务规则指定的动作参数执行服务操作。此类服务操作的示例包括防火墙操作、负载平衡操作、入侵检测操作、入侵防御操作、加密操作和其它类型的中间盒操作。

图2图示了主机计算机200的更详细示例,在一些实施例中,主机计算机200用于建立用于在数据中心中配置和执行上下文丰富的基于属性的服务的分布式体系架构。这个主机计算机200包括许多与主机计算机100相同的部件,诸如上下文过滤器110、服务节点115、属性解析引擎120、基于属性的服务规则存储装置125、服务标签定义存储装置130和映射存储装置135。而且,在主机200上,dcn105是vm205。

除了这些部件之外,主机计算机200还包括软件转发元件210、连接状态数据存储装置225和服务引擎接口227。在一些实施例中,软件转发元件210、服务引擎115、规则数据存储装置125、连接状态数据存储装置225、属性解析引擎120、映射存储装置135和服务引擎接口227位于管理程序的内核空间中,而vm205、上下文过滤器110和服务标签定义存储装置130位于管理程序的用户空间中。在其它实施例中,上下文过滤器110和服务标签定义存储装置130也是管理程序内核空间的一部分。在一些实施例中,一个或多个服务节点是内核空间模块,而一个或多个其它服务节点是用户空间模块(例如,是服务vm)。

vm205是在主机上执行的管理程序(未示出)之上执行的虚拟机。这种机器的示例包括web服务器、应用服务器、数据库服务器等。在一些情况下,所有vm属于一个实体,例如,操作主机的企业。在其它情况下,主机在多租户环境中(例如,在多租户数据中心中)执行,并且不同的vm可以属于一个租户或属于多个租户。

每个vm205包括客户内省(gi)代理215,其与上下文过滤器110交互以向这个过滤器提供属性集合,并接收这些属性集合的服务标签。如上面所提到的,在一些实施例中,由上下文过滤节点从服务规则和dcn收集的属性集合是l7参数和/或组标识符。在vm上发生事件(例如,登录事件或连接会话的开始)时,在一些实施例中,vm的gi代理收集与事件相关的多个l7参数。这些参数的示例包括登录标识符、订户(例如,活动目录sid)或应用所属的组标识符、地点、设备信息、访问级别等。在一些实施例中,由gi收集的信息涉及一个数据消息流或连接会话,而在其它实施例中,所收集的信息涉及一个以上的数据消息流或连接会话(例如,涉及登录事件之后的所有数据消息流)。

gi代理215将这个收集的事件的属性集合传递给上下文过滤器110。然后,上下文过滤器110将这些属性与服务规则存储装置125中的服务规则的服务规则标识符中使用的属性进行比较,以识别在服务规则中使用的、gi提供的属性集合的子集。如果它尚未为这个识别出的属性子集创建服务标签,那么上下文过滤器110然后为这个子集创建服务标签,并将这个服务标签的定义存储在服务标签定义存储130中。然后,上下文过滤器将与识别出的属性子集相关联的服务标签提供给提供属性集合的gi,以便gi可以将其vm的带内或带外发送的数据消息与服务标签相关联,进而,允许一个或多个服务节点随后使用该服务标签来识别数据消息所需的服务操作。

在一些实施例中,上下文过滤器从服务规则和gi代理收集的属性集合是完全相同类型的属性,并且上下文过滤节点仅识别gi收集的属性中作为服务规则标识符属性的一部分的子集,以便识别数据消息流的服务标签。联合地或可替代地,在一些实施例中,服务规则标识符属性可以是组标识符,并且上下文过滤器110使用gi收集的属性来识别与数据消息流相关联的一个或多个组标识符。然后,上下文过滤器110将识别出的组标识符与数据消息流的服务标签相关联。

如图所示,在一些实施例中,每个vm205还包括虚拟网络接口卡(vnic)255。每个vnic负责在其vm和软件转发元件210之间交换消息。每个vnic连接到软件转发元件210的特定端口。软件转发元件210还连接到主机的物理网络接口卡(nic)(未示出)。在一些实施例中,vnic是由虚拟化软件(例如,由管理程序)实现的物理nic(pnic)的软件抽象。

在一些实施例中,软件转发元件(sfe)为每个vm的每个vnic维护单个端口260。软件转发元件210连接到物理nic(通过nic驱动器(未示出))以发送传出消息和接收传入消息。在一些实施例中,软件转发元件210被定义为包括端口265,端口265连接到pnic的驱动器以向pnic发送消息和从pnic接收消息。

软件转发元件210执行消息处理操作以将其在其一个端口上接收的消息转发到其另一个端口。例如,在一些实施例中,软件转发元件尝试使用消息中的数据(例如,消息报头中的数据)来将消息与基于流的规则匹配,并且在找到匹配后,执行由匹配规则指定的动作(例如,将消息传递到其端口260或265之一,其指示消息被提供给目的地vm或pnic)。

在一些实施例中,软件转发元件210是软件交换机,而在其它实施例中,它是软件路由器或组合的软件交换机/路由器。在一些实施例中,软件转发元件210实现一个或多个逻辑转发元件(例如,逻辑交换机或逻辑路由器),其中软件转发元件在多主机环境中的其它主机上执行。在一些实施例中,逻辑转发元件可以跨越多个主机以连接在不同主机上执行但属于一个逻辑网络的vm。

可以定义不同的逻辑转发元件以便为不同的用户指定不同的逻辑网络,并且每个逻辑转发元件可以由多个主机上的多个软件转发元件来定义。每个逻辑转发元件将一个逻辑网络的vm的流量与由另一个逻辑转发元件服务的另一个逻辑网络的vm隔离。逻辑转发元件可以连接在同一主机和/或不同主机上执行的vm。在一些实施例中,sfe从数据消息中提取逻辑网络标识符(例如,vni)和mac地址。这些实施例中的sfe使用提取出的vni来识别逻辑端口组,然后使用mac地址来识别端口组内的端口。

软件交换机(例如,管理程序的软件交换机)有时被称为虚拟交换机,因为它们在软件中操作并且它们向vm提供对主机的(一个或多个)pnic的共享访问。但是,在本文档中,软件交换机被称为物理交换机,这是因为它们是物理世界中的物品。这个术语还将软件交换机与逻辑交换机区分开来,逻辑交换机是由软件交换机提供的连接类型的抽象。存在用于从软件交换机创建逻辑交换机的各种机制。vxlan提供了一种创建此类逻辑交换机的方式。vxlan标准在mahalingam,mallik;dutt,dineshg.;等人的(2013-05-08),vxlan:aframeworkforoverlayingvirthalizedlayer2networksoverlayer3networks,ietf中描述。

在一些实施例中,软件转发元件210的端口包括对一个或多个模块的一个或多个功能调用,这些模块对在端口处接收的传入和传出消息实现特殊输入/输出(i/o)操作。由端口260实现的i/o操作的示例包括arp广播抑制操作和dhcp广播抑制操作,如美国专利申请14/070,360中所述。在本发明的一些实施例中,可以如此实现其它i/o操作(诸如防火墙操作、负载平衡操作、网络地址翻译操作等)。通过实现这种功能调用的堆栈,在一些实施例中,端口可以对传入和/或传出的消息实现一系列i/o操作。而且,在一些实施例中,数据路径中的其它模块(诸如vnic等)实现i/o功能调用操作(诸如防火墙功能调用),而不是端口260。

在一些实施例中,sfe端口260的功能调用中的一个或多个可以是一个或多个服务节点115,其处理基于属性的服务规则存储装置125中的基于属性的服务规则。在一些实施例中,每个服务节点115具有其自己的基于属性的服务规则存储装置125。为了对数据消息流执行其基于属性的服务操作,在一些实施例中,服务引擎115让属性解析引擎120首先将与数据消息流相关联的服务标签转换成属性的子集,然后使用这个属性子集来识别其服务规则数据存储装置125中的服务规则以供其处理。

具体而言,为了服务引擎115执行其服务检查操作,调用服务引擎的转发元件端口260提供端口接收的消息的属性集合。在一些实施例中,该消息属性集合是消息标识符,诸如传统的五元组标识符,其包括消息的源标识符、目的地标识符、源端口、目的地端口和协议。在一些实施例中,标识符值中的一个或多个可以是为逻辑网络定义的逻辑值(例如,可以是在逻辑地址空间中定义的ip地址)。在其它实施例中,所有标识符值都在物理域中定义。在其它实施例中,一些标识符值在逻辑域中定义,而其它标识符值在物理域中定义。

当vm在带内发送服务标签时,由sfe端口提供给服务节点的属性集合在一些实施例中还包括用于数据消息流的服务标签。在将这些标识符提供给服务引擎之前,sfe端口会从它接收到的消息中提取这些标识符。当vm在带内发送服务标签时,在一些实施例中,sfe端口260让其调用的i/o模块之一从数据消息流中提取服务标签,并将这个服务标签提供给服务引擎115。

在其它实施例中,vm不在带内与数据消息流一起发送服务标签,而是在带外将服务标签发送到在主机200上执行的一个或多个模块。在这些实施例的一些中,sfe端口不向其调用的服务节点115提供服务标签。代替地,服务节点115(1)从它从sfe端口接收的消息标识符(例如,五元组标识符)中,以及(2)从服务节点在带外从vm接收的、识别消息标识符的服务标签的记录中识别用于数据消息流的服务标签。

在其它实施例中,服务节点115将其从sfe端口接收的消息标识符(例如,五元组标识符)提供给另一个模块,该另一个模块然后(1)从该模块从服务节点接收的消息标识符(例如,五元组标识符),以及(2)从这个模块在带外从vm接收的、识别数据消息流的服务标签的记录中识别用于数据消息流的服务标签。在一些实施例中,这个模块是属性解析引擎120。因此,在一些实施例中,服务节点向属性解析引擎120提供消息的标识符集合(例如,五元组标识符),并且这个引擎首先将这个标识符集合映射到服务标签,然后将这个服务标签映射到它返回给服务节点的属性子集。在其它实施例中,服务节点或者识别数据消息本身的服务标签或者从另一个模块获得它,然后将这个服务标签提供给属性解析引擎120,以便获得数据消息流的属性子集。

在从属性解析引擎120接收到数据消息流的属性子集之后,在一些实施例中,服务引擎115基于存储在服务规则存储装置125中的服务规则来执行其服务操作。为了执行其服务操作,服务引擎115将接收到的属性子集与为服务规则存储的对应属性集合进行匹配。在一些实施例中,服务引擎115通过服务引擎接口(sei)227从一个或多个控制器接收其存储在其存储装置125中的服务规则,如下面进一步描述的。

在一些实施例中,数据存储装置125中的每个服务规则具有规则标识符和动作参数集合。如上面所提到的,在一些实施例中,服务规则的规则标识符可以根据不是l2-l4报头参数的一个或多个参数(例如,是l7参数)来定义。在一些实施例中,规则标识符还可以包括l2-l4报头参数。而且,在一些实施例中,可以根据个体值或通配符值来指定规则标识符中的一个或多个参数。而且,在一些实施例中,规则标识符可以包括个体值的集合或组标识符,诸如安全组标识符、计算构造标识符、网络构造标识符等。

为了将接收到的属性子集与规则相匹配,服务引擎将接收到的属性子集与存储在服务规则数据存储装置125中的服务规则的关联标识符进行比较。在识别出匹配的规则后,服务引擎115基于匹配规则的动作参数(例如,基于允许/丢弃参数、负载均衡标准、加密参数等)执行服务操作(例如,防火墙操作、负载平衡操作、加密操作、其它中间盒操作等)。

在一些实施例中,服务规则数据存储装置125以分层方式定义,以在消息的属性子集匹配多个规则时,确保在匹配较低优先级规则之前消息规则检查将匹配较高优先级规则。而且,在一些实施例中,服务规则数据存储装置125包含默认规则,该默认规则指定不能识别任何其它服务规则的任何消息规则检查的默认动作;在一些实施例中,这个默认规则将是针对所有可能的属性子集的匹配,并确保服务规则引擎将返回针对所有接收到的属性子集的动作。在一些实施例中,默认规则将不指定服务。

例如,当消息是与两个机器之间的一个通信会话相关联的一个流的一部分时,多个消息可以具有相同的消息标识符属性集合。因而,在基于属性解析引擎120为与数据消息流的第一数据消息相关联的服务标签提供的属性子集匹配数据消息与存储装置125中的服务规则之后,一些实施例的服务引擎将服务规则(或对服务规则的引用)存储在连接状态数据存储装置225中,以便稍后可以将这个服务规则用于相同流的后续数据消息。

在一些实施例中,连接状态数据存储装置225存储服务引擎115针对不同消息标识符集合(例如,针对识别不同数据消息流的不同五元组标识符)识别的服务规则或对服务规则的引用。在一些实施例中,连接状态数据存储装置225存储每个服务规则或对服务规则的引用,其具有从匹配消息标识符集合生成的标识符(例如,五元组标识符和/或散列值)。在利用服务规则数据存储装置125检查特定消息标识符集合之前,一些实施例的服务规则引擎115检查连接状态数据存储装置225以确定这个存储装置是否具有用于这个消息标识符集合的高速缓存服务。如果没有,那么服务规则引擎然后指示属性解析引擎120将消息流的服务标签映射到属性子集,然后检查服务规则数据存储装置125以寻找与识别出的属性子集匹配的服务规则。当连接状态数据存储装置具有用于特定消息标识符集合的条目时,服务引擎基于这个服务规则的动作参数集合执行其服务操作。

图3概念性地图示了上下文过滤器110每当从gi代理215接收属性集合时执行的过滤处理300。该处理识别与由基于属性的(一个或多个)服务引擎处理的服务规则相关的属性子集,在必要时为识别出的属性子集生成服务标签,并将这个服务标签提供给gi代理215。如图所示,处理300最初从gi代理215接收(在305处)属性集合。

接下来,在310处,该处理确定它是否已经处理了这个相同的确切属性集合。为了做出这个确定,该处理在一些实施例中将它处理的每个属性集合以及该处理为每个属性集合标识的服务标签存储在高速缓存存储装置中。在310处,在这些实施例中,处理300检查该高速缓存存储装置以确定其是否已经处理了在305处接收的属性集合。当处理300确定(在310处)它先前已经处理了在310处接收的属性集合时,它向gi代理215提供(在340处)处理300先前为这个属性集合生成的服务标签(例如,从其高速缓存存储装置检索这个服务标签,并将这个服务标签提供给gi代理215)。在340之后,该处理结束。

当处理确定(在310处)它先前没有处理过接收到的属性集合时,该处理选择(在315处)这个接收到的集合中的属性,并确定(在320处)这个所选择的属性是否在当前在基于属性的服务引擎115的服务规则中使用的属性集合中。在一些实施例中,上下文过滤器在执行处理300之前从服务引擎收集在服务规则标识符中使用的属性。而且,在一些实施例中,当每个服务规则被删除、添加或修改时,上下文过滤器修改从服务规则收集的属性集合以反映这些改变。在这些实施例的一些中,该处理调整服务标签定义以考虑这些服务规则改变,并在其自己的服务标签定义存储装置130中调整这些定义,并将这些新定义提供给属性解析引擎120,使得这个引擎可以将这些新定义存储在其存储装置135中。

当该处理确定(在320处)所选择的属性在从服务规则收集的属性集合中时,该处理将这个属性添加(在325处)到它为gi代理创建的属性子集,然后过渡到330。当处理确定所选择的属性不在从服务规则收集的属性集合中时,该处理还从320过渡到330。通过从320过渡到330而不将所选择的属性添加到定义的属性子集,该处理有效地从服务标签定义中过滤掉所选择的属性。

在330处,该处理确定它是否已检查从gi代理接收的属性集合中的所有属性。如果没有,那么处理转回到315以选择接收到的属性集合中的另一个属性,然后重复操作320以便或者将这个所选择的属性添加到属性子集(在325),或者过滤掉这个所选择的属性。当该处理确定(在330处)它已检查接收到的属性集合中的所有属性时,该处理确定(在335处)它是否先前通过检查接收到的属性集合中的每个属性而为其刚刚生成的属性子集创建了服务标签。

为了做出这个确定(在335),在一些实施例中,处理300检查服务标签存储装置130以确定是否已经为该处理在这个迭代中创建的确切属性子集在这个存储装置中创建了任何服务标签。当处理300确定(在335处)它先前已为其刚刚生成的确切相同的属性子集生成服务标签时,它向gi代理215提供(在340处)它已存储在其服务标签存储装置130中的用于该属性子集的服务标签。在340之后,该处理结束。应当注意的是,在一些实施例中,处理300不在310处执行检查,而是在335处执行检查,而在其它实施例中,处理不在335处执行检查,而是在310处执行检查。

当处理300确定(在335处)它先前没有为其刚刚生成的确切相同的属性子集生成服务标签时,它(在345处)为这个属性子集创建服务标签,并在服务标签定义存储装置130中存储这个服务标签的定义(包括服务标签的标识符及其相关联的属性子集)。在一些实施例中,服务标签定义还包括主机标识符,该主机标识符标识在其上生成服务标签的主机。如下面进一步描述的,属性解析引擎可以使用这个主机标识符来区分由不同主机200上的不同上下文过滤器110生成的完全相同的服务标签。

在345处,该处理还向gi代理215提供服务标签,其在305处提供属性集合。而且,该处理向属性解析引擎120提供(在345处)服务标签定义(其包括服务标签的标识符、其关联的属性子集,以及在一些情况下的主机标识符),以便它可以在其映射存储装置135中存储这个定义。在345之后,该处理结束。虽然图3图示了为从gi代理215接收的属性集合创建服务标签,但普通技术人员将认识到,在一些实施例中,当在主机的(一个或多个)服务节点的任何服务规则中没有使用提供的属性时,不生成服务标签。

图4概念性地图示了当端口260针对与连接到端口260的vm205相关联的接收到的消息调用引擎115时服务引擎115执行的处理400。在一些实施例中,接收到的消息可以是由端口的vm发送的消息。如图所示,处理400最初接收(在405处)数据消息的标识符集合(例如,l2、l3和/或l4报头值的集合)。在一些实施例中,通过端口或通过由端口调用的i/o模块从消息中提取接收到的消息标识符。例如,在一些实施例中,接收到的属性集合包括消息的提取出的五个元组。

接下来,在410处,处理400确定其是否在其连接状态数据存储装置225中具有用于接收到的消息标识符集合的条目。这是因为服务引擎可以先前已经对具有完全相同的属性集合的另一个消息执行了服务规则检查,并且将这个检查的结果高速缓存在连接状态数据存储装置225中。在一些实施例中,该处理检查连接状态数据存储装置225以查找具有与接收到的标识符集合或接收到的标识符集合的散列匹配的记录标识符的记录。

当处理识别出(在410处)连接状态数据存储装置225中与接收到的消息标识符集合匹配的条目时,该处理检索(在415处)存储在连接状态数据存储装置225中识别出的条目中的服务动作参数集合。在415处,该处理然后基于检索到的服务动作参数集合对数据消息执行服务动作。在415之后,处理400结束。

另一方面,当处理无法识别(在410处)连接状态数据存储装置225中的条目时,该处理指示(在420处)属性解析引擎120从与数据消息关联的服务标签识别数据消息的属性子集。为此,必须首先识别与接收到的数据消息相关联的服务标签。

在不同实施例中不同地识别服务标签。在一些实施例中,服务引擎从调用它的sfe端口接收数据消息的服务标签(例如,在这个端口提取或让另一个模块从数据消息报头或相关联的控制消息传递(例如,syn消息)中提取服务标签之后)。在其它实施例中,服务引擎115将消息标识符集合(在405处接收的)提供给属性解析引擎120,并让这个引擎120在基于这个服务标签识别属性子集之前识别服务标签。在这些实施例的一些当中,属性解析引擎通过带外通信接收数据消息的服务标签(例如,接收识别数据消息的五元组标识符的服务标签的记录),并在存储装置中存储这个服务标签和数据消息的标识符,引擎120稍后在从服务引擎115接收到服务标签时访问该标识符。在还有其它实施例中,源vm的gi代理215将服务标签及其相关联的(一个或多个)数据消息标识符提供给服务引擎,该服务引擎存储这个标签及其相关联的(一个或多个)消息标识符以便随后(在420处)用来识别接收到的数据消息的服务标签。

在425处,处理400从属性解析引擎接收与消息的服务标签相关联的属性子集。属性解析引擎120通过在其映射存储装置135中识别其记录标识符中具有服务标签的记录来识别属性子集,并从这个匹配的记录中检索属性子集。

在430处,该处理识别服务数据存储装置125中与接收到的属性子集匹配的服务规则。为了识别服务规则,处理400搜索服务规则数据存储装置125以识别具有与从属性解析引擎接收的属性子集匹配的属性子集的条目。在一些实施例中,服务规则数据存储装置125以分层方式定义,以在消息的属性子集匹配多个规则时确保在匹配较低优先级规则之前消息规则检查将匹配较高优先级规则。

在识别匹配的服务规则之后,处理400检索(在435处)存储在服务规则数据存储装置125的识别出的条目中的服务动作参数集合,并基于检索出的服务动作参数集合对数据消息执行服务。此类动作的示例包括防火墙操作、负载平衡操作、加密操作、其它中间件操作等。

在服务引擎执行服务操作之后,当服务操作不导致丢弃数据消息时,服务引擎将处理后的数据消息提供(在435处)到sfe端口。然后,sfe端口可以调用另一个服务引擎或将这个消息提供给sfe,以将数据消息转发到数据消息的目的地。当服务操作要求丢弃数据消息(例如,防火墙操作要求丢弃数据消息)或重定向时,服务引擎通知sfe210应当丢弃或重定向数据消息。在435之后,该处理在连接状态数据存储装置225中为接收到的属性集合创建(440)条目,并将识别出的服务动作存储在这个条目中。该处理在440之后结束。

当dcn(例如,vm)在数据消息流内带内嵌入服务标签时,服务标签可以用于在其它电器和/或主机计算机上(例如,在除了dcn在其上执行的主机计算机之外的主机计算机上)执行服务操作。在这种情况下,其它电器和/或主机计算机上的属性解析代理将服务标签翻译成属性子集,然后该属性子集被用于识别要针对数据消息流处理的一个或多个服务规则。

为了促进在其它电器和/或主机计算机处处理基于属性的服务规则,在一些实施例中创建服务标签定义的主机计算机将这个定义发送到其它电器/主机计算机。在这些实施例的一些当中,其它设备(即,其它电器或主机计算机)的模块(例如,上下文过滤器或属性解析引擎)从生成服务标签定义的主机计算机的上下文过滤代理接收或检索服务标签定义。在这些实施例的一些当中,这种通信是这两个设备之间的控制信道通信。在其它实施例中,这种通信通过控制器集合(例如,用服务规则配置设备的控制器集合)进行。

如上面所提到的,在一些实施例中,服务标签定义识别与每个服务标签相关联的属性子集。在一些实施例中,每个服务标签的定义还包括唯一标识符(例如,主机标识符),其允许从多个主机计算机接收服务标签定义的设备的属性解析代理将服务标签正确地映射到属性,这是因为不同的主机计算机可以使用相同的服务标签,并且属性解析代理需要嵌入在服务标签中的唯一标识符来区分两个相似的服务标签。

图5呈现了处理500,其概念性地图示了在源vm的主机计算机和目的地vm的主机计算机上执行的操作集合,以基于在源vm的主机计算机上定义的服务标签在目的地vm的主机计算机上执行服务操作。源vm是作为数据消息的源的vm(即,是发送数据消息的vm),而目的地vm是作为数据消息的目的地的vm(即,是接收数据消息的vm)。在这个图所示的流程图中,示出了虚线箭头,用于可能在它们之间具有任意延迟量的操作。

如图所示,当源vm的主机计算机的上下文过滤器110为由源vm的gi代理215提供的属性集合生成服务标签时,处理500开始(在505处)。上面参考图3解释了如何为属性集合创建服务标签的一个详细示例。在一些实施例中,所生成的服务标签包括源vm的主机计算机的主机标识符,使得目的地vm的主机计算机处的属性解析引擎可以唯一地识别服务标签。

上下文过滤器110向属性集合的gi代理提供(在505处)生成的服务标签,然后gi代理确保源vm包括这个服务标签以及与gi最初提供的属性数据集合相关的任何新的数据消息流。在一些实施例中,gi代理215将服务标签嵌入隧道封装报头(例如,geneve报头、vxlan报头、gre报头等)的syn分组中。在其它实施例中,gi代理215将服务标签连同一个或多个数据消息标识符的集合一起发送到主机计算机上的一个或多个模块,所述一个或多个数据消息标识符涉及与这个服务标签相关的一个或多个数据流的集合。然后,这些模块中的一个将服务标签嵌入在源和主机计算机上的两个隧道端点模块之间建立的隧道的隧道报头中。

代理还为涉及相同属性集合的任何未来数据流高速缓存这个服务标签。这针对上下文过滤节点交互优化代理。一些实施例基于时间间隔策略使这个高速缓存到期。例如,对于基于身份的防火墙服务,一旦用户登录,用户所属的订户组通常就保持不变,因此端点不需要继续请求新的服务标签。在其它情况下,它可以继续为每个新事件/连接生成上下文。

在生成(在505处)服务标签并将这个标签提供给gi代理215之后,上下文过滤器将服务标签分发(在510处)到其它主机计算机的上下文过滤器。在一些实施例中,源计算机的上下文过滤器在每次定义服务标签时发送服务标签的定义,而在其它实施例中,上下文过滤器等待预定的时间间隔以尝试收集一批服务标签以进行分发。而且,在一些实施例中,主机计算机的上下文过滤器直接向彼此发送服务标签定义(通过数据中心的中间网络架构)。在其它实施例中,源计算机的上下文过滤器将其新服务标签定义发送到一个或多个控制器的集合(例如,配置主机计算机的服务节点的服务规则的控制器),然后将服务标签定义分发到其它主机计算机的上下文过滤器。

一些实施例限制服务标签的分发的跨度和范围,使得控制平面不会被这个流量陷入困境。这些实施例中的一些由于诸如逻辑交换机或网络的跨度或某些管理程序上的地址集合的存在之类的因素而限制分发的范围。通过传输服务标签,在底层流的覆盖报头中,一些实施例能够容易地在数据中心中移动完整的动态上下文。

图5图示了在源计算机的上下文过滤器110分发(在510)用于所生成(在505处)的服务标签的服务标签定义之后,目的地vm的主机计算机的上下文过滤器110接收(在515处)服务标签定义。如上面所提到的,服务标签的定义包括服务标签标识符、一个或多个属性的子集,以及在那里定义服务标签的主机计算机的主机标识符。目的地计算机的上下文过滤器110将其接收的服务标签定义提供给其计算机的属性解析引擎120。

在向gi代理提供服务标签(在505处)之后,源vm发送(在520处)服务标签以及数据消息。例如,在一些实施例中,源vm沿着隧道将数据消息发送到目的地vm或目的地vm的主机计算机上的模块,并将服务标签插入隧道报头中。在其它实施例中,代替配置源vm以在隧道报头中插入服务标签,gi代理215配置(由源vm的sfe端口或vnic调用的)i/o模块之一以将这个服务标签插入到隧道报头中。在这些实施例的一些当中,这个i/o模块是执行vm的隧道封装操作的模块。换句话说,在这些实施例中,源vm不建立到目的地计算机的隧道,而是源vm的封装i/o模块建立这个隧道。

一旦与服务标签一起发送了数据消息(在520处),目的地vm的sfe端口就接收(在525处)这个数据消息。然后,目的地vm的sfe端口调用(在530处)目的地vm的i/o模块,以从接收到的数据消息中解封装隧道报头。在解封装隧道报头时,i/o模块从报头中提取(在530处)服务标签,并将这个服务标签提供给目的地vm的sfe端口。然后,这个端口基于提取出的服务标签调用(在530处)服务节点115以对数据消息执行服务操作(例如,防火墙操作、负载平衡操作、加密操作或任何其它中间盒操作)。在一些实施例中,目的地vm的sfe端口还向服务节点115提供接收到的数据消息的其它属性(诸如接收到的数据消息的五元组标识符),服务节点115不仅基于服务标签而且还基于这些其它属性来选择其服务规则。

在535处,服务节点然后将服务标签提供给属性解析引擎120,属性解析引擎120然后基于其映射数据存储装置135中的映射记录将这个服务标签映射到属性子集。这个存储装置存储其计算机的上下文过滤器生成或从其它主机的上下文过滤器接收的所有服务标签定义。当目的地计算机的映射数据存储装置135存储具有相同服务标签标识符的两个服务标签时,属性解析引擎使用接收到的服务标签的主机标识符来选择具有相同主机标识符的存储的服务标签。在识别出与接收到的数据消息的服务标签匹配的存储的服务标签之后,属性解析引擎检索所存储的服务标签的属性子集,并且将这个属性子集返回(在535处)到调用它的服务节点。

接下来,在540处,目的地vm的主机计算机的服务引擎然后在其服务规则存储装置125中识别用于数据消息的服务规则。为此,服务引擎115使用返回的属性子集来识别服务规则存储装置125中的带有具有匹配的属性子集的规则标识符的最高优先级服务规则。在一些实施例中,服务引擎115不仅通过使用返回的属性子集来识别匹配的服务规则,而且还使用接收到的数据消息的一个或多个其它标识符(例如,使用接收到的数据消息的五个元组标识符中的一个或多个)。

一旦服务引擎115识别出与服务标签的关联属性子集匹配的服务规则,一些实施例的目的地vm的服务引擎115就将这个规则或对这个规则的引用存储在高速缓存连接状态存储装置225中(连同数据消息的标识符(例如,五元组标识符)一起),以便这个引擎随后可以访问这个连接存储装置以寻找作为同一个流的一部分的其它数据消息,以识别这个服务规则。如上面所提到的,在一些实施例中,服务引擎首先当连接状态存储装置225不存储用于接收到的数据消息流的任何记录时在请求属性解析引擎将服务标签映射到属性子集之前检查它们的连接状态存储装置225。

而且,在识别出(在540处)匹配的服务规则之后,服务引擎115基于匹配的服务规则的服务动作参数集合对接收到的数据消息执行服务操作。此类服务操作的示例包括防火墙操作、负载平衡操作、入侵检测操作、入侵防御操作、加密操作和其它类型的中间盒操作。

一旦服务引擎115执行了数据消息的服务操作,服务引擎就通知目的地vm的sfe端口。当服务操作不导致数据消息被丢弃或重定向时,目的地vm的sfe端口将数据消息提供给目的地vm。在一些实施例中,在数据消息不会因这些操作而被丢弃或重定向的情况下,在数据消息被提供到目的地vm之前,目的地vm的sfe端口相继地调用多个服务节点115以基于服务标签和/或标识符对数据消息顺序地执行多个服务操作。

图6图示了在一些实施例中如何管理服务引擎115的示例。这个图图示了数据中心中的多个主机600。如图所示,每个主机包括服务引擎115、上下文过滤器110、属性解析引擎120、若干vm205,以及sfe210。它还图示了用于管理服务引擎115、vm205和sfe210的控制器集合610。如上面所提到的,在一些实施例中,上下文过滤器110通过控制器集合将服务标签定义传递给彼此,而在其它实施例中,这些过滤器将这些定义直接传递给彼此。控制器集合通过网络650(例如,通过局域网、广域网、网络的网络(诸如互联网)等)与主机通信。主机还通过这个网络650彼此通信连接。

一些实施例使用以下服务标签数据结构:

service_tag_n={uid,

sn1=<nsg1,nsg2,nsg3>,

sn2=<nsg2,nsg4,nsg5>,

sn3=<nsg3,nsg5>},

其中sn1、sn2和sn3是三个服务节点(例如,防火墙、负载平衡器和加密器),uid是主机标识符,nsg代表网络安全组,并且nsgl-nsg5是五个网络安全组标识符。如这个示例所示,一些实施例的服务标签为不同的服务节点定义不同的属性子集。在这个示例中,nsgl、nsg2和nsg3是用于服务节点sn1的属性子集,nsg2、nsg4和nsg5是用于服务节点sn2的属性子集,并且nsg3和nsg5是用于服务节点sn3的属性子集。

对于用户身份用例,nsg可以由ad(活动目录)组组成。例如,可以将防火墙规则指定为

src:nsgroup:nurse,dest:internet_nsg,action:block,http,,

其指示应当丢弃来自由nurses使用的vm的、寻址到目的地internet_nsg的http分组。

在一些实施例中,上下文过滤节点在启动时搜集所有与身份相关的nsgroup及其与服务规则(例如,防火墙规则、加密规则、负载平衡规则等)有关并在内部存储它的成员资格信息。它与服务引擎交互以搜集这个信息,或者与作为上下文过滤节点和服务引擎之间的接口的更高级别策略引擎交互。

一些实施例的一个具体实现如下。在vm中的每个网络连接操作中,在vm内运行的gi代理(例如,epsec代理)向上下文过滤节点传递上下文(例如,ad用户id、ad组id集合、源ip、源端口、目的地ip、目的地端口)。基于上下文中的这些ad组,上下文过滤节点确定用于这个上下文的(一个或多个)关联nsgroup,并生成具有唯一主机标识符的服务标签。它将这个服务标签传递回gi代理。gi代理将这个服务标签嵌入到syn分组geneve报头中。代理还高速缓存这个服务标签,以用于来自这个用户的任何未来连接。这优化代理到上下文过滤节点交互。对于身份防火墙用例,上下文过滤节点利用为客人进行的每个连接生成的服务标签对防火墙服务节点进行编程。防火墙服务节点维护所有服务标签,并在从客人接收到具有嵌入在geneve报头中的服务标签的syn分组的任何时候使用它们。它使用服务标签映射到nsgroup,然后将它们与规则匹配。

当ad组成员资格或策略nsgroup成员资格改变时,由上下文过滤器节点生成的服务标签可能改变。在一些实施例中,上下文过滤器节点在管理平面中注册ad组成员资格改变通知。对于对成员资格的任何改变,管理平面通知上下文过滤器,然后上下文过滤器使受影响的服务标签失效,并根据需要重新生成这些服务标签。

通过在每个主机上放置上下文过滤节点和属性解析引擎,上述实施例提供了用于在数据中心中提供上下文丰富服务的高效、可扩展的方法。通常由不同的应用和事件在数据中心中各个点处生成大量上下文。诸如登录id、订户/应用所属的组id、与连接相关的多个属性(诸如位置、设备信息、访问级别等)之类的上下文。

上下文本身对于各种服务节点非常重要/珍贵,但是由于各种问题,这种上下文信息通常不在数据中心内被消费。首先,有时,这种上下文(诸如订户所属的活动目录组sid号)可以运行到数百或数千个值。但是,通常,服务规则仅使用上下文信息的一部分,诸如可能消耗一些sid。其次,上下文的大量性质使得上下文传输到各种解释和执行点是不可能的,从而使其无用。第三,在典型的数据中心中,数千个端点生成上下文。中央节点不可能完整地处理这个上下文并将其分发到各种消费点。

因而,一些实施例的分布式上下文过滤和映射允许消费上下文的量恰好为消费所需的适当量,因此消除了不必要的上下文数据。这个方法还将上下文数据标记化,以便可以将上下文传输到数据中心网络内的任何点或更远。

许多上述特征和应用被实现为软件处理,其被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的一组指令。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器的核心、或其它处理单元)执行时,它们使得这(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括,但不限于,cd-rom、闪存驱动器、ram芯片、硬盘驱动器、eprom等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。

在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者存储在磁存储装置中的应用,其可以被读入到存储器中用于被处理器处理。此外,在一些实施例中,多个软件发明可以被实现为更大程序的子部分,同时保持明显的软件发明。在一些实施例中,多个软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装以在一个或多个电子系统上操作时,该软件程序定义运行并执行该软件程序的操作的一个或多个特定的机器实现。

图7概念性地示出了实现本发明的一些实施例的计算机系统700。计算机系统700可以用于实现任何上述主机、控制器和管理器。由此,它可以用于执行任何上述处理。该计算机系统包括各种类型的非临时性机器可读介质和用于各种其它类型的机器可读介质的接口。计算机系统700包括总线705、(一个或多个)处理单元710、系统存储器725、只读存储器730、永久存储设备735、输入设备740和输出设备745。

总线705统一地表示通信地连接计算机系统700的众多内部设备的所有系统、外围设备和芯片组总线。例如,总线705将(一个或多个)处理单元710与只读存储器730、系统存储器725和永久存储设备735通信地连接。

从这些各种存储器单元中,(一个或多个)处理单元710检索要执行的指令和要处理的数据,以便执行本发明的处理。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。只读存储器(rom)730存储由(一个或多个)处理单元710和计算机系统的其它模块所需要的静态数据和指令。另一方面,永久存储设备735是读和写存储器设备。这个设备是即使当计算机系统700关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备735。

其它实施例使用可去除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备735一样,系统存储器725是读和写存储器设备。但是,与存储设备735不同,系统存储器是易失性读和写存储器,诸如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的处理被存储在系统存储器725、永久存储设备735和/或只读存储器730中。从这些各种存储器单元中,(一个或多个)处理单元710检索要执行的指令和要处理的数据,以便执行一些实施例的处理。

总线705还连接到输入和输出设备740和745。输入设备使用户能够传递信息和选择到计算机系统的命令。输入设备740包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备745显示由计算机系统生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(crt)或液晶显示器(lcd)。一些实施例包括诸如用作输入和输出设备两者的触摸屏的设备。

最后,如图7所示,总线705还通过网络适配器(图中未示出)将计算机系统700耦合到网络765。以这种方式,计算机可以是计算机的网络(诸如局域网(“lan”)、广域网(“wan”)、或内联网、或诸如互联网的网络的网络)的一部分,计算机系统700的任何或所有组件可以与本发明结合使用。

一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括ram、rom、只读压缩盘(cd-rom)、可记录压缩盘(cd-r)、可重写压缩盘(cd-rw)、只读数字多功能盘(例如,dvd-rom,双层dvd-rom)、各种可记录/可重写dvd(例如,dvd-ram、dvd-rw、dvd+rw等)、闪存存储器(例如,sd卡、小型sd卡、微型sd卡等)、磁和/或固态硬盘驱动器、只读和可记录blu-盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集合的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释器的微处理器执行的更高级代码的文件。

虽然以上讨论主要指执行软件的微处理器或多核心处理器,但是一些实施例由一个或多个集成电路来执行,诸如专用集成电路(asic)或现场可编程门阵列(fpga)。在一些实施例中,这种集成电路执行在该电路自身上存储的指令。

如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂或临时信号。

虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。例如,几个图概念性地示出了处理。这些处理的特定操作可能没有以所示出和描述的确切顺序执行。特定操作可能没有在一系列连续的操作中执行,并且不同的特定操作可能在不同的实施例中执行。此外,处理可以使用若干子处理来实现,或者作为更大的宏处理的一部分来实现。因此,本领域普通技术人员将理解,本发明不受上述说明性细节的限制,而是由所附权利要求来定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1