在网络元件中对消息有效载荷执行安全性功能的制作方法

文档序号:7950003阅读:431来源:国知局
专利名称:在网络元件中对消息有效载荷执行安全性功能的制作方法
技术领域
本发明一般地涉及计算机网络中的网络元件,例如交换机和路由器。更具体而言,本发明涉及用于在网络元件中对消息有效载荷执行安全性功能的方法和装置。
背景技术
这一部分中描述的方法可以实现,但是不一定是先前已想到或已实现的方法。因此,除非另外指出,否则这一部分中描述的方法不是该申请的权利要求的现有技术,并且也不应当因为被包括在这一部分中而看作是现有技术。
在商业到商业环境中,运行在计算机上的应用一般会与运行在其他计算机上的其他应用通信。例如,运行在计算机“X”上的应用“A”可能向运行在计算机“Y”上的应用“B”发送指示订单的实质内容的消息。
计算机“X”可能远离计算机“Y”。为了使计算机“X”发送消息到计算机“Y”,计算机“X”可能通过计算机网络发送消息,计算机网络例如是局域网(LAN)、广域网(WAN)或互联网,例如因特网。为了通过这种网络发送消息,计算机“X”可能使用一套通信协议。例如,计算机“X”可能使用诸如因特网协议(IP)之类的网络层协议以及诸如传输控制协议(TCP)之类的传输层协议来发送消息。
假定消息利用TCP发送,则消息被封装到一个或多个数据分组中;同一消息的不同部分可以在不同分组中发送。继续以上示例,计算机“X”通过网络向计算机“Y”发送数据分组。处于计算机“X”和计算机“Y”之间的一个或多个网络元件可以接收分组,确定分组的下一“跳”,并向计算机“Y”发送分组。
例如,路由器“U”可能接收来自计算机“X”的分组,并且基于分组是去往计算机“Y”的,确定分组应当被转发到另一路由器“V”(路由上的下一“跳”)。路由器“V”可能从路由器“U”接收分组,并将分组发送到计算机“Y”。在计算机“Y”处,可以提取出分组的内容并重组该内容以形成原始消息,原始消息可以被提供给应用“B”。应用“A”和“B”可以不知道分组是经过路由器“U”和“V”路由的这一事实。事实上,不同的分组可以采取经过网络的不同路由。
分组经过网络所采取的路由可能是不安全的。网络中中介于应用“A”和“B”之间的各方可能能够截取分组并确定分组的内容。在分组包含机密或敏感信息的情况下,这种非法截取的后果可能是致命的。
为了阻止中间各方理解截取的分组并将其内容用于非法目的,应用可以在经过不可信网络发送包含这些消息的分组之前对消息加密。一种普遍的加密方法是公共密钥加密。例如,应用“A”可能想要利用公共密钥加密发送消息到应用“B”。因此,应用“A”可能利用应用“B的”公共密钥对消息加密。在经加密形式中,消息是不可理解的。由于消息是利用应用“B的”公共密钥加密的,因此只有应用“B的”私有密钥可被用于对消息解密,并且只有应用“B”拥有应用“B的”私有密钥。应用“A”可能在一个或多个分组内向应用“B”发送经加密消息,如上所述。在接收到经加密消息后,应用“B”可以使用应用“B的”私有密钥来对消息解密。在这样解密后,消息与消息被加密之前是相同形式的。另一种加密方法是对称密钥加密,其中应用“A”和“B”都使用相同的密钥来对消息加密和解密,并且只有应用“A”和“B”拥有该密钥。
在实践中,上述加密/解密过程可以比其最初看起来更加复杂。以公共密钥加密作为示例,在应用“A”可以对消息加密以发送到应用“B”之前,应用“A”需要获得应用“B”的公共密钥。为了将应用“B”的公共密钥提供给应用“A”,应用“B”的用户可能用电子邮件将该公共密钥告知应用“A”的用户。如果该方法被广泛使用,则应用“B”的用户将不仅需要用电子邮件将该公共密钥告知应用“A”的用户,还需要告知发送经加密消息到应用“B”的每一潜在发送者。而这种发送者的数量可能极大。
私有密钥有时会期满或丢失这一事实使该情形更加复杂。例如,如果计算机“Y”的硬盘驱动器崩溃,并且应用“B的”私有密钥只存储在硬盘驱动器上(在给定密钥的私有本质的情况下,这并非不合情理的场景),则应用“B的”私有密钥将丢失,并且应用“B”需要生成新的私有密钥。无论需要生成新的私有密钥的原因是什么,应用“B”都需要与新的私有密钥一起生成新的相应的公共密钥;新的私有密钥不能用于对已经利用旧的公共密钥加密的消息解密,因此应用“B”将需要通知上述所有发送者旧的公共密钥不再有效,相反应当使用新的公共密钥。
应用“A”的情况也是值得考虑的。应用“A”可能将经加密消息发送到许多不同的受者。每个受者可能具有不同的公共密钥。对于应用“A”的用户来说,组织如此多的不同公共密钥并使它们保持最新可能是很困难的。如果使用电子邮件方法来进行密钥分发,则用户的大多数时间可能消耗在发送和接收私有密钥或对称密钥上面。
有可能只有某些,而不是全部应用“A”发送的消息应当被加密。例如,应用“A”可能驻留在与另一应用“C”相同的可信网络上,因此,应用“A”不需要对要发送到应用“C”的消息加密。又例如,应用“A”可能向另一应用“D”发送本质上并不机密或敏感的消息,因此,应用“A”不需要对要发送到应用“D”的消息加密。
由于加密和解密有时涉及显著的处理开销,因此除了上述的密钥交换外,经常希望避免不必要的加密和解密。然而,照目前的情况,对是否对消息加密或解密的确定通常是由应用的用户对逐个消息进行的,即使在用户预先以合理的确定性知道了具有某些共同特性的所有消息需要或不需要是安全的的情况下也是如此。这些太过频繁的确定增加了用户的负担,并且消耗了本来可能应用于更加有意义的工作的时间。
从而,上述的“由应用管理的安全性”方法在应用于其中大量应用需要以安全方式彼此通信的系统时是不实际的。需要一种更加实际的用于允许大量应用以安全方式彼此通信的技术。


本发明在附图中以示例方式而非以限制方式示出,在附图中相似的标号指代类似的元件,其中图1是图示了系统的一个实施例的概况的框图,在系统中,一个或多个网络元件代表应用执行消息有效载荷处理功能;图2A示出了图示在网络元件中对消息有效载荷(或其一部分)执行安全性功能的方法的一个实施例的概况的流程图;图2B示出了图示在网络元件中执行认证功能的方法的一个实施例的概况的流程图;图3A-F示出了图示在代表应用或作为中介应用的网络元件处执行安全性功能的方法的一个实施例的流程图;图4示出了可能与特定消息分类相关联的样本流;图5是图示了可以在其上实现实施例的计算机系统的框图;图6是图示了某一路由器的一个实施例的框图,在该路由器中,监管器刀片(blade)引导某些分组流去往AONS刀片和/或其他刀片;图7是图示了根据一个实施例在AONS网络中涉及的各种组件的图;图8是示出了示例性AONS节点内的功能模块的框图;图9是示出了可以对消息流量执行的以便只产生将在AONS层被处理的一组选定流量的多层次过滤的图;图10是图示了根据云视角的AONS云内的消息路径的图;图11A和图11B是图示了请求/响应消息流的图;图12A和图12B是图示了替换请求/响应消息流的图;图13是图示了单向消息流的图;图14是图示了替换单向消息流的图;图15A和图15B是图示了具有可靠消息传递的请求/响应消息流的图;图16是图示了具有可靠消息传递的单向消息流的图;图17是图示了同步请求和响应消息的图;图18是图示了样本单向端到端消息流的图;图19是图示了AONS节点内的消息处理模块的图;
图20是图示了AONS节点内的消息处理的图;图21、图22和图23是图示了AONS配置和管理框架内的实体的图;以及图24是图示了AONS监视体系结构的图。
具体实施例方式
描述了一种用于在网络元件中对消息有效载荷执行安全性功能的方法和装置。在下面的描述中,出于说明目的,给出了大量特定细节以提供对本发明的完全理解。然而,本领域技术人员应当清楚,没有这些特定细节也可以实施本发明。在其他实例中,公知的结构和设备以框图形式示出以避免不必要地混淆本发明。
实施例根据下面的大纲进行描述1.0总论2.0结构和功能概述3.0实现示例3.1多刀片体系结构3.2在网络元件中对消息有效载荷执行安全性功能3.3动作流3.4AONS示例3.4.1AONS总论3.4.2AONS术语3.4.3AONS功能概述3.4.4AONS系统概述3.4.5AONS系统元件3.4.6AONS示例性特征3.4.7AONS功能模块3.4.8AONS工作模式3.4.9AONS消息路由3.4.10流、BladeletsTM和ScriptletsTM
3.4.11AONS服务3.4.12AONS配置和管理3.4.13AONS监视3.4.14AONS工具4.0实现机制-硬件概述5.0扩展和替换1.0总论在本发明中实现了在前述背景技术中给出的需要以及将从下面的描述中变清楚的其他需要和目的,本发明在一个方面中包括一种用于在网络元件中代表应用对消息有效载荷执行安全性功能的方法。根据一个实施例,在网络元件(例如路由器、交换机、网络用具或附接或连接到交换机或路由器并执行OSI第2层和更高层的处理的其他设备)处接收一个或多个数据分组。在网络元件处,对包含在一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行加密功能或解密功能。根据一个实施例,网络元件代表应用执行认证功能。从而,网络元件可以通过对消息执行与安全性相关的功能来处理应用层消息。
由于诸如路由器或交换机之类的网络元件可以对消息执行加密和解密功能,因此发送和接收应用减轻了执行这些功能的负担。网络元件可以访问公共、私有和/或对称密钥,以使得网络元件可以使用这些密钥来对满足指定标准的消息执行指定的密码操作。结果,这些密钥不需要在受密码保护的通信中涉及的应用之间分发和再分发。当特定密钥需要被更新时,密钥可以在中介于应用的相关网络元件处更新。应用甚至不需要“知道”应用发送和接收的消息是受密码保护的这一事实。
根据一个实施例,处理应用层消息包括在概念上将应用层消息的内容与一个或多个数据分组的其余部分分离,并以基于与内容相关联的语义的方式检查并解释内容。这类比分组级别检查粒度更细的检查可以被称为“深度内容检查”。例如,多部分(MIME)消息的每个部分可以基于与该部分相关联的语义被独立解释、检查和处理。例如,如果多部分消息的一部分是JPEG图像,则该部分被基于JPEG语义检查;如果多部分消息的一部分是XML文档,则该部分被基于XML语义检查;其他部分可以基于不同语义检查。消息的不同组分被与该消息相关联的语义所理解。消息的每个不同组分可以基于该组分的类型按不同方式处理。例如,JPEG图像部分可能利用一种密钥进行加密并被签名,而XML文档部分可能利用不同密钥进行加密并保持不被签名。
在其他方面中,本发明包括被配置为执行前述步骤的计算机装置和计算机可读介质。
2.0结构和功能概述图1是图示系统100的一个实施例的概况的框图,在系统100中,网络元件102、104、106和108中的一个或多个对消息有效载荷执行安全性功能。网络元件102、106和108可以例如是代理设备。网络元件104可以例如是网络路由器或交换机,例如在下面的图6所示的路由器600。
客户端应用110可通信地与网络元件102耦合。服务器应用112可通信地耦合到网络元件106。服务器应用114可通信地耦合到网络元件108。客户端应用110以及服务器应用112和114中的每一个可以是独立计算机。或者,客户端应用110以及服务器应用112和114中的每一个可以是可以是运行在独立计算机上的独立进程。
网络元件102和104可通信地与网络116耦合。网络元件104和106可通信地与网络118耦合。网络元件104和108可通信地与网络120耦合。网络116、118和120中的每一个是计算机网络,例如局域网(LAN)、广域网(WAN)或诸如因特网之类的互联网。网络116、118和120可以包含额外的网络元件,例如路由器。
在一个实施例中,客户端应用110将消息发往服务器应用112和114,并且网络元件102、104、106和108截取包含消息的数据分组。在替换实施例中,客户端应用110显式地将消息发往网络元件102。网络元件102、104、106和108组装一个或多个数据分组以确定包含在其中的消息的至少一部分。网络元件102、104、106和108对消息执行安全性功能,例如加密和解密。
管理控制台122可通信地耦合到网络116、118和120中的一个或多个。通过管理控制台122,配置信息可以通过网络116、118和120被输入和分发到网络元件102、104、106和108。这种配置信息可以包括可用于加密和解密信息的密码密钥。消息分类可以指示分组和/或消息为了属于这些消息分类需要满足的标准。安全性功能可以指定被用于执行密码操作的密钥。
例如,利用管理控制台122,可以建立第一消息分类和第一加密功能之间的第一映射。与第一消息分类相关联的标准可以例如指示只有包含在发源于客户端应用110并且去往服务器应用112的数据分组中的消息才属于第一消息分类。第一加密功能可以例如指定要利用第一公共密钥对消息加密。第一公共密钥可以例如被提供给管理控制台122。
在管理控制台122处建立了第一映射的情况下,第一映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第一映射传播到网络元件102。网络元件102可以将第一映射存储在映射结构中。
另外,利用管理控制台122,可以建立第一消息分类和第一解密功能之间的第二映射。第一解密功能可以例如指定要利用与第一公共密钥相对应的第一私有密钥对消息解密。第一私有密钥可以例如被提供给管理控制台122。
在管理控制台122处建立了第二映射的情况下,第二映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第二映射传播到网络元件106。网络元件106可以将第二映射存储在映射结构中。
假定以上场景,当网络元件102接收到总地包含发源于客户端应用110并且去往服务器应用112的消息的一个或多个数据分组时,网络元件102确定该消息属于第一消息分类。网络元件102从第一映射中确定第一消息分类被映射到第一加密功能。响应于该确定,网络元件102利用在第一加密功能中指定的第一公共密钥对消息加密,并在一个或多个数据分组中向消息的目的地发送经加密的消息。
包含经加密消息的数据分组最终由网络元件106接收。当网络元件106接收到数据分组时,网络元件106确定该消息属于第一消息分类。网络元件106从第二映射中确定第一消息分类被映射到第一解密功能。响应于该确定,网络元件106利用在第一解密功能中指定的第一私有密钥对消息解密,并在一个或多个数据分组中向消息的目的地发送经解密的消息。
服务器应用112接收包含经解密消息的数据分组。不为客户端应用110和服务器应用112所知的是,消息在行进经过网络116和118期间被密码保护。
扩展以上示例,利用管理控制台122,可以建立第二消息分类和第二加密功能之间的第三映射。与第二消息分类相关联的标准可以例如指示只有包含在发源于客户端应用110并且去往服务器应用114的数据分组中的消息才属于第二消息分类。第二加密功能可以例如指定要利用不同于第一公共密钥的第二公共密钥对消息加密。第二公共密钥可以例如被提供给管理控制台122。
在管理控制台122处建立了第三映射的情况下,第三映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第三映射传播到网络元件102。网络元件102可以将第三映射存储在映射结构中。
另外,利用管理控制台122,可以建立第二消息分类和第二解密功能之间的第四映射。第二解密功能可以例如指定要利用与第二公共密钥相对应的第二私有密钥对消息解密。第二私有密钥可以例如被提供给管理控制台122。
在管理控制台122处建立了第四映射的情况下,第四映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第四映射传播到网络元件108。网络元件108可以将第四映射存储在映射结构中。
假定以上场景,当网络元件102接收到总地包含发源于客户端应用110并且去往服务器应用114的消息的一个或多个数据分组时,网络元件102确定该消息属于第二消息分类。网络元件102从第三映射中确定第二消息分类被映射到第二加密功能。响应于该确定,网络元件102利用在第二加密功能中指定的第二公共密钥对消息加密,并在一个或多个数据分组中向消息的目的地发送经加密的消息。
包含经加密消息的数据分组最终由网络元件108接收。当网络元件108接收到数据分组时,网络元件108确定该消息属于第二消息分类。网络元件108从第四映射中确定第二消息分类被映射到第二解密功能。响应于该确定,网络元件108利用在第二解密功能中指定的第二私有密钥对消息解密,并在一个或多个数据分组中向消息的目的地发送经解密的消息。
服务器应用114接收包含经解密消息的数据分组。不为客户端应用110和服务器应用114所知的是,消息在行进经过网络116和120期间被密码保护。
加密和解密不是网络元件102、104、106和108可以对在应用110、112和114之间行进的消息执行的唯一安全性功能。网络元件102、104、106和108还可以对在应用110、112和114之间行进的消息执行签名和验证功能。
例如,利用管理控制台122,可以建立第一消息分类和第一签名功能之间的第五映射。第一签名功能可以例如指定要利用第一散列功能来创建消息的摘要,并且要利用第一公共密钥对该摘要加密,从而创建签名。
在管理控制台122处建立了第五映射的情况下,第五映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第五映射传播到网络元件102。网络元件102可以将第五映射存储在映射结构中。
另外,利用管理控制台122,可以建立第一消息分类和第一验证功能之间的第六映射。第一验证功能可以例如指定要利用第一散列功能来创建消息的摘要,并且要利用与第一公共密钥相对应的第一私有密钥对经加密摘要(即,签名)解密。
在管理控制台122处建立了第六映射的情况下,第六映射可以被传播到网络元件102、104、106和108中的指定元件。例如,管理控制台122可以将第六映射传播到网络元件106。网络元件106可以将第六映射存储在映射结构中。
假定以上场景,当网络元件102接收到总地包含发源于客户端应用110并且去往服务器应用112的消息的一个或多个数据分组时,网络元件102确定该消息属于第一消息分类。网络元件102从第五映射中确定第一消息分类被映射到第一签名功能。响应于该确定,网络元件102通过将消息输入到第一散列功能中来生成摘要。网络元件102还利用在第一签名功能中指定的第一公共密钥对摘要加密,并在一个或多个数据分组中向消息的目的地发送经加密的摘要(即,签名)。
包含消息和经加密摘要的数据分组最终被网络元件106接收。当网络元件106接收到数据分组时,网络元件106确定该消息属于第一消息分类。网络元件106从第六映射中确定第一消息分类被映射到第一验证功能。响应于该确定,网络元件106通过将消息输入到在第一验证功能中指定的第一散列功能中来生成摘要。网络元件106还利用在第一验证功能中指定的第一私有密钥对经加密摘要解密。
网络元件106将经解密摘要与通过将消息输入到第一散列功能中得到的摘要相比较。如果这两个摘要相同,则网络元件106认为签名通过验证。如果这两个摘要不相同,则网络元件106认为签名未通过验证。网络元件106可以基于签名是否通过验证来执行一个或多个指定动作。例如,如果签名通过验证,则网络元件106可以在一个或多个数据分组中向消息的目的地发送消息。或者,如果签名未通过验证,则网络元件106可以阻止消息被发送到消息的目的地。
如果网络元件106将消息发送到消息的目的地,则服务器应用112接收到包含消息的数据分组。不为客户端应用110和服务器应用112所知的是,消息在离开客户端应用112之后被签名并且在到达服务器应用112之前被验证。
除了上述加密、解密、签名和验证功能之外,网络元件102、104、106和108还可以代表应用110、112和114执行认证和授权功能。
例如,网络元件106可被配置为截取去往服务器应用112的请求。网络元件106可被配置为利用对认证信息的请求对该请求作出响应。例如,网络元件106可被配置为利用对用户名和口令的请求来对来自客户端应用110的请求作出响应。
假定客户端应用110接收到对认证信息的请求并利用用户名和口令作出响应,则网络元件106可被配置为在指定的数据存储装置或身份存储装置(其可以在网络元件106外部)中查找用户名以及相应的口令(或口令派生物,例如口令的单向摘要散列)。网络元件106可被配置为将从客户端应用110接收的口令与与数据存储装置或身份存储装置中的用户名相关联的口令(或口令派生物)相比较。或者,网络元件106可被配置为向包含用户名和口令(或口令派生物)的数据存储装置或身份存储装置请求指示用户名是否与口令匹配的结果;从而,出于安全性目的,实际口令可能不被提供给网络元件106。在任何情况下,如果口令匹配,则网络元件106确定客户端应用110是可信的。如果口令不匹配,则网络元件106确定客户端应用110是不可信的。网络元件106可以基于应用是否是可信的来执行一个或多个指定动作。例如,如果客户端应用110是可信的,则网络元件106可以向服务器应用112发送接收自客户端应用110的原始请求。或者,如果客户端应用110是不可信的,则网络元件106可以阻止原始请求被发送到服务器应用112。
数据存储装置或身份存储装置中的用户名和口令可以与也在数据存储装置或身份存储装置中指示的许可集相关联。网络元件106可以对包含在发源于客户端应用110的数据分组的有效载荷中的应用层消息分类。网络元件106可以基于与从客户端应用110接收的用户名相关联的许可集确定是否允许来自客户端应用110的特定消息分类的消息。
基于是否允许特定消息,网络元件106可以执行一个或多个指定动作。如果特定消息属于不被许可集允许的消息分类,则网络元件106可以例如阻止消息被发送到服务器应用112。或者,如果特定消息属于被许可集允许的消息分类,则网络元件106可以例如将消息发送到服务器应用112。
以这种方式可以配置多个网络元件。从而,网络元件102、104、106和108都可被配置为对从客户端应用110接收的消息执行认证功能和授权功能。通过管理控制台122,共同的认证配置可以被传播到网络元件102、104、106和108中的每一个。从而,网络元件102、104、106和108中的每一个可被配置为利用存储在相同的中央数据存储装置或身份存储装置中的认证信息执行认证功能。
因此,避免了最新的认证信息可能不可用于服务器应用的所有实例的风险。例如,假定服务器应用112和服务器应用114是同一应用的独立实例,则来自客户端应用110的请求是发往服务器应用112还是发往服务器应用114没有区别,因为网络元件106和网络元件108都可以基于最新的认证信息认证客户端应用110。不存在可用于网络元件106的认证信息与可用于网络元件108的认证信息不同的风险。
图2A示出了流程图200A,流程图200A图示了在网络元件中对消息有效载荷执行安全性功能的方法的一个实施例的概况。该方法可以例如由网络元件102、104、106和108中的任何一个执行。
在框202中,网络元件接收一个或多个数据分组。数据分组的有效载荷部分总地包含应用层消息的至少一部分。例如,网络元件102可以从客户端应用110接收两个TCP数据分组,这两个TCP数据分组合起来在其有效载荷部分中包含诸如简单邮件传送协议(SMTP)格式消息之类的应用层消息。又例如,网络元件106可以从网络118接收两个TCP数据分组,这两个TCP数据分组合起来在其有效载荷部分中包含网络元件102利用特定公共密钥加密的经加密应用层消息。网络元件102能够确定应用层消息边界,因此在一个实施例中,网络元件102可以对包含在流或其一部分中的应用层消息执行操作(如下所述),即使网络元件102还未接收到包含应用层消息的所有部分的所有数据分组时也是如此。
在框204中,网络元件对应用层消息的至少一部分执行加密功能或解密功能。例如,网络元件102可以利用与客户端应用110相对应的特定公共密钥对包含在TCP数据分组中的应用层消息加密。又例如,网络元件106可以利用与特定公共密钥相对应的特定私有密钥对包含在TCP数据分组中的经加密应用层消息解密。一旦网络元件已对消息进行了加密或解密,网络元件就可以在一个或多个数据分组内向消息的目的地发送经加密或解密的消息。从而,中间网络元件可以代表应用执行安全性功能,从而节省了应用自身执行安全性功能的负担。
图2B示出了流程图200B,流程图200B图示了在网络元件中执行认证功能的方法的一个实施例的概况。该方法可以例如由网络元件102、104、106和108中的任何一个执行。
在框206中,网络元件接收去往容宿在除了网络元件之外的某一设备上的第一应用的第一请求。例如,网络元件106可以截取客户端应用110向服务器应用112发送的诸如超文本传送协议(HTTP)请求之类的请求。该请求可以例如总地包含在一个或多个TCP分组的有效载荷部分中。
在框208中,响应于接收到第一请求,网络元件将对认证信息的请求发送到发送第一请求的第二应用。继续该示例,网络元件106可以将对用户名和口令的请求发送到客户端应用110。网络元件106可以格式化消息从而使消息看起来来自于服务器应用112而非网络元件106;这可以诱使客户端应用110向服务器应用112发送用户名和口令。
在框210中,网络元件接收认证信息。继续该示例,网络元件106可以截取客户端应用110向服务器应用112发送的用户名和口令。或者,认证信息可以包含在第一请求中,在这种情况下框208的操作不需要执行。
在框212中,网络元件确定认证信息是否有效。例如,网络元件106可以将客户端应用110发送的口令与在网络元件106外部的数据存储装置或身份存储装置中与客户端应用110发送的用户名相关联的口令相比较。如果口令匹配,则网络元件106可以确定认证信息是有效的。如果口令不匹配,则网络元件106可以确定认证信息是无效的。如果认证信息是有效的,则控制传递到框214。如果认证信息是无效的,则控制传递到框216。
在框214中,网络元件将第一请求发送到第一应用。继续该示例,网络元件106可以将客户端应用110向服务器应用112发送的请求发送到服务器应用112。
或者,在框216中,网络元件阻止第一请求被发送到第一应用。继续该示例,网络元件106可以阻止客户端应用110向服务器应用112发送的请求被发送到服务器应用112。网络元件106可以例如通过丢弃包含请求的TCP分组来实现这一目的。从而,中间网络元件可以代表应用执行认证功能,从而节省了应用自身执行认证功能的负担。
3.0实现方式示例3.1多刀片体系结构根据一个实施例,路由器或交换机中的面向应用的网络服务(AONS)刀片执行上述动作。图6是图示路由器600的一个实施例的框图,在路由器600中,监管器刀片602将分组流610A-B中的某一些引导到AONS刀片和/或其他刀片606N。路由器600包括监管器刀片602、AONS刀片604和其他刀片606A-N。刀片602、604和606A-N中的每一个都是具有诸如处理器、存储器和网络连接之类的组件的单个电路板,这些组件通常在多个板上找到。刀片602、604和606A-N被设计为可以向路由器600添加和从路由器600中移除。路由器600的功能由其中的刀片的功能确定。向路由器600添加刀片可以增加路由器600的功能,但是如果希望成本更低的话,则路由器600可以利用较少的刀片提供较少的功能。一个或多个刀片可以是可选的。
路由器600接收分组流,例如分组流610A-B。更具体而言,由路由器600接收的分组流610A-B是由监管器刀片602接收到的。监管器刀片602可以包括转发引擎和/或路由处理器,例如可以从Cisco Systems Inc.购得的转发引擎和/或路由处理器。
在一个实施例中,监管器刀片602基于包含在分组流610A-B的分组头部中的一个或多个参数给分组流610A-B分类。如果包含在特定分组的分组头部中的参数与指定参数匹配,则监管器刀片602将分组发送到AONS刀片604和/或其他刀片606A-N中的指定一个。或者,如果包含在分组头部中的参数不与任何指定参数匹配,则监管器刀片602对于特定分组执行路由功能,并将该特定分组向特定分组的目的地转发。
例如,监管器刀片602可以确定分组流610B中的分组头部与指定参数匹配。因此,监管器刀片602可以将分组流610B中的分组发送到AONS刀片604。监管器刀片602可以接收从AONS刀片604和/或其他刀片606A-N返回的分组,并将分组发送到去往这些分组的目的地的网络路径中的下一跳。又例如,监管器刀片602可以确定分组流610A中的分组头部不与任何指定参数匹配。因此,监管器刀片602并不将分组流610A中的任何分组发送到AONS刀片604或其他刀片606A-N,而是可以将分组流610A中的分组发送到去往这些分组的目的地的网络路径中的下一跳。
AONS刀片604和其他刀片606A-N接收来自监管器刀片602的分组,对分组执行操作,并将分组返回到监管器刀片602。监管器刀片602可以在将分组发出路由器600之前,将分组发送到多个刀片以及从多个刀片接收分组。例如,监管器刀片602可以将特定的一组分组发送到其他刀片606A。其他刀片606A可以对分组执行防火墙功能,并将分组发回到监管器刀片602。监管器刀片602可以接收来自其他刀片606A的分组,并将分组发送到AONS刀片604。AONS刀片604可以对分组执行一种或多种基于消息有效载荷的操作,并将分组发回到监管器刀片602。
根据一个实施例,在AONS路由器(例如路由器600)处发生下面的事件。首先,接收包含从客户端到服务器的消息的分组。接着,对分组执行基于访问控制列表的过滤,并且将某些分组发送到AONS刀片或模块。接着,对分组执行TCP终止。接着,如果必要的话,对分组执行安全套接字层(SSL)终止。接着,对分组执行基于通用资源定位符(URL)的过滤。接着,对分组执行基于消息头部和消息内容的过滤。接着,将分组中包含的消息分类到AONS消息类型中。接着,选择对应于AONS消息类型的策略流。接着,执行所选的策略流。然后,分组被按照所选策略流指定的那样转发、重定向、丢弃、拷贝、修改或扇出(fan out)。
3.2在网络元件中对消息有效载荷执行安全性功能图3A-F示出了流程图300,流程图300图示了在网络元件处代表应用执行消息有效载荷处理功能的方法的一个实施例。例如,网络元件102、104、106和108中的一个或多个可以执行这种方法。更具体而言,AONS刀片604可以执行该方法的一个或多个步骤。其他实施例可以省略在流程图300中示出的一个或多个操作。其他实施例可以包含除流程图300中所示的操作之外的操作。其他实施例可以按不同于流程图300中所示的顺序执行流程图300中所示的操作。
首先参考图3A,在框302中,在网络元件处接收用户指定输入。用户指定输入指示以下内容要与特定消息分类相关联的一个或多个标准,以及要与特定消息分类相关联的一个或多个动作。用户指定输入可以指示执行这一个或多个动作的顺序。用户指定输入可以指示动作的输出要被提供给其他动作作为输入。例如,网络元件104(更具体而言是AONS刀片604)可以接收这种来自网络管理员的用户指定输入。
用户指定输入可以指示要分别与多个独立消息分类相关联的多组标准,以及要与这多个消息分类相关联的多组动作。例如,用户指定输入可以指示要与第一消息分类相关联的第一组标准、要与第二消息分类相关联的第二组标准、要与第一消息分类相关联的第一组动作以及要与第二消息分类相关联的第二组动作。
在框304中,在网络元件处建立特定消息分类和一个或多个标准之间的关联。例如,AONS刀片604可以建立特定消息分类和一个或多个标准之间的关联。例如,该标准可以指示消息需要包含的特定文本串,以使得该消息属于相关联的消息分类。又例如,该标准可以指示需要存在于XML格式的消息的分级结构中的特定路径,以使得该消息属于相关联的消息分类。又例如,该标准可以指示消息需要来自或去往的一个或多个源IP地址和/或目的地IP地址,以使得该消息属于相关联的消息分类。
在独立的多组标准和独立消息分类之间可以建立多个关联。例如,AONS刀片604可以建立第一组标准和第一消息分类之间的第一关联,以及第二组标准和第二消息分类之间的第二关联。
在框306中,在网络元件处建立特定消息分类和一个或多个动作之间的关联。与特定消息分类相关联的一个或多个动作包括与该特定消息分类相关联的“策略”。策略可以包括根据在用户指定输入中指定的特定顺序排序的一个或多个动作的“流”和/或无序的一个或多个其他动作。例如,AONS刀片604可以建立特定消息分类和一个或多个动作之间的关联。总的来说,框302-306的操作可以包括“供给”网络元件。
在独立的多组动作和独立消息分类之间可以建立多个关联。例如,AONS刀片604可以建立第一组动作和第一消息分类之间的第一关联,以及第二组动作和第二消息分类之间的第二关联。例如,一组动作可以包括“加密”动作、“解密”动作、“签名”动作、“验证”动作和/或“认证”动作。
每个动作可以指示一个或多个参数。例如,“加密”动作可以指示要用于对消息加密的公共密钥。又例如,“解密”动作可以指示要用于对消息解密的私有密钥。又例如,“签名”动作和“验证”动作各自可以指示要用于从消息中生成摘要的散列功能。又例如,“认证”动作可以指示要发送到应用的认证信息请求,以及包含可用于验证从应用接收的凭证的认证信息的数据存储装置或身份存储装置。
动作可以标识要对其执行动作的消息的特定一部分作为动作的参数。该部分可以利用多种机制中的任何一种标识。例如,用户指定的开始位置和结束位置可以标识该部分。又例如,用户指定的XPath路径可以标识XML格式的消息的一部分。又例如,用户指定的常规表达可以标识该部分。从而,可以对消息的指定部分执行动作,同时保持消息的余下部分不变。例如,可以对消息的一部分加密,同时对消息的其余部分解密。事实上,通过例如将不同的加密动作与相同的消息分类相关联,可以基于不同密钥对同一消息的不同部分进行加密。
在框308中,网络元件接收去往除了网络元件之外的某一设备的一个或多个数据分组。该数据分组可以例如是包含IP和TCP头部的数据分组。在数据分组的IP头部中指示的IP地址可以不同于网络元件的IP地址;从而,数据分组可以是去往除了网络元件之外的某一设备的。例如,网络元件104(更具体而言是监管器刀片602)可以截取客户端应用110最初发送的数据分组。例如,数据分组可以去往服务器应用112。
在框310中,基于在数据分组的头部中指示的一个或多个信息项,确定被用于发送包含在数据分组的有效载荷部分中的消息(下文中称为“该消息”)的应用层协议。信息项可以包括例如IP头部中的源IP地址、IP头部中的目的地IP地址、TCP头部中的TCP源端口和TCP头部中的TCP目的地端口。例如,网络元件104(更具体而言是AONS刀片604)可以存储映射信息,该信息将FTP(一种应用层协议)映射到IP地址和/或TCP端口的第一组合,将HTTP(另一种应用层协议)映射到IP地址和/或TCP端口的第二组合。基于该映射信息以及由数据分组所指示的IP地址和/或TCP端口,AONS刀片604可以确定哪一种应用层协议(FTP、HTTP、简单邮件传送协议(SMTP)等)被用于发送该消息。
在框312中,确定与被用于发送该消息的应用层协议相关联的消息终止技术。例如,网络元件104(更具体而言是AONS刀片604)可以存储映射信息,该信息将FTP映射到第一方案,将HTTP映射到第二方案,并将SMTP映射到第三方案。第一方案可以采用第一消息终止技术,其可被用于从数据分组中提取出利用FTP发送的消息。第二方案可以采用第二消息终止技术,其可被用于从数据分组中提取出利用HTTP发送的消息。第三方案可以采用第三消息终止技术,其可被用于从数据分组中提取出利用SMTP发送的消息。基于该映射信息以及被用于发送该消息的应用层协议,网络元件104可以确定应当调用哪一方案以从数据分组中提取出该消息。
在框314中,基于与被用于发送消息的应用层协议相关联的终止技术确定消息的内容。例如,网络元件104(更具体而言是AONS刀片604)可以提供数据分组作为对在框312中确定的被映射到应用层协议的方案的输入。该方案可以使用适当的消息终止技术来从数据分组中提取出消息的内容。该方案可以将消息作为输出返回到AONS刀片604。从而,在一个实施例中,从数据分组中提取出的消息独立于被用于发送消息的应用层协议。
在一个实施例中,确定消息的内容涉及组装两个或更多个数据分组的有效载荷部分的内容。例如,网络元件104可以确定两个或更多个TCP数据分组的正确顺序(例如,基于TCP序列号),提取出TCP数据分组的有效载荷部分的内容,并根据正确顺序级联这些内容以形成消息的至少一部分。该消息可以是多部分(MIME)消息,并且每个部分可以像独立消息那样独立处理;每个部分都可以进行消息分类。
在框316中,确定与消息满足的标准相关联的消息分类。例如,网络元件104可以存储将不同标准映射到不同消息分类的映射信息。该映射信息指示在可能的许多不同关联中在框304中建立的关联。网络元件104可以确定消息的内容是否满足与已知消息分类中的任何一种相关联的标准。在一个实施例中,如果消息的内容满足与特定消息分类相关联的标准,则确定该消息属于该特定消息分类。
尽管在一个实施例中消息内容被用于确定消息的分类,但是在替换实施例中,包含在消息中的信息都可用于确定消息的分类。例如,在一个实施例中,消息内容以及在包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口的组合被用于确定消息的分类。又例如,在一个实施例中,在包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口被用于确定消息的分类,而无论消息的内容如何。
在框318中,执行与在框316中确定的消息分类相关联的一个或多个动作。如果两个或更多个动作与指定的动作执行顺序相关联,如用户指定输入所指示,则这些动作被按指定顺序执行。如果这些动作中的任何一个的输出假定被作为输入提供给任何一个动作,如用户指定输入所指示,则指定动作的输出被作为输入提供给其他指定动作。
对消息可以执行多种不同动作。图3C-F仅仅代表实现方式可以对与消息的消息分类相关联的动作流中的每个被遍历动作执行的许多种不同可能技术中的一种。动作流可以包含条件和分支,因此动作流中的某些动作可能不被遍历。试样的动作流在下面参考图4描述。
参考图3C,在框320中,读取动作流中的下一动作,除非在流中不再包含任何动作。例如,网络元件104可以读取与消息的消息分类相关联的动作流中的下一动作。一旦读取了下一动作,接着就例如确定动作种类。在框322中,确定该动作是否是加密动作。例如,网络元件104可以确定该动作是否是加密动作。如果该动作是加密动作,则控制传递到框324。否则,控制传递到框326。
在框324中,利用密钥对消息的一部分加密。该密钥可以例如与消息去往的应用相关联。例如,网络元件104可以利用与服务器应用112相关联的公共密钥对消息的一部分或全部加密。如果消息是XML文档,则被映射到该动作作为动作参数的用户指定的XML文档路径可以指示要对消息的哪一部分加密。网络元件104可以利用被映射到该动作作为动作参数的公共密钥对该部分加密。该映射可以利用管理控制台122建立。公共密钥可以存储在网络元件104处。或者,该消息可以利用某个不与消息去往的应用相关联的其他密钥进行加密。例如,该消息可以利用与接收消息的网络元件相关联的密钥进行加密。控制传递回框320。
在框326中,确定该动作是否是解密动作。例如,网络元件104可以确定该动作是否是解密动作。如果该动作是解密动作,则控制传递到框328。否则,控制传递到框330。
在框328中,利用密钥对消息的经加密部分解密。该密钥可以例如与消息去往的应用相关联。例如,网络元件104可以利用与服务器应用112相关联的私有密钥对经加密消息的一部分解密。网络元件104可以利用被映射到该动作的私有密钥对该部分解密。该映射可以利用管理控制台122建立。私有密钥可以存储在网络元件104处。或者,该消息可以利用某个不与消息去往的应用相关联的其他密钥进行解密。例如,该消息可以利用与接收消息的网络元件相关联的密钥进行解密。控制传递回框320。
在框330中,确定该动作是否是签名动作。例如,网络元件104可以确定该动作是否是签名动作。如果该动作是签名动作,则控制传递到框332。否则,控制传递到图3D的框336。
在框332中,利用与该动作相关联的功能生成消息的摘要。例如,网络元件104可以通过将消息或其一部分输入到被映射到该动作的散列功能中来生成消息摘要。该映射可以利用管理控制台122建立。散列功能可以存储在网络元件104处。控制传递回框334。
在框334中,利用与发送消息的应用相关联的密钥对摘要解密。例如,网络元件104可以利用与客户端应用110相关联的私有密钥对摘要解密。网络元件104可以利用被映射到该动作的私有密钥对摘要解密。该映射可以利用管理控制台122建立。私有密钥可以存储在网络元件104处。当消息被发送时,经加密摘要可以作为消息的签名被发送。控制传递回框320。
现在参考图3D,在框336中,确定该动作是否是验证动作。例如,网络元件104可以确定该动作是否是验证动作。如果该动作是验证动作,则控制传递到框338。否则,控制传递到图3E的框348。
在框338中,利用与发送消息的应用相关联的密钥对经加密摘要解密。经加密摘要可以作为消息的签名与消息一起被接收。例如,网络元件104可以利用与客户端应用110相关联的公共密钥对经加密摘要解密。网络元件104可以利用被映射到该动作的公共密钥对摘要解密。该映射可以利用管理控制台122建立。公共密钥可以存储在网络元件104处。控制传递到框340。
在框340中,利用与该动作相关联的功能生成消息的本地生成的摘要。例如,网络元件104可以通过将消息输入到被映射到该动作的散列功能中来生成消息的摘要。该映射可以利用管理控制台122建立。散列功能可以存储在网络元件104处。控制传递回框342。
在框342中,确定经解密摘要是否与本地生成的摘要相匹配。例如,网络元件104可以确定在框338中解密的摘要是否与在框340中生成的摘要相匹配。如果摘要匹配,则控制传递到框344。否则,控制传递到框346。
在框344中,采取与签名通过验证的确定相对应的流的分支。例如,作为验证签名的结果,网络元件104可以遵循包含允许消息传递经过到服务器应用112的动作的流的分支。控制传递回图3C的框320。
或者,在框346中,采取与签名未通过验证的确定相对应的流的分支。例如,作为不能验证签名的结果,网络元件104可以遵循包含阻止消息传递经过到服务器应用112的动作的流的分支。取决于包含在分支中的动作,网络元件104可以记录和/或丢弃消息和/或采取某种其他动作。控制传递到图3C的框320。
现在参考图3E,在框348中,确定该动作是否是认证动作。例如,网络元件104可以确定该动作是否是认证动作。如果该动作是认证动作,则控制传递到框350。否则,控制传递到图3F的框360。
在框350中,对认证信息的请求被发送到发送消息的应用。例如,网络元件104可以向客户端应用110发送对用户名和口令、或Kerberos令牌、或X.509证书、或SAML声明等等的请求。该请求可以被映射到动作。该映射可以利用管理控制台122建立。控制传递回框352。
在框352中,从发送消息的应用接收认证信息。例如,网络元件104可以接收从客户端应用110发送的用户名和口令。
在框354中,确定从应用接收的认证信息是否与包含在数据存储装置或身份存储装置中的可信认证信息相匹配。例如,网络元件104可以在指定数据存储装置或身份存储装置中查找被映射到接收自客户端应用110的用户名的口令。对数据存储装置或身份存储装置的指针或引用可以被映射到该动作。网络元件104可以确定包含在数据存储装置或身份存储装置中的口令是否与接收自客户端应用110的口令相匹配。如果认证信息匹配,则控制传递到框356。否则,控制传递到框358。
在框356中,采取与应用被认证的确定相对应的流的分支。例如,作为认证应用的结果,网络元件104可以遵循包含允许消息传递经过到服务器应用112的动作的流的分支。又例如,作为认证应用的结果,网络元件104可以基于一组被映射到数据存储装置或身份存储装置中的用户名的许可来确定在消息中指定的操作是否被许可。如果操作被许可,则网络元件可以允许消息传递经过到服务器应用112,如果操作不被许可,则网络元件可以阻止消息传递经过到服务器应用112。控制传递回图3C的框320。
或者,在框358中,采取与应用不被认证的确定相对应的流的分支。例如,作为不能认证应用的结果,网络元件104可以遵循包含阻止消息传递经过到服务器应用112的动作的流的分支。取决于包含在分支中的动作,网络元件104可以记录和/或丢弃消息和/或采取某种其他动作。控制传递到图3C的框320。
现在参考图3F,在框360中,确定该动作是否是授权动作。例如,网络元件104可以确定该动作是否是授权动作。如果该动作是授权动作,则控制传递到框362。否则,控制传递到框368。
在框362中,确定尝试执行由消息指示的操作的实体是否被授权执行该操作。该实体可能已由如上所述的认证动作预先确定。如果该实体被授权执行操作,则控制传递到框364。否则,控制传递到框366。
在框364中,采取与实体被授权执行操作的确定相对应的流的分支。例如,网络元件104可以遵循包含允许实体访问指定数据库的动作的流的分支。控制传递回图3C的框320。
或者,在框366中,采取与实体未被授权执行操作的确定相对应的流的分支。例如,网络元件104可以遵循不包含允许实体访问指定数据库的动作的流的分支。取决于包含在分支中的动作,网络元件104可以记录和/或丢弃消息和/或采取某种其他动作。控制传递到图3C的框320。
或者,在框368中,执行除了上述动作以外的某一动作。例如,网络元件104可以执行除了加密、解密、签名、验证或认证动作以外的某个其他指定动作。控制传递回图3C的框320。
如果在动作执行期间消息以某种方式被修改(例如,内容、格式或协议修改),并且修改后的消息假定被转发出网络元件,则网络元件将修改后的消息封装到新的数据分组中,并向修改后的消息的目的地一其可能也已经被修改一发送新的数据分组。
消息可能不属于任何已知的消息分类。在这种情况下,根据一个实施例,网络元件不对消息执行任何用户指定动作。相反地,网络元件简单地将数据分组转发到沿去往数据分组所指示的目的地的路径的下一跳。
流程图300中所示的方法可以对多组数据分组执行,每组承载独立的消息。例如,网络元件104可以对承载第一消息的第一组数据分组执行图示方法,然后网络元件104可以对承载第二消息的第二组数据分组执行该方法。第一消息可以满足与第一消息分类相关联的第一组标准,第二消息可以满足与第二消息分类相关联的第二组标准。从而,网络元件104可以对第一消息执行第一组动作,对第二消息执行第二组动作。
作为流程图300中所示方法的结果,诸如客户端应用110、服务器应用112和服务器应用114之类的应用可以以安全方式彼此通信,而无需在本地执行任何安全性功能。事实上,应用隐式地依赖于网络来实现其任务中的某些或全部,例如安全性功能。
3.3动作流图4示出了可以与特定消息分类相关联的样本流400。流400按顺序包括动作402-414;其他流可以包括一个或多个其他动作。动作402指示消息的内容应当以指定方式修改。动作404指示指定事件应当被写入到指定日志。动作406指示消息的目的地应当变为指定目的地。动作408指示消息的格式应当被转换为指定消息格式。动作410指示用于发送消息或内容的应用层协议应当变为指定应用层协议。动作412指示消息或内容应当利用特定密钥进行加密。动作414指示消息应当向消息的目的地转发。
在其他实施例中,动作402-414中的任何一个可以独立执行,或者与动作402-414中的任何其他动作相组合地执行。尽管未在图4中示出,但是动作流可以包含条件/判决以及基于这些条件/判决的结果的分支。
可以执行以上未具体提及的其他动作。例如,网络元件可以从包含在网络元件接收到的数据分组中的信息确定数据分组的发送者或预期接收者的身份。网络元件可以利用与该身份相关联或者被映射到该身份的密码密钥对包含在数据分组中的消息执行密码功能。
又例如,网络元件可以确定包含在网络元件接收到的数据分组中的凭证的类型。基于凭证类型,网络元件可以选择若干个凭证存储装置(存储凭证的贮藏库)之一。网络元件可以将接收到的凭证与存储在所选的凭证存储装置中的凭证相比较。另外或可替换地,基于凭证类型,网络元件可以选择若干目的地之一,并将包含在数据分组中的应用层消息的至少一部分发送到所选的目的地。
又例如,网络元件可以确定在应用层消息中指定的特定量。网络元件可以确定该特定量是否超过指定量。然后,如果该特定量超过指定量,则网络元件可以执行一个或多个其他指定动作,例如丢弃和/或记录应用层消息。
又例如,网络元件可以查找被映射到在应用层消息中指定的用户名令牌的证书。网络元件可以代表发送应用层消息的应用将证书发送到服务器。这在服务器不理解用户名令牌,但是理解证书时尤其有用。
又例如,网络元件可以从可信机构接收包含两个独立声明(例如签名和SAML声明)的应用层消息。来自可信机构的声明可能充当可信机构的关于发送应用层消息的应用是谁并且该应用声称是什么的证书。该声明可能已由应用从可信机构获得,并且嵌入在应用层消息中。网络元件可以验证这两个声明。例如,为了验证来自可信机构的声明,网络元件可以查询可信机构或利用在应用层消息中提供的其他充分信息(如果提供了这种其他信息的话)验证该声明。
又例如,与从应用接收用户名和口令不同的是,或者除了从应用接收用户名和口令以外,网络元件可以发送挑战到应用。响应于挑战,网络元件可以从应用接收挑战-响应。网络元件可以确定挑战-响应是否满足挑战。如果挑战-响应满足挑战,则网络元件可以执行一个或多个指定动作。否则,网络元件可以执行一个或多个其他指定动作。
网络元件可以接收利用安全套接字层(SSL)协议发送的应用层消息。网络元件可以改变应用层消息以使得其遵从不同的应用层协议(例如,HTTP到JMS),然后再次利用SSL协议向消息的目的地发送改变后的应用层消息。
3.4AONS示例3.4.1AONS总论面向应用的网络系统(AONS)是一种用于构建在网络中嵌入智能以更好地满足应用部署的需要的一类产品的技术基础。AONS通过提供对关于什么信息在网络内流动的更大的关注程度并且通过将信息路由到适当的目的地(以该目的地所预期的格式)来帮助客户集成不同的应用,从而补充了现有的网络技术;施行用于信息访问和交换的策略;在网络带宽和处理开销方面优化应用流量流;提供增强的信息流管理,包括监视和度量信息流以用于业务和底层结构(infrastructure)目的;以及通过透明地备份或重路由关键业务数据来提供增强的业务连续性。
AONS通过更多地理解信息流的内容和上下文提供了该增强的支持。同样,AONS主要工作在消息级别,而不是分组级别。一般来说,信息的AONS处理终止了TCP连接以检查整个消息,包括“有效载荷”以及全部头部。AONS还理解并辅助普遍的应用层协议,例如HTTP、FTP、SMTP和事实上的标准中间件(middleware)协议。
AONS与运行在通用计算系统上的中间件产品的不同之处在于,AONS的行为在其简单性、总拥有成本和性能方面更加类似于网络用具。此外,AONS与网络层支持相集成以提供对信息流和管理的更加整体的方法,从而将在应用层所需的特征映射到由路由器、交换机、防火墙和其他网络系统实现的低层联网特征中。
尽管在来自Cisco Systems Inc.的现有产品线中提供了某些与AONS类似功能的元件,但是这些产品一般对诸如IP/端口地址或HTTP头部之类的信息表现出更加有限的关注度,以提供负载平衡和失效转移解决方案。AONS提供了用于更宽广的功能支持、更宽广的应用分类以及更大的应用数据的控制和管理程度的框架。
3.4.2AONS术语“应用”是执行运行在服务器或桌面系统上的商业功能的软件实体。应用可以是打包应用、运行在应用服务器上的软件、运行在主机上的遗留应用、或内部开发以满足商业需要的定制或私有软件、或者执行某种操作的脚本。这些应用可以与同一部门中的(部门的)其他应用、单个企业内的不同部门的(企业内的)其他应用、企业和其合作伙伴间的(企业间的或B2B)其他应用或者企业和其客户的(客户的或B2C)其他应用通信。AONS为上述情形中的任何一种提供了增值服务。
“应用消息”是由应用生成以与另一应用通信的消息。应用消息可以指定在处理该消息时应当执行的不同商业级别步骤,并且可以是下面描述的消息格式中的任何一种。在本文件的其余部分中,除非明确指出,否则术语“消息”也指应用消息。
“AONS节点”是AONS系统(或网络)内的主要AONS组件。如后面将描述的,AONS节点可以采取客户端代理、服务器代理或路由应用消息的中介设备的形式。
每个应用消息当被第一AONS节点接收时,被分派一个AONS消息ID,并被认为是“AONS消息”,直到该消息被传递到目的地AONS节点为止。AONS消息的概念存在于AONS云中。单个应用消息可以映射到多于一个AONS消息。这可以是例如应用消息需要由多于一个商业功能处理的情形。例如,由请求应用提交的需要由“CreditCheck”应用和“LoanProcessing”应用处理的“LoanRequest”消息将需要由多于一个商业功能处理。在该示例中,从AONS的角度来看,存在两个AONS消息从请求应用到CreditCheck应用的“LoanRequest”到“CreditCheck”AONS消息; 以及从CreditCheck应用到LoanProcessing应用的“LoanRequest”到“LoanProcessing”AONS消息。
在一个实施例中,AONS消息被封装在包含AONP(AON协议)头部的AONP消息中,并且被转换为“规范”格式。AONP是一种能够在两个或更多个AONS节点之间进行联盟的机制。例如,第一AONS节点可以知道其正与第二或其他AONS节点协同动作;从而AONS节点是“联盟的”。第一AONS节点可能已对特定分组执行一个或多个动作,例如加密、信令、认证等等。第一AONS节点可以在一个或多个AONP头部中指示第一AONS节点已执行的动作。在接收到AONP消息后,第二AONS节点可以从AONP头部中确定这些动作已被执行。结果,第二AONS节点可以放弃执行这些动作,或者以高效和最优的方式执行其他动作。从AONS消息的角度提供了可靠性、记录和安全性服务。
从AONS角度,应用一般用来彼此通信的一组协议或方法被称为“应用访问协议”(或方法)。应用可以利用任何支持的应用访问方法与AONS网络(一般是端点代理客户端代理和服务器代理)通信。应用访问协议的某些示例包括IBM MQ系列、Java消息服务(JMS)、TIBCO、超文本传送协议(HTTP)/HTTPS上的简单对象访问协议(SOAP)、简单邮件传送协议(SMTP)、文件传送协议(FTP)、Java数据库连通性(JDBC)、TCP等等。关于各种访问方法的细节将在该文件的后续部分中说明。
存在很多种应用所用的“消息格式”。这些消息格式的范围可以包括定制或私有格式以及工业特定格式和标准化格式。可扩展标记语言(XML)作为一种用于供应用彼此通信的通用语言或消息格式正得到普遍应用。AONS支持很多种这些格式。
另外,在一个实施例中,AONS提供了基于应用需要从一种格式到另一格式的转换服务。典型部署可能涉及第一AONS节点,其接收应用消息(客户端代理),将该消息转换为“规范”格式,规范格式的消息被作为AONS消息通过AONS网络运送。服务器代理可能在传递该消息之前将消息从“规范”格式转换为接收应用所理解的格式。为了理解某些非工业标准格式,可以使用消息辞典。
执行多种应用访问方法或协议之间的网关功能的节点被称为“协议网关”。协议网关的示例可以是通过文件传送协议(FTP)接收应用消息并将同一消息作为HTTP贴发送到另一应用的节点。在AONS中,客户端和服务器代理一般被预期执行协议网关功能。
如果应用生成电子数据交换(EDI)格式的消息而接收应用期望消息是XML格式,则消息格式需要被转换,但是消息内容需要在转换进程中保持不变。在AONS中,端点代理一般执行该“消息格式转换”功能。
在某些情况下,即使发送和接收应用使用相同的消息格式,对于接收应用来说也需要转换内容。例如,如果一个美国应用正与一个英国应用通信,则这两个应用之间的消息中的日期格式可能需要被转换(从月/日/年到日/月/年),即使应用使用相同的数据表示(或消息格式)时也是如此。该转换被称为“内容转换”。
3.4.3AONS功能概述如前所定义,AONS可以被定义为基于网络的智能中介系统,其高效且有效地将商业和应用需要与更加灵活和更具响应性的网络服务相集成。
具体而言,AONS可以通过以下特性理解AONS工作在比传统网络元件产品(2-4层)高的层(5-6层)。AONS使用消息级别的检查作为对分组级别检查的补充一通过理解应用消息,AONS向多种网络元件产品,例如交换机、防火墙、内容缓存系统和负载平衡器提供“消息交换路由”方面的附加值。AONS在安全性、可靠性、流量优化(压缩、缓存)、可视性(商业事件和网络事件)和变换(例如,从XML到EDI)方面提供了更大的灵活性和网络响应粒度。
AONS是一种综合技术平台,而不仅仅是点解决方案。AONS可以通过分布式智能中介系统实现,该系统位于分布式企业内和企业间环境中的应用、中间件和数据库之间(路由消息、执行变换等)。AONS提供了用于商业流的末端用户配置的灵活框架,以及AONS服务的策略和伙伴驱动的可扩展性。
AONS尤其适合于基于网络的部署。AONS是基于网络的,而不是通用的基于服务器的。AONS是混合的基于软件和基于硬件的(即,基于专用集成电路(ASIC)/现场可编程门阵列(FPGA)的加速)。AONS使用流量的(由策略确定的)带外或线内处理。AONS被部署在独立产品(网络用具)以及嵌入式产品(用于多个交换、路由和存储平台的服务刀片)中。
3.4.4AONS系统概述该部分概括了示例性AONS系统的系统概述。图7是图示了根据本发明一个实施例在示例性AONS系统702中涉及的各种组件的图700。由每个节点执行的角色在后续的部分中详细提及。
在AONS系统702内,关键的构建块包括AONS端点代理(AEP)704-710和AONS路由器(AR),AEP 704-710位于AONS网络的边缘处并且用作进入和退出点,AR位于AONS网络内。可以从放置在逻辑AONS“云”的边缘处的AEP 704内开始了解应用意图。当客户端应用714A-N中的特定客户端应用尝试通过网络发送消息到服务器应用716A-N和718A-N中的特定服务器应用目的地时,该特定客户端应用将首先与AEP 704交互。
AEP 704用作透明或显式消息传送网关,其将网络分组聚集到应用消息中,并推断消息级别的意图,这是通过以下方式实现的检查给定消息的头部和有效载荷,将消息与适当上下文相关,可选地应用适当策略(例如,消息加密、变换等),然后经由网络交换机向消息的应用目的地路由消息。
AONS路由器(AR)712可以截取在到消息的目的地端点的路由上的消息。基于消息头部内容,AR 712可以确定新的路由将更好地满足给定应用系统的需要。AR 712可以基于企业级别的策略,在考虑到当前网络状况的情况下进行该判决。随着消息接近其目的地,消息可以遇到AEP 706,其可以在消息到达之前执行最终的一组操作(例如,消息解密、传递确认)。在一个实施例中,每个消息只被解析一次当该消息第一次进入AONS云时。消息遍历的第一AEP负责准备用于下层网络内的最优处理的消息。
AEP 704-708还可被进一步分类为AEP客户端代理和AEP服务器代理,以明确突出由代表特定端点应用的AEP执行的角色和操作。
典型的消息流包括特定客户端应用714A通过由AONS支持的各种访问协议之一向AEP客户端代理(CP)704提交消息。一接收到该消息,AEP CP 704就向消息分派一个AONS消息id,将该消息与包含AONP头部的AONP消息封装,并执行与AONS网络有关的任何必要操作(例如,安全性和可靠性服务)。另外,如果必要的话,该消息被AEP CP 704转换为“规范”格式。该消息通过TCP连接沿着到目的地应用718A的路径被运送到AR 710。沿着路径的AONS路由器或交换机执行消息所需的底层结构服务,并可以基于客户所配置的策略改变路由。该消息在目的地AEP服务器代理(SP)706处被接收到。AEP SP 706执行必要的安全性和可靠性功能,并在必要的情况下将消息转换为接收应用所理解的格式。然后,AEP SP 706利用应用718A和AONS所支持的任何一种访问协议将消息发送到接收应用718A。通过AONS网络702的详细的消息流将在下面的部分中描述。
这里描述的消息处理可以对AONS节点可能遇到的不同种类的消息的内容执行。AONS可以处理请求消息、响应消息、从AONS节点发出或进入到AONS节点中的消息或异常消息;AONS节点可以处理不同于这些类型或者在客户端和服务器应用之间发送的类型的消息的内容。例如,响应于截取到来自客户端应用的消息,AONS节点可以生成另一消息,并将其发送到数据库服务器。AONS节点可以随后接收来自数据库服务器的另一消息。AONS节点可以按上述方式对上述的任何一种消息执行消息处理,而不是仅仅对来自客户端的消息执行消息处理。
AONS节点可以响应于确定消息的传递将导致失效而执行指定动作。例如,AONS节点可以确定消息大于可以被消息去往的服务器应用接受的最大大小。作为响应,AONS节点可以阻止消息被转发到服务器应用。相反地,AONS节点可以记录消息以供以后由管理员检查。又例如,响应于确定消息包含有毒或其他恶意内容,AONS节点可以给消息“接种”(例如,通过加密和/或压缩消息内容),然后将“接种后”的消息存储在日志中以供以后由管理员检查。
3.4.5 AONS系统元件该部分概括了从AONS角度使用的不同概念。
“AEP客户端代理”是执行消息的发送方(客户端)上的应用所必需的服务的AONS节点。在该文件的其余部分中,端点代理也指客户端或服务器代理。尽管AONS节点可以履行代理的角色,但是其一般不被这样指定;“AEP”代理是用于定义角色的术语。在处理消息时客户端代理的一般责任是消息预分类和早期拒绝、协议管理、消息身份管理、AONP头部中的消息封装、用于可靠传递的端点发起、安全性端点服务发起(加密、数字签名、认证)、流选择和执行/底层结构服务(记录、压缩、内容变换等)、路由一下一跳AONS节点或目的地、AONS节点和路由发现/通告角色和路由、以及用于可靠传递机制的端点发起(保证传递路由器)。
注意,对于每个消息并不需要执行上述所有功能。对消息执行的功能由对AONS节点配置的策略控制。
“AEP服务器代理”是执行消息的接收方(服务器)上的应用所必需的服务的AONS节点。在文件的其余部分中,服务器代理也可被称为端点代理。在处理消息时服务器代理的一般责任是协议管理、用于可靠传递的端点终止、安全性端点服务终止(解密、数字签名的核实等等)、流选择和执行/底层结构服务(记录、压缩、内容转换等)、AONP头部中的消息解封装、对发送AONS节点的确认、到目的地的应用路由/请求消息传递、响应消息关联、以及到入口AONS节点的路由。
注意,对于每个消息并不需要执行以上列举的所有功能。对消息执行的功能由对AONS节点配置的以及消息头部指示的策略控制。
“AONS路由器”是提供消息转发功能以及AONS网络内的附加底层结构服务的AONS节点。AONS路由器与客户端代理、服务器代理和其他AONS路由器通信。AONS路由器可以在不解析消息的情况下提供服务;AONS路由器可以依赖于AONP消息头部和在AONS网络中配置的策略,而不用解析消息。AONS路由器提供了以下功能在需要的TCP连接的数目方面AONS网络中的可扩展性;基于消息目的地、在AONS云中配置的策略、在消息中指定的路由和/或消息内容进行的消息路由;在期望目的地处的负载一重路由(如果需要的话);目的地的可用性一重路由(如果需要的话);传输成本(在多个服务提供商之间进行选择);以及底层结构服务,例如发送到记录工具、发送到存储区域网(SAN)以用于备份目的、以及对于可缓存的消息(与目录类似)接口到缓存引擎。
AONS路由器不需要理解应用访问协议中的任何一种,并且在一个实施例中,只处理利用AONP头部封装的消息。
面向应用的联网协议(AONP)是用于AONS网络中的节点之间的通信的协议。在一个实施例中,每个AONS消息运送AONP头部,AONP头部给出了消息的目的地以及用于在后续节点中处理消息的附加信息。AONP还解决策略交换(静态的或动态的)、节点之间的失效转移、AONS节点之间的负载平衡以及路由信息的交换。AONP还能够在多种网络元件(例如防火墙、缓存引擎和路由器/交换机)中进行面向应用的消息处理。AONP既支持固定头部,又支持可变头部(利用类型长度值(TLV)字段形成),以支持中介节点中的高效处理以及用于附加服务的灵活性。
除非明确指出,否则这里的“路由器”或“交换机”指当前可以购得的典型的第3层或第2层交换机或路由器。
3.4.6AONS示例性特征在一个实施例中,下层的“子系统服务的AONS基础平台”(AOS)提供了一个通用服务的范围,包括对安全性、压缩、缓存、可靠性、策略管理和其他服务的支持。随后,在该平台的顶端,AONS提供了一个分立功能组件的范围,这些功能组件可以连线在一起以提供对传入数据流的整体处理。这些“bladeletsTM”的目标在于在由应用或信息技术(IT)管理器所要求的特定策略或动作的上下文中实现个别服务。一系列访问方法适配器确保了对某个范围的入口和出口格式的支持。最后,一组面向用户的工具使得管理器能够适当地查看、配置和设置用于AONS解决方案的策略。这四个功能类别相组合以提供某个范围的末端客户能力,包括增强的安全性、底层结构优化、商业连续性、应用集成和操作可视性。
由AONS解决方案提供的增强的可视性和增强的响应能力提供了多种智能的、面向应用的网络服务。这些智能服务可以总结在四个主要类别中。
增强的安全性和可靠性提供了可靠的消息传递,并且除了现有的网络级别安全性之外,还提供了消息级别安全性。
底层结构优化通过在消息级别利用缓存和压缩以及通过集成应用和网络服务质量(QoS),能够更高效地使用网络资源。
商业和底层结构活动性监视和管理通过读取包含在应用层消息中的信息,AONS可以记录、审计并管理应用级别商业事件,并将这些与公共的、策略驱动的管理环境中的网络、服务器和存储底层结构事件相组合。
基于内容的路由和变换基于消息的路由以及协议、内容、数据和消息格式的变换(例如,XML变换)。属于这些主要类别中的每一种的个别特征将在下面更详细地描述。
3.4.6.1增强的安全性和可靠性认证AONS可以基于包含在给定消息内的各种信息片段(用户名/口令、数字证书、安全性声明标记语言(SAML)声明等等)核实进入消息的发送者的身份,并且基于这些凭证,确定消息是否应当被进一步处理。
授权一旦经由消息检查获得了主要凭证,AONS就可以确定消息的发起者应当对其尝试调用的服务具有什么级别的访问。AONS还可以基于这种导出的特权进行路由判决,或者在适当时阻挡或掩盖消息内的某些数据元素(一旦消息在AONS网络内的情况下)。
加密/解密随着消息行进通过AONS网络,基于策略,AONS可以执行消息元素(整个消息、消息主体或个别元素,例如信用卡号)的加密以维持端到端的私密性。相反地,AONS可以在消息到达给定端点之前执行这些元素的解密。
数字签名为了确保消息完整性并允许不对消息事务进行抵赖,AONS可以在任何给定AEP处对整个消息或个别消息元素签名。关于哪些内容被签名的判决将由被施加到从每个消息的内容和上下文导出的信息的策略来确定。
可靠性AONS可以通过在不同的私有机制之间进行中介来补充现有的保证消息传送系统。还可以为当前缺乏可靠传递的基于HTTP的应用(包括web服务)提供可靠性。作为附加特征,AONS可以生成成功消息传递的确认,并且在不能确认传递时自动生成异常响应。
3.4.6.2底层结构优化压缩和基于流的数据提取AEP可以在通过网络发送消息数据之前压缩消息数据以节省带宽,并且相反地在端点传递之前对其解压缩。AEP还可以提取数据以执行消息分类,而不等待整个消息被读入。
缓存AONS可以基于对一类请求定义的规则或者基于在响应中设置的指示符缓存先前消息询问的结果。缓存可以对整个消息或消息的某些元素执行,以减少应用响应时间并节省网络带宽使用。消息元素缓存能够对后续消息请求进行delta处理。
TCP连接共同分担(pooling)通过充当消息客户端和服务器之间的中介,AONS可以合并应用之间所需的永久连接的总数。从而,AONS减少了其他情况下与一群端点之间的连接的正在进行的发起和拆除相关联的客户端和服务器处理负载。
批处理(batching)AONS中介可以对去往多个目的地的事务消息进行批处理以减少发送系统上的盘I/O开销。类似地,可以对来自多个源的事务消息进行批处理以减少接收系统上的盘I/O开销。
硬件加速通过利用专用硬件在AONS网络设备中高效地执行计算密集功能,例如加密和可扩展风格(Stylesheet)语言变换(XSLT)变换,AONS可以卸下端点服务器的计算资源的负载,从而潜在地提供了较低成本的处理能力。
服务质量AONS可以基于显式消息优先级区分(例如,被标记为“高优先级”的消息)或经由在检测到特定消息内容时确定何时对消息而言需要较高质量的网络服务的策略,将应用级别QoS与网络级别QoS特征相集成。
策略强制优化整个AONS解决方案的核心是确保商业级别策略由底层结构表达、实现和强制的能力。AONS策略管理器确保了一旦检查消息,就在适当时针对该消息采取适当的动作(加密、压缩、路由等)。
3.4.6.3活动性监视和管理审计/记录/度量AONS可以选择性地过滤消息,并将其发送到节点或控制台以用于聚集和后续分析。工具能够查看和分析消息流。AONS还可以生成对重要实时事件(与商业和底层结构有关的)的自动响应。通过智能地收集统计信息并发送这些信息以计入日志,AONS可以产生用于审计或计费目的的度量数据。
管理AONS可以组合消息级别和网络底层结构级别事件以获得对整个系统健康度的更深理解。AONS管理接口自身可用作用于那些希望可编程地对其进行访问的人的web服务。
测试和验证AONS能够截取消息流量的能力可以用于在允许消息到达目的地应用之前验证消息。除了保护消息以免受可能的应用或服务器故障影响之外,该能力还可以被均衡以测试新的web服务和其他功能,这是通过在产品部署之前检查来自客户端和服务器的实际消息流而实现的。AONS还提供了“调试模式”,该模式可以在可疑故障之后自动开启,或者在通知之后手工开启,以辅助对设备的整体管理。
工作负载平衡和失效转移AONS提供了一种策略和内容两者驱动的工作负载平衡和失效转移的方法。例如,给定AONS节点的在异种系统之间中介的能力,则AONS节点可以在提供对消息内容所请求的公共信息的访问的不同系统之间进行平衡。AONS还可以解决确保在消息级别而不是在会话级别实现失效转移所必需的消息亲合力(affinity)的问题,而大多数现有解决方案是在会话级别实现的。平衡还可以考虑到用于得到消息回复、路由到替换目的地(如果优选目标暂时响应很慢的话)的响应时间。
商业连续性通过提供将进入消息复制到远程目的地的能力,AONS使得客户能够从系统停歇中快速恢复。AONS还可以检测发生故障的消息传递,并自动重路由到替换端点。AONS AEP和AR自身具有内建的冗余和组件级别的失效转移,并且可以被集群化以确保高可用性。
3.4.6.4基于内容的路由和变换基于内容的路由基于其检查并理解消息的内容和上下文的能力,AONS提供了通过将内容元素与预先建立的策略配置进行匹配来将消息路由到适当目的地的能力。该能力允许AONS为由不同应用处理的消息提供公共接口(服务虚拟化),并且由AONS检查消息类型或内容中的字段(部分号、帐户类型、雇员位置、客户邮政编码等等)以将消息路由到适当目的地。该能力还允许AONS利用经过AONS路由器的最优扇出发送消息到多个目的地(基于静态定义的消息类型或信息主题,或者基于对消息类型或信息主题的动态订购)。该能力还允许AONS重定向先前发送到应用的所有消息以使得其可以由新的应用处理。另外,该能力还允许AONS路由消息以用于预处理步骤,该步骤被认为是在接收消息之前所必需的(例如,对于所有旅游请求引入管理预批准步骤)。该能力还允许AONS将超过某一标准(例如,顺序值)的消息的拷贝路由到审计系统,以及将该消息转发到期望目的地。该能力还允许AONS出于工作负载或失效转移原因将消息路由到特定服务器。该能力还允许AONS基于先前的路由判决将消息路由到特定服务器(例如,基于哪一服务器处理原始顺序来路由查询请求)。另外,该能力还允许AONS基于消息的源进行路由。该能力还允许AONS通过由源或前一中介定义的步骤序列路由消息。
消息协议网关AONS可以充当使用不同传输协议的应用之间的网关。AONS支持开放式标准协议(例如HTTP、FTP、SMTP),以及普遍的或事实上标准的私有协议,例如IBM MQ和JMS。
消息变换AONS可以变换消息内容以使其适合于特定接收应用。这既可以对XML消息进行,又可以对非XML消息进行,后者是经由消息辞典定义或定义好的工业标准格式的辅助实现的。
3.4.7AONS功能模块图8是示出了示例性AONS节点内的功能模块的框图。AONS节点800包括AOS配置和管理模块802、流/规则804、AOS公共服务806、AOS消息执行控制器808、AOS协议访问方法810和AOS平台特定的“粘胶”(glue)812。AONS节点800与互联网操作系统(IOS)814和Linux操作系统816相接口。流/规则804包括bladeletsTM818、scriptletsTM820和scriptletTM容器822。
在一个实施例中,AOS公共服务806包括安全性服务、标准压缩服务、delta压缩服务、缓存服务、消息记录服务、策略管理服务、可靠消息传送服务、公布/订购服务、活动性监视服务、消息分发服务、XML解析服务、XSLT变换服务和QoS管理服务。
在一个实施例中,AOS协议/访问方法810包括TCP/SSL、HTTP/HTTPS、SOAP/HTTP、SMTP、FTP、JMS/MQ和JMS/RV,以及Java数据库连通性(JDBC)。
在一个实施例中,AOS消息执行控制器808包括执行控制器、流子系统和bladeletTM子系统。
在一个实施例中,AOS bladeletsTM818和scriptletsTM820包括消息输入(读消息)、消息输出(发送消息)、记录/审计、判决、外部数据访问、XML解析、XML变换、缓存、scriptlet容器、公布、订购、消息验证(规划、格式等),过滤/掩盖、签名、认证、授权、加密、解密、活动性监视发源、活动性监视标记、活动性监视处理、活动性监视通知、消息丢弃、防火墙阻挡、防火墙阻挡去除(unblock)、消息截取和消息停止截取(stop-intercept)。
在一个实施例中,AOS配置和管理模块802包括配置、监视、拓扑管理、能力交换、失效转移/冗余、可靠性/可用性/可服务性(RAS)服务(跟踪、调试等)、存档、安装、更新、许可、样本scripletsTM、样本流、文档化、在线帮助和语言本地化。
在一个实施例中,所支持的平台包括Cisco Catalyst 6503、CiscoCatalyst 6505、Cisco Catalyst 6509和Cisco Catalyst 6513。这些产品一般部署在数据中心中。还支持其他产品,例如“分支办公室路由器”(例如,Cisco Volant路由器系列)和“边缘路由器”。在一个实施例中,所支持的监管器模块包括Sup2和Sup720。在一个实施例中,与平台有关的特定功能区域包括优化TCP、SSL、公共密钥底层结构(PKI)、加密/解密、到Cat6K监管器的接口、失效转移/冗余、图像管理和QoS功能。尽管本发明的某些实施例在这里是参考PKI密钥描述的,但是本发明的实施例并不限于PKI密钥。其他密钥和/或令牌(例如Kerberos令牌和/或PGP令牌)可以与本发明的实施例结合使用。
在一个实施例中,密钥分发和处理由用户指定策略控制,用户指定策略与密钥一起被存储在称为AMC的中央控制台处。例如,这些策略可以表明不同种类的密钥被用于加密/解密/标记不同种类的数据流量。密钥可以与策略相关联。AMC可以自动地将密钥对策略的关联分发到用户指定的AONS节点。AMC还管理密钥的生存周期(lifecycle),指示密钥何时期满,哪些密钥已被废除等等。
3.4.8AONS工作模式AONS可以被配置为取决于应用集成需要和部署情形而运行在多种模式中。根据一个实施例,主要工作模式包括隐式模式(implicit mode)、显式模式(explicit mode)和代理模式。在隐式模式中,AONS节点透明地截取相关流量,而不对应用作出改变。在显式模式中,应用显式地使流量去往中介AONS节点。在代理模式中,应用被配置为与AONS节点协同工作,但是应用并不显式地使流量去往AONS节点。
在隐式模式中,应用不关注AONS的存在。消息是去往接收应用的。消息经由应用“代理”或中间件系统的配置,和/或经由网络配置(分组截取)被重定向到AONS以路由消息到AONS。例如,基于域名服务器(DNS)的重定向可以用于路由消息。又例如,可以使用交换机或路由器上的基于5元组的访问控制列表(ACL)。基于网络的应用识别和内容交换模块可以被配置用于URL/URI重定向。基于消息的检查可以用于确定消息类型和分类。在隐式模式中,应用利用应用固有协议使用AONS作为中介(隐式地)彼此通信。
流量重定向、消息分类和“早期拒绝”(在完成AONS层内的处理之前将流量发出AONS层)可以经由多种机制实现,例如在图9中示出的那些机制。图9示出了可以对消息流量执行的以便只产生将在AONS层处理的一组选定流量的多层次过滤。不在AONS层处理的流量可以被当作任何其他流量。
在最低层(层902),所有流量通过。在次高的一层(层904),可以基于5元组过滤流量。监管器刀片或诸如互联网操作系统(IOS)之类的网络操作系统可以执行这种过滤。经过层904的过滤的流量传递到层906。在层906,可以进一步基于类似于基于网络的应用识别过滤和/或消息分类和拒绝过滤流量。经过层906的过滤的流量传递到层908。在层908,可以进一步基于协议头部过滤流量。例如,可以基于流量中的URL/URI过滤流量。经过层908的过滤的流量传递到层910。在层910,可以基于应用层消息(包括头部和内容)处理流量。例如,消息内的XPath内容识别技术可以用于在层910处理流量。AONS刀片可以执行层910的处理。从而,所有网络流量的选定子集都可以被提供给AONS刀片。
在显式模式中,应用能注意到AONS的存在。消息显式地去往AONS节点。应用可以利用AONP与AONS通信。AONS可以执行服务虚拟化和目的地选择。
在代理模式中,应用不是明确地注意到AONS的存在。消息是去往其最终目的地(即,应用)的。然而,客户端应用被配置为经由代理模式引导流量。
3.4.9AONS消息路由AONS中的消息管理的组件可以从两个角度来看节点视角和云视角。
图10是图示了根据云视角AONS云1010内的消息路径的图。客户端应用1004发送消息到AONS客户端代理(CP)1006。如果AONS CP1006不存在,则客户端应用1004可以发送消息到AONS服务器代理(SP)1008。该消息在AONS CP 1006处被处理。如果消息正进入AONS云1010,则AONS CP 1006将消息变换为AONP格式。
在AONS云1010内,消息被利用AONP路由。从而,利用AONP,消息可以被从AONS CP 1006路由到AONS路由器1012,或者从AONSCP 1006路由到AONS SP 1008,或者从AONS路由器1012路由到另一AONS路由器,或者从AONS路由器1012路由到AONS SP 1008。在AONS节点处处理的消息被以AONP格式处理。
当消息到达AONS SP 1008时,AONS SP 1008将消息变换为服务器应用1014所使用的消息格式。AONS SP 1008利用服务器应用1014的消息协议将消息路由到服务器应用1014。或者,如果AONS SP 1008不存在,则AONS CP 1006可以将消息路由到服务器应用1014。
AONS云1010内的消息处理的细节可以经由以下角度来理解请求/响应消息流、单向消息流、具有可靠传递的消息流、节点到节点通信以及多播公布-订购。
图11A和图11B是图示了请求/响应消息流的图。参考图11A,在标号1处,发送应用1102向接收应用1104发送消息。在标号2处,AEP CP1106截取消息,并向消息添加AONP头部,形成AONP消息。在标号3处,AEP CP 1106将AONP消息发送到AONS路由器1108。在标号4处,AONS路由器1108接收AONP消息。在标号5处,AONS路由器1108将AONP消息发送到AEP SP 1110。在标号6处,AEP SP 1110接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号7处,AEPSP 1110将消息发送到接收应用1104。
参考图11B,在标号8处,接收应用1104向发送应用1102发送响应消息。在标号9处,AEP SP 1110截取消息,并向消息添加AONP头部,形成AONP消息。在标号10处,AEP SP 1110将AONP消息发送到AONS路由器1108。在标号11处,AONS路由器1108接收AONP消息。在标号12处,AONS路由器1108将AONP消息发送到AEP CP 1106。在标号13处,AEP CP 1106接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号14处,AEP CP 1106将消息发送到发送应用1102。从而,请求被从发送应用1102路由到接收应用1104,而响应被从接收应用1104路由到发送应用1102。
图12A和12B是图示了替换的请求/响应消息流的图。图12A示出了从发送应用1202到接收应用1204消息可能采取的三种可能路由。根据第一路由,发送应用1202向接收应用1204发送消息,但是AEP CP 1206截取消息,并将消息发送到接收应用1204。根据第二路由,发送应用1202向接收应用1204发送消息,但是AEP CP 1206截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP SP 1208,AEP SP 1208从AONP消息中解封出消息,并将消息发送到接收应用1204。根据第三路由,发送应用1202向接收应用1204发送消息,但是AEP SP 1208截取消息,并将消息发送到接收应用1204。
图12B示出了从接收应用1204到发送应用1202向应消息可能采取的三种可能路由。根据第一路由,接收应用1204向发送应用1202发送消息,但是AEP CP 1206截取消息,并将消息发送到发送应用1202。根据第二路由,接收应用1204向发送应用1202发送消息,但是AEP SP 1208截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP CP1206,AEP CP 1206从AONP消息中解封出消息,并将消息发送到发送应用1202。根据第三路由,接收应用1204向发送应用1202发送消息,但是AEP SP 1208截取消息,并将消息发送到发送应用1202。
图13是图示了单向消息流的图。在标号1处,发送应用1302向接收应用1304发送消息。在标号2处,AEP CP 1306截取消息,并向消息添加AONP头部,形成AONP消息。在标号3处,AEP CP 1306将ACK(确认)发回到发送应用1302。在标号4处,AEP CP 1306将AONP消息发送到AONS路由器1308。在标号5处,AONS路由器1308接收AONP消息。在标号6处,AONS路由器1308将AONP消息发送到AEP SP 1310。在标号7处,AEP SP 1310接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号8处,AEP SP 1310将消息发送到接收应用1304。
图14是图示了替换的单向消息流的图。图14示出了从发送应用1402到接收应用1404消息可能采取的三种可能路由。根据第一路由,发送应用1402向接收应用1404发送消息,但是AEP CP 1406截取消息,并将消息发送到接收应用1404。AEP CP 1406将ACK(确认)发送到发送应用1402。根据第二路由,发送应用1402向接收应用1404发送消息,但是AEP CP 1406截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP SP 1408,AEP SP 1408从AONP消息中解封出消息,并将消息发送到接收应用1404。同样,AEP CP 1406将ACK发送到发送应用1402。根据第三路由,发送应用1402向接收应用1404发送消息,但是AEP SP 1408截取消息,并将消息发送到接收应用1404。在这种情况下,AEP SP 1408将ACK发送到发送应用1402。从而,当AEP截取消息时,截取AEP将ACK发送到发送应用。
根据一个实施例,AONP被用在与下一跳的节点到节点通信中。在一个实施例中,AONP使用HTTP。AONP头部可以包括HTTP或TCP头部。AONP可以指示RM ACK、QoS级别、消息优先级和消息上下文(连接、消息序列号、消息上下文标识符、入口节点信息等等)。实际消息有效载荷在消息主体中。在AONS节点之间可以使用异步消息传送。AONS可以经由静态配置(下一跳)和/或经由动态发现和路由通告(“懒惰”(lazy)发现)进行路由和节点发现。
图15A和15B是图示了具有可靠消息传递的请求/响应消息流的图。参考图15A,在标号1处,发送应用1502向接收应用1504发送消息。在标号2处,AEP CP 1506截取消息,并向消息添加AONP头部,形成AONP消息。在标号3处,AEP CP 1506将消息保存到数据存储装置1512。从而,如果在发送消息时出现任何问题,则AEP CP 1506可以重发存储在数据存储装置1512中的消息的拷贝。
在标号4处,AEP CP 1506将AONP消息发送到AONS路由器1508。在标号5处,AONS路由器1508接收AONP消息。在标号6处,AONS路由器1508将AONP消息发送到AEP SP 1510。在标号7处,AEP SP 1510接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号8处,AEP SP 1510将消息发送到接收应用1504。
在标号9处,AEP SP 1510将可靠消息传送(RM)确认(ACK)发送到AONS路由器1508。在标号10处,AONS路由器1508接收RMACK,并将RM ACK发送到AEP CP 1506。在标号11处,AEP CP 1506接收RM ACK,并且作为响应,删除存储在数据存储装置1512中的消息拷贝。由于消息的传递已被确认,因此不再需要在数据存储装置1512中存储消息的拷贝。或者,如果AEP CP 1506没有在指定时间段内接收到RM ACK,则AEP CP 1506重发消息。
参考图15B,在标号12处,接收应用1504向发送应用1502发送响应消息。在标号13处,AEP SP 1510截取消息,并向消息添加AONP头部,形成AONP消息。在标号14处,AEP SP 1510将AONP消息发送到AONS路由器1508。在标号15处,AONS路由器1508接收AONP消息。在标号16处,AONS路由器1508将AONP消息发送到AEP CP 1506。在标号17处,AEP CP 1506接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号18处,AEP CP 1506将消息发送到发送应用1502。
图16是图示了具有可靠消息传递的单向消息流的图。在标号1处,发送应用1602向接收应用1604发送消息。在标号2处,AEP CP 1606截取消息,并向消息添加AONP头部,形成AONP消息。在标号3处,AEPCP 1606将消息保存到数据存储装置1612。从而,如果在发送消息时出现任何问题,则AEP CP 1606可以重发存储在数据存储装置1612中的消息的拷贝。在标号4处,AEP CP 1606将ACK(确认)发回到发送应用1602。在标号5处,AEP CP 1606将AONP消息发送到AONS路由器1608。在标号6处,AONS路由器1608接收AONP消息。在标号7处,AONS路由器1608将AONP消息发送到AEP SP 1610。在标号8处,AEPSP 1610接收AONP消息,并从消息中去除AONP头部,从而解封装消息。在标号9处,AEP SP 1610将消息发送到接收应用1604。
在标号10处,AEP SP 1610将可靠消息传送(RM)确认(ACK)发送到AONS路由器1608。在标号11处,AONS路由器1608接收RMACK,并将RM ACK发送到AEP CP 1606。在标号12处,AEP CP 1606接收RM ACK,并且作为响应,删除存储在数据存储装置1612中的消息拷贝。由于消息的传递已被确认,因此不再需要在数据存储装置1612中存储消息的拷贝。或者,如果AEP CP 1606没有在指定时间段内接收到RM ACK,则AEP CP 1606重发消息。如果重发在超时时间段内没有成功,则“传递故障”通知消息将被发送到原始发送应用。
图17是图示了同步请求和响应消息的图。在标号1处,AONS节点1704从客户端1702以隐式或显式模式接收请求消息。在标号2处,AONS节点1704读取消息,选择并执行流,并向消息添加AONP头部。在标号3处,AONS节点1704将消息发送到下一跳节点,AONS节点1706。在标号4处,AONS节点1706读取消息,选择并执行流,并从消息中去除AONP头部,从而根据服务器1708所期望的消息格式对消息格式化。在标号5处,AONS节点1706将消息发送到消息的目的地,服务器1708。
在标号6处,AONS节点1706在AONS节点1706发送请求消息的同一连接上接收来自服务器1708的响应消息。在标号7处,AONS节点1706读取消息,将消息与请求消息相关,执行流,并向消息添加AONP头部。在标号8处,AONS节点1706将消息发送到AONS节点1704。在标号9处,AONS节点1704读取消息,将消息与请求消息相关,执行流,并从消息中去除AONP头部,从而根据客户端1702所期望的消息格式对消息格式化。在标号10处,AONS节点1704在客户端1702向AONS节点1704发送请求消息的同一连接上将消息发送到客户端1702。
图18是图示了样本单向端到端消息流的图。在标号1处,AONS节点1804从客户端1802以隐式或显式模式接收请求消息。在标号2处,AONS节点1804读取消息,选择并执行流,并向消息添加AONP头部。在标号3处,AONS节点1804将确认发送到客户端1802。在标号4处,AONS节点1804将消息发送到下一跳节点,AONS节点1806。在标号5处,AONS节点1806读取消息,选择并执行流,并从消息中去除AONP头部,从而根据服务器1808所期望的消息格式对消息格式化。在标号6处,AONS节点1806将消息发送到消息的目的地,服务器1808。
根据节点视角,AONS节点内的消息生存周期涉及入口/出口处理、消息处理、消息执行控制和流执行。
图19是图示了AONS节点1900内的消息处理模块的图。AONS节点1900包括AONS消息执行控制器(AMEC)框架1902、策略管理子系统1904、AONS消息处理底层结构子系统1906和AOSS 1908。AMEC框架1902包括流管理子系统1910、bladeletTM执行子系统1912和消息执行控制器1914。策略管理子系统1904与流管理子系统1910通信。AOSS 1908与bladeletTM执行子系统1912和AONS消息处理底层结构子系统1906通信。AONS消息处理底层结构子系统1906与消息执行控制器1914通信。流管理子系统1910、bladeletTM执行子系统和管理执行控制器1914都彼此通信。
图20是图示了AONS节点1900内的消息处理的图。AMEC框架1902是基于事件的多线程机制,以使吞吐量最大化,同时使AONS节点中的消息延迟最小化。根据一个实施例,对接收的分组重定向,执行TCP终止,执行SSL终止(如果需要的话),执行第5层协议适配和访问方法处理(使用诸如HTTP、SMTP、FTP、JMS/MQ、JMS/RV、JDBC等之类的访问方法),形成AONS消息(用于内部AONS处理的规范化消息格式),对消息排队,基于处理线程可用性使消息出队列,选择流(或规则),执行所选的流,将消息转发到消息的目的地,并且对于基于请求/响应的语义,经由维护在AEMC框架1902内的连接/会话状态处理响应。
在一个实施例中,执行流包括执行流的每一步(即,bladeletTM/动作)。如果bladeletTM运行在独立上下文中,则AMEC框架1902可以进入到bladeletTM特定的队列中排队,并且基于线程可用性,从每个bladeletTM队列中使适当的bladeletTM状态出队。
3.4.10流、bladeletsTM和scriptletsTM根据一个实施例,流串与bladeletsTM(即,动作)一起定制消息处理逻辑。ScriptletsTM提供了一种用于供客户和伙伴定制或扩展本地AONS功能的机制。某些bladeletsTM和服务可以利用AONS节点提供。
3.4.11AONS服务如前所述,AONS可以提供一组核心服务以形成可以经由AONS节点传递的增值功能的下层基础。在一个实施例中,这些服务包括安全性服务、标准压缩服务、delta压缩服务、缓存服务、消息记录服务、策略管理服务(策略管理器)、可靠消息传送服务、公布/订购服务、活动性监视服务、消息分发服务、XML解析服务、XSLT变换服务和QoS管理服务。在一个实施例中,每种AONS核心服务被实现在服务框架的上下文中。
3.4.12AONS配置和管理在一个实施例中,AONS节点被提供和配置有一类应用消息,从而其强制施行代表应用端点、商业领域、安全领域、管理领域和网络领域以声明形式定义的策略。此外,对于给定部署情形,AONS节点利用不同软件和硬件子系统的可配置性和可扩展性促进了不同产品功能特征的灵活构成和定制。由于AONS功能的应用和网络实施例,AONS体系结构框架应当有效地且统一地解决各种系统组件和其环境的可配置性、可管理性以及可监视性这些不同方面的问题。
AONS配置和管理框架是基于ISO网络管理论坛所推荐的用于网络管理的五个功能区域(“FCAPS”)的。这些功能区域包括故障管理、配置管理、会计(accounting)管理、性能管理和安全性管理。故障管理是发现、隔离以及固定AONS节点中的问题或故障的进程。配置管理是找到并设置AONS节点的进程。会计管理涉及跟踪AONS资源的使用和利用率以推动其正确使用。性能管理是测量AONS系统组件和整个系统的性能的进程。安全性管理控制对AONS系统上的信息的访问。许多上述功能是经由作为整个AONS解决方案的一部分的适当仪器、程序接口和工具处理的。
图21、图22和图23是图示了AONS配置和管理框架内的实体的图。AONS管理控制台(AMC)是用于AONS策略、流、scriptletsTM和其他可管理实体的配置和管理的中央集线器。可配置数据被从AONS设计工作室(流工具)推到AMC,然后AONS管理员可以将该数据提供给生产部署。还提供了促进进程以经由对生产展示进程的分段/证明的开发来测试和验证改变。AONS管理代理(AMA)驻留在个别AONS刀片上,并且为AONS提供本地控制和分发能力。AMA与AMC交互以得到更新。AMA采取适当的动作以实现改变。AMA还用于收集监视数据以报告给第三方控制台。
3.4.13AONS监视在一个实施例中,AONS被配置为支持定义好的事件以用于适当的对内部处理活动性的监视和可视性。AONS节点的监视可以经由预先定义的运行在每个AONS节点上的JMX MBean代理实现。该代理与PC联合体上的远程JMX Mbean服务器通信。AONS MIB被均衡以SNMP集成到第三方控制台。图24是图示了AONS监视体系结构的图。
3.4.14AONS工具在一个实施例中,提供了下面的工具设置以用于AONS的各种功能需要设计工作室、管理工作室和消息日志查看器。设计工作室是用于设计流并应用消息分类以及映射策略的可视工具。管理工作室是基于web的用于执行所有管理和配置功能的接口。消息日志查看器是分析消息流量、模式和示踪信息的可视接口。
4.0实现机制-硬件概述图5是图示了可以在其上实现本发明的实施例的计算机系统500的框图。优选实施例是利用运行在诸如代理设备之类的网络元件上的一个或多个计算机程序实现的。从而,在该实施例中,计算机系统500是诸如负载平衡器之类的代理设备。
计算机系统500包括总线502或用于传输信息的其他通信机构,以及与总线502相耦合用于处理信息的处理器504。计算机系统500还包括主存储器506,例如随机访问存储器(RAM)、闪存或其他动态存储设备,其耦合到总线502,用于存储信息和由处理器504执行的指令。主存储器506还可以用于存储在处理器504执行指令的执行期间的临时变量或其他中间信息。计算机系统500还包括只读存储器(ROM)508或其他静态存储设备,其耦合到总线502,用于存储静态信息和处理器504的指令。提供了存储设备510,例如磁盘、闪存或光盘,其耦合到总线502,用于存储信息和指令。
通信接口518可以耦合到总线502,用于向处理器504传输信息和命令选择。接口518是传统的串行接口,例如RS-232或RS-322接口。外部终端512或其他计算机系统连接到计算机系统500,并且利用接口514向其提供命令。运行在计算机系统500中的固件或软件提供终端接口或基于字符的命令接口,以使得可以向计算机系统给予外部命令。
交换系统516耦合到总线502,并且具有输入接口514和到一个或多个外部网络元件的输出接口519。外部网络元件可以包括耦合到一个或多个主机524的本地网络522,或者具有一个或多个服务器530的全球网络(例如因特网528)。交换系统516根据公知的预定协议和惯例将到达输入接口514的信息流量交换到输出接口519。例如,交换系统516与处理器504协同操作可以确定到达输入接口514的数据分组的目的地,并利用输出接口519将其发送到正确目的地。目的地可以包括主机524、服务器530、其他末端站、或本地网络522或因特网528中的其他路由和交换设备。
本发明涉及使用计算机系统500来避免在计算机系统500上存储客户端状态。根据本发明的一个实施例,计算机系统500响应于处理器504执行包含在主存储器506中的一条或多条指令的一个或多个序列而提供这种更新。这些指令可以从另一计算机可读介质(例如存储设备510)读取到主存储器506中。包含在主存储器506中的指令序列的执行使得处理器504执行这里描述的进程步骤。多处理配置中的一个或多个处理器也可以用于执行包含在主存储器506中的指令序列。在替换实施例中,硬连线电路可以用于替代软件指令或者与软件指令相组合以实现本发明。从而,本发明的实施例并不限于硬件电路和软件的任何特定组合。
这里所用的术语“计算机可读介质”指参与向处理器504提供指令以供执行的任何介质。这种介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,例如存储设备510。易失性介质包括动态存储器,例如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括包含总线502的线路。传输介质还可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。
计算机可读介质的公共形式包括例如软盘、柔性盘、硬盘、磁带或任何其他磁介质、CD-ROM、任何其他光介质、穿孔卡、纸带、任何其他具有孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或盒、下文中描述的载波、或计算机可以读取的任何其他介质。
各种形式的计算机可读介质都可以用于运送一条或多条指令的一个或多个序列到处理器504以供执行。例如,该指令可以首先承载在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并利用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发送器来将数据转换为红外信号。耦合到总线502的红外检测器可以接收在红外信号中承载的数据,并将数据放到总线502上。总线502将数据运送到主存储器506,处理器504从主存储器506取得指令并执行指令。主存储器506接收的指令可以可选地在处理器504的执行之前或之后存储在存储设备510上。
通信接口518还提供到网络链路520的双向数据通信耦合,网络链路520连接到本地网络522。例如,通信接口518可以是集成业务数字网络(ISDN)卡或调制解调器,以提供到相应类型电话线的数据通信连接。又例如,通信接口518可以是局域网(LAN)卡以提供到兼容LAN的数据通信连接。还可以实现无线链路。在任何这种实现方式中,通信接口518发送并接收电的、电磁的或光信号,这些信号承载了代表各类信息的数字数据流。
网络链路520一般通过一个或多个网络提供到其他数据设备的数据通信。例如,网络链路520可以通过本地网络522提供到主机计算机524或由因特网服务提供商(ISP)526操作的数据设备的连接。ISP 526又通过全球分组数据通信网络(现在通常称为“因特网”)528提供数据通信服务。本地网络522和因特网528都使用承载数字数据流的电的、电磁的或光信号。经过各种网络的信号以及网络链路520上的并且通信接口518的信号(这些信号承载去往和来自计算机系统500的数字数据)是传输信息的载波的示例性形式。
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息并接收数据,包括程序代码。在因特网示例中,服务器530可能通过因特网528、ISP 526、本地网络522和通信接口518发送应用程序所请求的代码。根据本发明,一个这样下载的程序避免了在服务器上存储客户端状态,如前所述。
处理器504可以在接收时执行所接收的代码和/或存储在存储设备510或其他非易失性存储装置中以供以后执行。以这种方式,计算机系统500可以获得载波形式的应用代码。
5.0扩展和替换在前述说明书中,已经参考本发明的特定实施例描述了本发明。但是,应当清楚,可以对本发明进行各种修改和改变,而不脱离本发明的更宽广的精神和范围。因此,说明书和附图应被当作是说明性的,而非限制性的。
权利要求
1.一种在网络元件中对消息有效载荷执行安全性功能的方法,所述方法包括以下由计算机实现的步骤在网络元件处接收一个或多个数据分组;以及在所述网络元件处对包含在所述一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行特定功能;其中所述特定功能是一组功能之一,这组功能包括加密功能、解密功能、摘要功能、认证功能、授权功能和审计功能。
2.如权利要求1所述的方法,还包括基于包含在所述一个或多个分组中的信息确定消息分类;其中执行所述特定功能的步骤包括执行与所述消息分类相关联的功能。
3.如权利要求2所述的方法,其中所述信息包括IP源地址、IP目的地地址、TCP源端口和TCP目的地端口中的至少一个。
4.如权利要求2所述的方法,其中确定所述消息分类的步骤包括基于所述应用层消息的至少一部分的内容确定所述消息分类。
5.如权利要求1所述的方法,其中执行所述特定功能的步骤包括利用与应用相关联的密码密钥执行所述特定功能,其中所述应用是(a)发送所述一个或多个数据分组的应用和(b)所述一个或多个数据分组去往的应用之一。
6.如权利要求5所述的方法,其中所述密码密钥存储在所述网络元件处。
7.如权利要求5所述的方法,其中所述密码密钥由与所述网络元件相分离的中央控制台管理,其中所述中央控制台分发密码密钥并管理密码密钥的生存周期。
8.如权利要求1所述的方法,其中所述一个或多个数据分组去往容宿在除了所述网络元件之外的某一设备上的应用。
9.如权利要求1所述的方法,还包括从所述网络元件发送包含所述应用层消息的至少经加密部分的一个或多个数据分组,其中由所述网络元件接收的一个或多个数据分组包含所述经加密部分的未经加密版本。
10.如权利要求1所述的方法,还包括从所述网络元件发送包含所述应用层消息的至少经解密部分的一个或多个数据分组,其中由所述网络元件接收的一个或多个数据分组包含所述经解密部分的经加密版本。
11.如权利要求1所述的方法,其中所述网络元件是网络交换机或路由器。
12.如权利要求1所述的方法,还包括在所述网络元件处基于所述消息生成摘要;其中执行所述特定功能的步骤包括对所述摘要加密,从而对所述消息签名。
13.如权利要求1所述的方法,还包括在所述网络元件处基于所述消息生成第一摘要;以及将所述第一摘要与第二摘要相比较,从而验证所述消息;其中执行所述特定功能的步骤包括对所述第二摘要解密。
14.如权利要求1所述的方法,其中对所述应用层消息的至少一部分执行所述特定功能的步骤包括对XML文档或非XML文档中位于用户指定路径上的应用层消息的一部分执行所述特定功能。
15.如权利要求1所述的方法,其中所述应用层消息包括多部分MIME消息,并且所述方法还包括分别独立地处理所述多部分MIME消息的每一部分。
16.如权利要求1所述的方法,还包括从包含在所述一个或多个数据分组中的信息确定所述一个或多个数据分组的发送者或预期接收者的身份;其中执行所述特定功能的步骤包括利用与所述身份相关联的密钥执行所述功能。
17.如权利要求1所述的方法,还包括确定包含在所述一个或多个数据分组中的凭证的类型;基于所述凭证类型,从多个凭证存储装置中选择与所述凭证类型相关联的特定凭证存储装置;以及将所述凭证与存储在所述特定凭证存储装置中的凭证相比较。
18.如权利要求1所述的方法,还包括确定包含在所述一个或多个数据分组中的凭证的类型;基于所述凭证类型,从多个目的地中选择与所述凭证类型相关联的特定目的地;以及向所述特定目的地发送所述应用层消息的至少一部分。
19.如权利要求1所述的方法,还包括在所述网络元件处对以下消息执行功能,所述消息是请求消息、响应消息、异常处理消息或由于发生在所述网络元件上的事件或触发而不在客户端应用和服务器应用之间发送的消息。
20.如权利要求1所述的方法,还包括确定在所述应用层消息中指定的特定内容;确定所述特定内容是否满足一组约束;以及响应于确定所述特定内容满足这组约束,执行一个或多个指定动作。
21.如权利要求1所述的方法,还包括查找被映射到在所述应用层消息中指定的用户名令牌的安全性信息;以及代表发送应用将所述安全性信息发送到接收应用;其中所述安全性信息是证书或声明。
22.如权利要求1所述的方法,还包括生成被映射到在所述应用层消息中指定的用户名令牌的安全性信息;以及代表发送应用将所述安全性信息发送到接收应用;其中所述安全性信息是证书或声明。
23.如权利要求1所述的方法,还包括确定包含在所述应用层消息中的第一声明;确定包含在所述应用层消息中的第二声明,其中所述第二声明不同于所述第一声明,并且所述第二声明是来自可信机构的关于所述应用层消息从其发源的应用的权威证明;验证所述第一声明;以及验证所述第二声明。
24.如权利要求1所述的方法,还包括发送挑战到应用;接收发源于所述应用的挑战-响应;确定所述挑战-响应是否满足所述挑战;以及响应于确定所述挑战-响应满足所述挑战,执行一个或多个指定动作。
25.如权利要求1所述的方法,还包括利用第一应用层协议和安全套接字层(SSL)协议发送所述应用层消息的至少一部分;其中所述应用层消息是在所述网络元件处利用SSL协议和不同于所述第一应用层协议的第二应用层协议接收到的。
26.如权利要求1所述的方法,还包括利用安全套接字层(SSL)协议发送所述应用层消息的至少一部分;其中所述应用层消息是在所述网络元件处作为明文被接收的。
27.如权利要求1所述的方法,还包括作为明文发送所述应用层消息的至少一部分;其中所述应用层消息是在所述网络元件处利用安全套接字层(SSL)协议接收到的。
28.一种在网络元件中执行认证功能的方法,所述方法包括以下由计算机实现的步骤在网络元件处接收去往容宿在除了所述网络元件之外的某一设备上的第一应用的第一请求;响应于接收到所述第一请求,将对认证信息的第二请求发送到发送所述第一请求的第二应用;在所述网络元件处接收所述认证信息;在所述网络元件处确定所述认证信息是否有效;以及响应于确定所述认证信息无效,阻止所述第一请求被发送到所述第一应用。
29.如权利要求28所述的方法,还包括响应于确定所述认证信息有效,将所述第一请求发送到所述第一应用。
30.如权利要求28所述的方法,其中确定所述认证信息是否有效的步骤包括确定在(a)在所述认证信息中指示的口令与(b)在所述认证信息中指示的用户标识符之间是否存在映射。
31.如权利要求30所述的方法,其中确定所述映射是否存在的步骤包括确定所述映射是否存在于所述网络元件外部的数据贮藏库中。
32.如权利要求28所述的方法,还包括响应于确定所述认证信息有效,确定与在所述认证信息中指示的用户标识符相关联的一组许可;在所述网络元件处接收所述第二应用发送的第三请求;在所述网络元件处根据这组许可确定所述第三请求是否被许可;响应于根据这组许可确定所述第三请求不被许可,阻止所述第三请求被发送到所述第一应用。
33.一种承载一个或多个指令序列的计算机可读介质,所述指令序列用于在网络元件中对消息有效载荷执行安全性功能,所述指令当被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤在网络元件处接收一个或多个数据分组;以及在所述网络元件处对包含在所述一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行特定功能;其中所述特定功能是一组功能之一,这组功能包括加密功能、解密功能、摘要功能、认证功能、授权功能和审计功能。
34.一种用于在网络元件中对消息有效载荷执行安全性功能的装置,包括用于在网络元件处接收一个或多个数据分组的装置;以及用于在所述网络元件处对包含在所述一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行特定功能的装置;其中所述特定功能是一组功能之一,这组功能包括加密功能、解密功能、摘要功能、认证功能、授权功能和审计功能。
35.一种用于在网络元件中执行认证功能的装置,包括用于在网络元件处接收去往容宿在除了所述网络元件之外的某一设备上的第一应用的第一请求的装置;用于响应于接收到所述第一请求,将对认证信息的第二请求发送到发送所述第一请求的第二应用的装置;用于在所述网络元件处接收所述认证信息的装置;用于在所述网络元件处确定所述认证信息是否有效的装置;以及用于响应于确定所述认证信息无效,阻止所述第一请求被发送到所述第一应用的装置。
36.一种用于在网络元件中对消息有效载荷执行安全性功能的装置,包括耦合到数据网络并且用于接收来自所述数据网络的一个或多个分组流的网络接口;处理器;一个或多个存储的指令序列,所述指令序列当被所述处理器执行时,使得所述处理器执行以下步骤在网络元件处接收一个或多个数据分组;以及在所述网络元件处对包含在所述一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行特定功能;其中所述特定功能是一组功能之一,这组功能包括加密功能、解密功能、摘要功能、认证功能、授权功能和审计功能。
37.一种用于在网络元件中执行认证功能的装置,包括耦合到数据网络并且用于接收来自所述数据网络的一个或多个分组流的网络接口;处理器;一个或多个存储的指令序列,所述指令序列当被所述处理器执行时,使得所述处理器执行以下步骤在网络元件处接收去往容宿在除了所述网络元件之外的某一设备上的第一应用的第一请求;响应于接收到所述第一请求,将对认证信息的第二请求发送到发送所述第一请求的第二应用;在所述网络元件处接收所述认证信息;在所述网络元件处确定所述认证信息是否有效;以及响应于确定所述认证信息无效,阻止所述第一请求被发送到所述第一应用。
38.一种系统,包括发送消息的第一应用;第一网络元件,其接收所述消息,对所述消息加密以产生经加密消息,并发送所述经加密消息;第二网络元件,其接收所述经加密消息,对所述经加密消息解密以产生经解密消息,并发送所述经解密消息;以及接收所述经解密消息的第二应用。
39.如权利要求38所述的系统,其中所述第一和第二网络元件中的至少一个是网络路由器。
全文摘要
公开了一种用于在网络元件中对消息有效载荷执行安全性功能的方法。根据一方面,网络元件接收一个或多个数据分组。网络元件对包含在一个或多个数据分组的一个或多个有效载荷部分中的应用层消息的至少一部分执行安全性功能。根据另一方面,网络元件接收去往第一应用的第一请求。网络元件将对认证信息的第二请求发送到发送第一请求的第二应用。网络元件接收认证信息,并确定认证信息是否有效。如果认证信息无效,则网络元件阻止第一请求被发送到第一应用。
文档编号H04L9/32GK101088245SQ200580041996
公开日2007年12月12日 申请日期2005年12月5日 优先权日2004年12月7日
发明者桑迪普·库马尔, 苏布尔曼尼恩·西尼瓦萨恩, 德凡奥斯·安思亚斯, 苏布尔曼尼恩·N·耶尔, 克里斯多佛·R·韦伯尔 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1