在网络元件中代表应用执行消息和变换适配器功能的制作方法

文档序号:6656848阅读:355来源:国知局
专利名称:在网络元件中代表应用执行消息和变换适配器功能的制作方法
技术领域
本发明一般地涉及计算机网络中的网络元件。更具体而言,本发明涉及用于在网络元件中代表应用执行消息和变换适配器功能的方法和装置。
背景技术
这一部分中描述的方法可以实现,但是不一定是先前已想到或已实现的方法。因此,除非另外指出,否则这一部分中描述的方法不是该申请的权利要求的现有技术,并且也不应当因为被包括在这一部分中而看作是现有技术。
在商业到商业环境中,运行在计算机上的应用一般会与运行在其他计算机上的其他应用通信。例如,运行在计算机“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”可以指定计算机“X”要利用超文本传送协议(HTTP)发送消息。因此,计算机“X”可以在如上所述将消息封装到TCP分组中之前,向消息的前部添加HTTP特定头部。如果应用“B”被配置为根据HTTP接收消息,则计算机“Y”可以使用HTTP特定头部来处理消息。
除了上述内容外,消息还可以根据若干种消息格式中的任何一种构造。消息格式一般指消息的结构。例如,如果购买订单包括地址和送货日期,则地址和送货日期可以利用消息格式特定的机制在消息内彼此区分。例如,应用“A”可以利用可扩展标记语言(XML)指示购买订单的结构。利用XML作为消息格式,地址可能被封在“<地址>”和“</地址>”标签内,而送货日期可能被封在“<送货日期>”和“</送货日期>”标签内。如果应用“B”被配置为翻译XML形式的消息,则应用“B”可以使用标签以确定消息的哪一部分包含地址,哪一部分包含送货日期。
但是,通常不同的应用被设计成使用不同的应用层协议来发送和接收消息。例如,应用“A”可能被设计成只利用HTTP发送消息,但是应用“B”可能被设计成只利用另一应用层协议,文件传送协议(FTP),接收消息。此外,不同应用可能被设计成利用不同的消息格式来格式化以及解释消息。例如,应用“A”可能被设计成只利用XML格式化消息,但应用“B”可能被设计成只利用电子数据交换(EDI)来解释消息。
通常,要想设计或更新应用以使得应用可以与使用所有可能的消息格式和应用层协议的其他应用会话是不实际的,甚至不可能的。某些消息格式和应用层协议可能是私有的并且不对外公开。某些消息格式和应用层协议可能是相对较新并且晦涩的。某些消息格式和应用层协议可能太陈旧而被认为是已经过时的。
在传统实践中,路由器、交换机和其他中间网络元件不需要包含在分组流中的更高级应用层消息的任何知识、意识或处理就能够路由或交换单独的帧、数据报和分组。为了减少允许应用与可能使用不同消息格式和/或应用层协议的其他应用会话所需的应用修改量,独立于这些应用的中介网络元件可能被设计成接收明确发送到那些网络元件的消息,“转换”该消息,然后发送该消息。该转换可以通过寻找分组中开始于指定比特位置的指定比特图样,然后在找到指定比特图样的情况下改变指定比特位置上的比特来实现。例如,网络器具“J”可以被设计成接收已经利用HTTP发送的消息并改为利用FTP发送这些消息。对于另一示例,网络器具“K”可以被设计为接收具有XML格式的消息并将这些消息翻译成EDI格式。因此,如果应用“A”利用HTTP发送XML格式的消息,并且应用“B”利用FTP接收EDI格式的消息,则应用“A”可被配置成使得应用“A”通常寻址到应用“B”的消息被改为寻址到网络器具“J”。网络管理员可以将网络器具“J”配置成向网络器具“K”发送消息,并且网络管理员可以将网络器具“K”配置成向应用“B”发送消息。
不幸的是,该方法需要来自网络管理员的大量帮助。当通信应用所使用的可能的不同应用层协议和消息格式的数目增大时,网络器具和这些网络器具之间的路径的数目也动态增大。对于每对发送和接收应用,遵从该方法的网络管理员必需配置所涉及的应用和网络器具,以确保消息将沿着正确的路径穿过相关的网络器具。因此,如果每个应用“A”、“B”、“C”、“D”和“E”需要彼此通信,遵从该方法的网络管理员则需要配置25条不同的“路径”,其中每条路径具有一个或多个网络器具。当应用被添加、删除和修改时,网络管理员可能需要从应用对之间的某些路径中添加和/或删除某些网络器具。当涉及很多应用时,负担可能比大多数网络管理员所能承受的要大。
另外,如果多条路径被配置为包含同样的网络器具,则该网络器具可能变成降低网络性能的瓶颈。
因此,该“成对路径配置”方法在被用于有大量多样性应用通信的系统时是不实用的。因此需要用于允许多个多样性应用通信的更实用的技术。
此外,现有的中介网络元件在这些网络元件可以对分组执行的处理的种类方面以及在这些网络元件相对分组能够执行的动作的种类方面受到限制。通常,现有的中介网络元件只能对在数据分组的头部中拥有匹配参数的那些数据分组执行单个专门操作。参数和操作通常都是固定的并且无法由最终用户定制。因此需要用于允许对数据流执行更多可定制的操作的技术。


在附图中,本发明是以示例方式而非限制方式示出的,并且附图中的类似标号指示类似元件,其中图1是示出系统的一个实施例的概况的框图,在该系统中,一个或多个网络元件将遵循应用层协议的消息转换成独立于应用层协议的“规范(canonical)”消息;图2示出显示用于将遵循应用层协议的消息转换成独立于应用层协议的“规范”消息的网络元件实现的方法的一个实施例的概述的流程图;图3A-3B示出显示分类消息的方法的一个实施例的流程图;图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.4多刀片(blade)体系结构3.5分类消息
3.6动作流程3.7 AONS示例3.7.1 AONS总论3.7.2 AONS术语3.7.3 AONS功能概述3.7.4 AONS系统概述3.7.5 AONS系统元件3.7.6 AONS示例性特征3.7.7 AONS功能模块3.7.8 AONS工作模式3.7.9 AONS消息路由3.7.10流,BladeletsTM和ScriptletsTM3.7.11 AONS服务3.7.12 AONS配置和管理3.7.13 AONS监视3.7.14 AONS工具4.0实现机制一硬件概述5.0扩展和替换1.0总论前面背景技术中标识的需求以及其他需求和目的在本发明中得以实现并且将从以下描述中变得明显,本发明在一个方面包括用于在诸如网络路由器之类的网络元件中代表应用执行消息和变换适配器功能的方法。根据一个实施例,网络元件确定整体包含在数据分组的净荷部分中的应用层消息。该应用层消息遵循应用层协议,例如HTTP。网络元件确定该应用层消息所遵循的应用层协议。
基于应用层协议,从该网络元件可访问的多个适配器中选择一个适配器。应用层消息被提供到所选适配器,该适配器将应用层消息转换成不遵循任意特定应用层协议的“规范”消息。由于规范消息不遵循任意特定应用层协议,因此它是通用的,因此该网络元件可以对规范消息执行指定的变换操作而不必顾及最初用来传输该应用层消息的应用层协议。
根据一个方面,上述用于实现适配器的用户定制的程序代码在网络元件处被接收和存储。因此,网络元件可以具有经定制的适配器,该适配器将遵循私有应用层协议的应用层消息转换成上述规范消息;以这种方式,网络元件可以是“可编程的”。
根据一个方面,包含应用层消息的数据分组被网络元件截取,从而发送该数据分组的应用无需“注意到”网络元件的存在;数据分组可被寻址到位于不同于该网络元件的设备上的目的地应用。
根据一个方面,该网络元件抢先从应用显性或隐形地存储应用层消息的消息队列或其他数据存储库中读取应用层消息。消息队列可以在网络元件外部。根据一个方面,网络元件将上述规范消息转换成应用层消息,并将这样的应用层消息发送到中间人(broker)机制,该中间人机制将应用层消息存储到远程目的地消息队列,远程目的地应用可以从该远程目的地消息队列读取应用层消息。
在其他方面,本发明包含被配置用于执行前述步骤的计算机装置和计算机可读介质。
2.0结构和功能概述图1是示出系统100的一个实施例的概述的框图,其中网络元件102、104、106和108中的一个或多个将遵循应用层协议的消息转换成独立于应用层协议的“规范”消息。网络元件102、104、106和108可以是代理设备、分组交换机或网络路由器,例如图6中示出的路由器600。
客户端应用110可通信地耦合到网络元件102。服务器应用112可通信地耦合到网络元件106。服务器应用114可通信地耦合到网络元件108。客户端应用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截取包含消息的数据分组。网络元件102、104、106和108组装一个或多个数据分组以确定其中包含的消息的至少一部分。网络元件102、104、106和108将特定于应用层协议的消息转换成独立于应用层协议的规范消息。基于消息的内容,网络元件102、104、106和108执行一个或多个动作。这些动作中的某些的示例随后将详细描述。
根据一个实施例,客户端应用110将消息插入消息队列124。例如,客户端应用110可以构建遵循基于队列的应用层协议(例如IBM MQ或TIBCO EMS)的消息,并将这些消息插入消息队列124。网络元件102可以读取和删除消息队列124中的消息,将特定于应用层协议的消息转换成独立于应用层协议的规范消息,并基于消息的内容,执行一个或多个动作。
在一个实施例中,客户端应用110没有显性地将消息插入消息队列124,而是将消息发送到与消息队列126相关联的消息队列别名(alias)。对客户端应用110而言透明地发送到消息队列别名的消息实际上被存储在消息队列124中,以待随后删除和发送到消息队列126。再次,网络元件102可以读取和删除来自消息队列124的消息,将特定于应用层协议的消息转换成独立于应用层协议的规范消息,并基于消息的内容,执行一个或多个动作,包括将消息发送到中间人机制,该中间人机制将消息存储在消息队列126中以备服务器应用112获取。
图2示出用于将遵循应用层协议的消息转换成独立于应用层协议的“规范”消息的网络元件实现的方法的一个实施例的概述的流程图200。该方法例如可以由网络元件102、104、106和108中的任意一个执行。
在方框202中,网络元件从数据分组的净荷部分确定统一包含在净荷部分中的遵循应用层协议的应用层消息。例如,数据分组可以统一地包含遵循HTTP的应用层消息。网络元件102可以截取目的地为服务器应用112的一个或多个数据分组;因此,数据分组可能不是目的地为网络元件102的。
对于另一示例,网络元件102可以从消息队列124中取得客户端应用110显性地地或以其他方式插入到消息队列124中的应用层消息。这样的应用层消息例如可以是遵循IBM MQ或遵循TIBCO EMS的。网络元件102可以从管理消息队列124的中间人机制请求这样的应用层消息。作为响应,中间人机制可以将消息封装成一个或多个数据分组并将数据分组发送到网络元件102。
无论网络元件102是如何获得应用层消息的,网络元件102都可以组装数据分组(例如TCP分组)的净荷部分的内容,以构建其中包含的应用层消息。
在方框204,应用层消息遵循的应用层协议被确定。例如,网络元件102可以确定消息遵循的应用层协议,例如HTTP、FTP、SMTP、IBMMQ或TIBCO EMS。
在一个实施例中,存储在网络元件(例如网络元件102)处的映射信息指示TCP端口和应用层协议之间的关联。例如,TCP端口80可以与HTTP相关联,其他TCP端口可以与其他应用层协议相关联。多个TCP端口可以与单个应用层协议相关联。在该实施例中,网络元件通过确定哪个应用层协议与接收到包含该消息的数据分组的TCP端口相关联来确定消息的应用层协议。例如,如果消息被包含在网络元件102在TCP端口80上接收到的TCP分组中,网络元件102则可以得出消息遵循HTTP的结论。
在方框206中,基于应用层协议,从该网络元件可访问的多个适配器中选择特定适配器。每个适配器是能够将遵循特定应用层协议的应用层消息转换成不遵循任何特定应用层协议的规范消息的一组程序代码。例如,网络元件102可以存储用于HTTP的适配器、用于FTP的适配器、用于SMTP的适配器、用于IBM MQ的适配器、用于TIBCO EMS的适配器以及用于私有应用层协议的适配器。如果应用层消息是遵循HTTP的,网络元件102则选择HTTP适配器。可替换地,如果应用层消息遵循另一应用层协议,网络元件102则选择对应于该协议的适配器。
在方框208中,应用层消息被提供给特定适配器,该适配器将该应用层消息转换成不遵循应用层协议的规范消息。例如,网络元件102可以将遵循HTTP的消息发送到存储在网络元件102上的HTTP适配器。该HTTP适配器将遵循HTTP的消息转换成不遵循任何特定应用层协议的规范消息。
在一个实施例中,适配器是通过从遵循应用层协议的消息中删除掉所有特定于该应用层协议的信息来将遵循应用层协议的消息转换成规范消息的。例如,HTTP消息到规范消息的转换可能涉及HTTP适配器从HTTP消息前面剥去HTTP头部。
一旦消息已被转换成独立于应用层协议的规范形式,网络元件就可以代表生成该消息的应用执行一个或多个动作。所执行的动作可能基于消息的内容而有所不同。由于规范消息是独立于应用层协议的,因此动作的执行无需顾及被用来传输该消息的应用层协议。
基于规范消息的内容,可以确定该消息的消息分类。例如,网络元件102可以基于消息的内容来确定消息是购买订单类的消息。作为响应,网络元件102可以代表服务器应用112执行与购买订单类消息相关联的一个或多个指定动作。指定动作例如可以包括修改消息的格式(例如从XML到EDI)。其他可能动作的示例下面被描述。
基于消息的分类可能执行的一种可能的动作是将规范消息转换回特定于应用层协议的消息,并发送该特定于应用层协议的消息到指定的目的地。为了将规范消息转换到特定于应用层协议的消息,网络元件可以将规范消息作为输入提供到对应于适当的应用层协议的适配器。例如,为了将规范消息转换为遵循HTTP的消息,网络元件102可以将规范消息提供到HTTP适配器。在HTTP适配器已将规范消息转换到遵循HTTP的消息之后,网络元件102可以将遵循HTTP的消息封装到一个或多个数据分组中,并将数据分组发送到指定目的地,例如服务器应用112。
规范消息被转换到的应用层协议可以不同于规范消息先前从其转换来的应用层协议。例如,网络元件102可以接收遵循HTTP的消息,将遵循HTTP的消息转换成规范消息,基于规范消息的内容执行动作,将规范消息转换成遵循SMTP的消息,并将遵循SMTP的消息发送到服务器应用112。
3.0实现方式示例3.1从消息队列取得消息根据一个实施例,网络元件不是截取客户端应用已经朝服务器应用发送的数据分组,而是抢先从客户端应用已经向其插入消息的源消息队列取得消息。例如,网络元件102可以判断消息队列124是否包含任意消息。为了执行该判断,网络元件102可以询问管理消息队列124的中间人机制。
响应于确定消息队列124包含消息,网络元件102从消息队列124中取得消息并将该消息从消息队列124中删除。例如,网络元件102可以指示中间人机制从消息队列124中删除消息并将消息发送到网络元件102。作为响应,中间人机制可以将消息封装到一个或多个数据分组(例如TCP分组)中,并将分组发送到网络元件102。
数据分组可以在与消息遵循的应用层协议相关联的特定TCP端口上被发送。例如,如果消息遵循IBM MQ,数据分组则可以在与IBM MQ相关联的TCP端口上被发送。可替换地,如果消息遵循TIBCO EMS,数据分组则可以在与TIBCO EMS相关联的TCP端口上被发送。如上所述,网络元件102可以基于TCP端口确定消息的应用层协议,并将消息发送到适当的适配器。
3.2将消息插入消息队列在一个实施例中,网络元件可以对消息执行的动作包括将消息插入目的地消息队列。例如,网络元件106可以确定特定规范消息的分类是与“插入到目的地队列”动作相关联。作为响应,网络元件106可以将特定规范消息转换成特定于应用层协议的消息(例如遵循IBM MQ的消息或遵循TIBCO EMS的消息),并将所产生的特定于应用层协议的消息插入到指定的消息队列(例如消息队列126)中。
网络元件106可以通过将消息作为输入提供到对应于适当的应用层协议的适配器来将规范消息转换成特定于应用层协议的消息,如上所述。网络元件106可以通过将特定于应用层协议的消息封装到一个或多个数据分组中并将数据分组发送到管理消息队列126的中间人机制来将特定于应用层协议的消息插入到消息队列126中。
3.3可编程的适配器根据一个实施例,用户可以创建新的适配器并使得新的适配器被存储在网络元件102、104、106和108中的一个或多个上并能够在其上被使用。该“编程”可以在任何时间执行,包括在网络元件已经利用现有的适配器启动对数据分组的处理之后。
在一个实施例中,用户通过将定制的适配器上载到管理控制器122来向网络元件“提供”定制的适配器。用户可以利用管理控制器122指示哪些网络元件应该接收定制的适配器。作为响应,管理控制器122将定制的适配器发送到指定的网络元件(或这,如果没有指定网络元件,则发送到管理控制器122负责的所有网络元件)。网络元件接收定制的适配器并在本地存储定制的适配器作为响应。网络元件可以存储将定制的适配器与一个或多个TCP端口相关联的映射信息。
此后,当网络元件接收到遵循与定制的适配器相对应的应用层协议的消息时,网络元件将这些消息提供到该定制的适配器,该适配器能够将这些消息转换成规范消息。因此,网络元件可被编程为理解并转换遵循私有应用层协议的应用层消息。
3.4多刀片体系结构根据一个实施例,路由器中的面向应用的网络服务(AONS)刀片执行上述动作。图6是图示了路由器600的一个实施例的框图,在路由器600中,监管器刀片602将分组流610A-B中的某一些引导到AONS刀片和/或其他刀片606A-N。路由器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.5分类消息图3A-B示出分类消息的方法的一个实施例的流程图300。例如,网络元件102、104、106和108中的一个或多个可以执行该方法。更具体而言,AONS刀片604可以执行该方法的一个或多个步骤。其他实施例可以省略在流程图300中示出的一个或多个操作。其他实施例可以包含除流程图300中所示的操作之外的操作。其他实施例可以按不同于流程图300中所示的顺序执行流程图300中所示的操作。
首先参考图3A,在框302中,在网络元件处接收用户指定输入。用户指定输入指示以下内容要与特定消息分类相关联的一个或多个标准,以及要与特定消息分类相关联的一个或多个动作。用户指定输入可以指示执行这一个或多个动作的顺序。用户指定输入可以指示动作的输出要被提供给其他动作作为输入。例如,网络元件104(更具体而言是AONS刀片604)可以接收这种来自网络管理员的用户指定输入。
在框304中,在网络元件处建立特定消息分类和一个或多个标准之间的关联。例如,AONS刀片604可以建立特定消息分类和一个或多个标准之间的关联。例如,该标准可以指示消息要属于相关联的消息分类而需要包含的特定文本串。又例如,该标准可以指示消息要属于相关联的消息分类而需要存在于XML格式的消息的分级结构中的特定路径。又例如,该标准可以指示消息要属于相关联的消息分类而需要来自于哪个/些源IP地址或去往哪个/些目的地IP地址。
在框306中,在网络元件处建立特定消息分类和一个或多个动作之间的关联。与特定消息分类相关联的一个或多个动作包括与该特定消息分类相关联的“策略”。策略可以包括根据在用户指定输入中指定的特定顺序排序的一个或多个动作的“流”和/或无序的一个或多个其他动作。例如,AONS刀片604可以建立特定消息分类和一个或多个动作之间的关联。总的来说,框302-306的操作包括“供应”(provisioning)网络元件。
在框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中,确定与被用于发送该消息的应用层协议相关联的消息终止技术。例如,AONS刀片604可以存储映射信息,该信息将FTP映射到第一方案,将HTTP映射到第二方案,并将SMTP映射到第三方案。第一方案可以采用第一消息终止技术,其可被用于从数据分组中提取出利用FTP发送的消息。第二方案可以采用第二消息终止技术,其可被用于从数据分组中提取出利用HTTP发送的消息。第三方案可以采用第三消息终止技术,其可被用于从数据分组中提取出利用SMTP发送的消息。基于该映射信息以及被用于发送该消息的应用层协议,AONS刀片604可以确定应当调用哪一方案以从数据分组中提取出该消息。
在框314中,基于与被用于发送消息的应用层协议相关联的终止技术确定消息的内容。例如,AONS刀片604可以提供数据分组作为对在框312中确定的被映射到应用层协议的方案的输入。该方案可以使用适当的消息终止技术来从数据分组中提取出消息的内容。该方案可以将消息作为输出返回到AONS刀片604。从而,在一个实施例中,从数据分组中提取出的消息独立于被用于发送消息的应用层协议。
在框316中,确定与消息满足的标准相关联的消息分类。例如,AONS刀片604可以存储将不同标准映射到不同消息分类的映射信息。该映射信息指示在可能的许多不同关联中的在框304中建立的关联。AONS刀片604可以确定消息的内容是否满足与已知消息分类中的任何一种相关联的标准。在一个实施例中,如果消息的内容满足与特定消息分类相关联的标准,则确定该消息属于该特定消息分类。
尽管在一个实施例中消息内容被用于确定消息的分类,但是在备选实施例中,包含在消息中的内容以外的信息也可用于确定消息的分类。例如,在一个实施例中,消息内容以及在包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口的组合被用于确定消息的分类。又例如,在一个实施例中,在包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口被用于确定消息的分类,而无论消息的内容如何。
在框318中,执行与在框316中确定的消息分类相关联的一个或多个动作。如果两个或更多个动作与指定的执行顺序(由用户指定输入所指示)相关联,则这些动作被按指定顺序执行。如果这些动作中的任何一个的输出假定被作为输入提供给任何一个动作(如用户指定输入所指示),则指定动作的输出被作为输入提供给其他指定动作。
对于消息可以执行多种不同动作。例如,一个动作可能指示丢弃消息。在这种情况下,阻止消息被转发出网络元件向消息的目的地转发。又例如,一个动作可能指示在将消息转发出网络元件之前利用指定的压缩技术压缩消息。
又例如,一个动作可能指示要以指定方式改变消息的内容。例如,一个动作可能指示指定文本要被插入到消息中的指定位置。例如,该位置可能由消息的XML分级体系结构中的路径指定,或者由在消息中发生的指定文本串指定。又例如,一个动作可能指示指定文本要被从消息中删除。又例如,一个动作可能指示指定文本要替换消息中的其他指定文本。被插入到消息中的文本可能从网络元件外部的数据库动态(“即时”)获得。
又例如,一个动作可能指示要以指定方法改变消息的消息格式。例如,一个动作可能指示消息的格式要从XML变为某种其他格式,例如EDI。又例如,一个动作可能指示消息的格式要从除了XML之外的某种其他格式变为XML。消息格式可以在不改变消息的核心内容的情况下改变,该核心内容独立于消息格式。
又例如,一个动作可能指示消息要利用除了消息的发源地用于发送消息的应用层协议之外的指定应用层协议转发。例如,客户端应用110可能使用第一应用层协议(例如HTTP)来发送消息。因此,当被网络元件104截取时,该消息可能包含HTTP头部。然而,根据指定动作,在网络元件104将消息向消息的目的地转发之前,网络元件104(更具体而言是AONS刀片604)可以修改消息,以使得消息被利用除了HTTP之外的某一应用层协议(例如FTP、SMTP等)运送。
又例如,一个动作可能指示要改变消息的目的地以使得该消息被向与消息的源最初指定的设备不同的某一设备转发。例如,根据指定动作,网络元件104(更具体而言是AONS刀片604)可能将消息封装在一个或多个新的IP数据分组中,这些分组指示与最初截取的IP数据分组指示的目的地IP地址不同的新的目的地IP地址。然后,网络元件104可以将该新的IP数据分组向新的目的地转发。以这种方式,可以实现基于消息内容的路由。
又例如,一个动作可能指示指定事件要被写入到可能在网络元件外部的指定日志中。例如,根据指定动作,网络元件104(更具体而言是AONS刀片604)可能将消息的至少一部分与从其接收到消息的IP地址一起写入到日志文件。
又例如,一个动作可能指示消息在被转发到目的地之前要利用指定密钥进行加密。例如,根据指定动作,网络元件104(更具体而言是AONS刀片604)可能利用指定密钥对消息的至少一部分进行加密,然后将包含经加密的消息的数据分组向消息的目的地转发。
一个动作可能指示在网络元件处缓存的响应要被返回到发出该消息的设备(如果该响应被在网络元件处缓存)。例如,网络元件104(更具体而言是AONS刀片604)可以确定对消息的响应是否在网络元件104处缓存;该响应可能在对同一消息的前一响应经过网络元件104的时已经在网络元件104处被缓存。如果网络元件104确定该响应被缓存,则网络元件104可以将响应返回到消息的发源地。因此,网络元件104不需要将消息转发到消息的目的地,并且消息的目的地不需要发出对消息的另一响应。
如果在动作的执行期间消息被以某种方式修改(例如,内容、格式或协议修改),并且修改后的消息假定要转发出网络元件,则网络元件将修改后的消息封装到新的数据分组中,并向修改后的消息的目的地(其可能也被修改)发送新的数据分组。
消息可能不属于任何已知的消息分类。在这种情况下,根据一个实施例,网络元件不执行任何用户指定的与消息有关的动作。相反地,网络元件仅仅沿到数据分组的指示目的地的路径将数据分组转发到下一跳。
作为流程图300所示方法的结果,诸如客户端应用110、服务器应用112和服务器应用114之类的应用可以彼此通信,就好像没有网络元件充当中介一样,并且好像应用之间彼此利用相同的消息格式和应用层协议进行通信一样。
3.6动作流图4示出了可能与特定消息分类相关联的样本流400。流400按顺序包括动作402-414;其他流可以包括一个或多个其他动作。动作402指示消息的内容应当以指定方式修改。动作404指示指定事件应当被写入到指定日志。动作406指示消息的目的地应当变为指定目的地。动作408指示消息的格式应当被转换为指定消息格式。动作410指示用于发送消息的应用层协议应当变为指定应用层协议。动作412指示消息应当利用特定密钥进行加密。动作414指示消息应当向消息的目的地转发。
在其他实施例中,动作402-414中的任何一个可以独立执行,或者与动作402-414中的任何其他动作相组合地执行。
3.7 AONS示例3.7.1 AONS总论面向应用的网络系统(AONS)是一种用于构建在网络中嵌入智能以更好地满足应用部署的需要的一类产品的技术基础。AONS通过提供对关于什么信息在网络内流动的更大的关注程度并且通过将信息路由到适当的目的地(以该目的地所预期的格式)来帮助客户集成不同的应用,从而补充了现有的网络技术;施行用于信息访问和交换的策略;在网络带宽和处理开销方面优化应用流量流;提供增强的信息流管理,包括监视和度量信息流以用于业务和底层结构(infrastructure)目的;以及通过透明地备份或重路由关键业务数据来提供增强的业务连续性。
AONS通过更多地理解信息流的内容和上下文提供了该增强的支持。同样,AONS主要工作在消息级别,而不是分组级别。一般来说,信息的AONS处理终止了TCP连接以检查整个消息,包括“净荷”以及全部头部。AONS还理解并辅助普遍的应用层协议,例如HTTP、FTP、SMTP和事实上的标准中间设备(middleware)协议。
AONS与运行在通用计算系统上的中间设备产品的不同之处在于,AONS的行为在其简单性、总拥有成本和性能方面更加类似于网络器具(network appliance)。此外,AONS与网络层支持相集成以提供对信息流和管理的更完整的方法,从而将在应用层所需的特征映射到由路由器、交换机、防火墙和其他网络系统实现的低层联网特征中。
尽管在来自Cisco Systems Inc.的现有产品线中提供了某些与AONS具有类似功能的元件,但是这些产品一般对诸如IP/端口地址或HTTP头部之类的信息表现出更加有限的关注度,以提供负载平衡和故障切换(failover)解决方案。AONS提供了用于更宽广的功能支持、更宽广的应用分类以及更大的应用数据的控制和管理程度的框架。
3.7.2 AONS术语“应用”是执行运行在服务器或桌面系统上的业务功能的软件实体。应用可以是打包应用、运行在应用服务器上的软件、运行在主机上的遗留应用、或内部开发以满足业务需要的定制或私有软件、或者执行某种操作的脚本。这些应用可以与同一部门中的(部门的)其他应用、单个企业内的不同部门的(企业内的)其他应用、企业和其合作伙伴间的(企业间的或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协议)头部中,并且被转换为“规范”(canonical)格式。从AONS消息的角度提供了可靠性、日志记录和安全性服务。
从AONS的角度,应用一般用来彼此通信的一组协议或方法被称为“应用访问协议”(或方法)。应用可以利用任何被支持的应用访问方法与AONS网络(一般是端点代理客户端代理和服务器代理)通信。应用访问协议的某些示例包括IBM MQ系列、Java消息服务(JMS)、TIBCO、超文本传送协议(HTTP)/HTTPS上的简单对象访问协议(SOAP),以及简单邮件传送协议(SMTP)。关于各种访问方法的细节将在该文件的后续部分中说明。
存在很多种应用所用的“消息格式”。这些消息格式的范围包括定制或私有格式以及工业特定格式和标准化格式。可扩展标记语言(XML)作为一种用于供应用彼此通信的通用语言或消息格式正得到普遍应用。AONS支持很多种这些格式。
另外,AONS提供了基于应用需要从一种格式到另一格式的转换服务。典型部署可能涉及第一AONS节点,其接收应用消息(客户端代理),将该消息转换为“规范”格式,规范格式的消息被作为AONS消息通过AONS网络运送。服务器代理可能在传递该消息之前将消息从“规范”格式转换为接收应用所理解的格式。为了理解某些非工业标准格式,可以使用消息辞典。
执行多种应用访问方法或协议之间的网关功能的节点被称为“协议网关”。协议网关的示例可以是通过文件传送协议(FTP)接收应用消息并将同一消息作为HTTP贴发送到另一应用的节点。在AONS中,客户端和服务器代理一般被预期执行协议网关功能。
如果应用生成电子数据交换(EDI)格式的消息而接收应用期望消息是XML格式,则消息格式需要被转换,而消息内容需要在转换过程中保持不变。在AONS中,端点代理一般执行该“消息格式转换”功能。
在某些情况下,即使发送和接收应用使用相同的消息格式,对于接收应用来说也需要转换内容。例如,如果一个美国应用正与一个英国应用通信,则这两个应用之间的消息中的日期格式可能需要被转换(从月/日/年到日/月/年),即使应用使用相同的数据表示(或消息格式)时也是如此。该转换被称为“内容转换”。
3.7.3 AONS功能概述如前所定义,AONS可以被定义为基于网络的智能中介系统,其高效且有效地将业务和应用需要与更加灵活和更具响应性的网络服务相集成。具体而言,AONS可以通过以下特性理解AONS工作在比传统网络元件产品(2-4层)高的层(5-6层)。AONS使用消息级别的检查作为对分组级别检查的补充一通过理解应用消息,AONS向多种网络元件产品,例如交换机、防火墙、内容缓存系统和负载平衡器提供“消息交换路由”方面的附加值。AONS在安全性、可靠性、流量优化(压缩、缓存)、可视性(业务事件和网络事件)和变换(例如,从XML到EDI)方面提供了更大的灵活性和网络响应粒度。
AONS是一种综合技术平台,而不仅仅是点解决方案。AONS可以通过分布式智能中介系统实现,该系统位于分布式企业内和企业间环境中的应用、中间设备和数据库之间(用于路由消息、执行变换等)。AONS提供了用于业务流的末端用户配置的灵活框架,以及AONS服务的策略和伙伴驱动的可扩展性。
AONS尤其适合于基于网络的部署。AONS是基于网络的,而不是通用的基于服务器的。AONS是混合的基于软件和基于硬件的(即,基于专用集成电路(ASIC)/现场可编程门阵列(FPGA)的加速(acceleration))。AONS使用流量的(由策略确定的)带外或线内处理。AONS被部署在独立产品(网络家电)以及嵌入式产品(用于多个交换、路由和存储平台的服务刀片)中。
3.7.4 AONS系统概述该部分概括了示例性AONS系统的系统概述。图7是图示了根据本发明一个实施例在示例性AONS网络702中涉及的各种组件的图700。由每个节点执行的角色在后续的部分中详细提及。
在AONS网络702内,关键的构建块包括AONS端点代理(AEP)704-710和AONS路由器(AR)。可以从放置在逻辑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头部封装,并执行与AONS网络有关的任何必要操作(例如,安全性和可靠性服务)。另外,如果必要的话,该消息被AEP CP 704转换为“规范”格式。该消息通过TCP连接沿着到目的地应用718A的路径被运送到AR710。沿着路径的AONS路由器执行消息所需的底层结构服务,并可以基于客户所配置的策略改变路由。该消息在目的地AEP服务器代理(SP)706处被接收到。AEP SP 706执行必要的安全性和可靠性功能,并在必要的情况下将消息转换为接收应用所理解的格式。然后,AEP SP 706利用应用718A和AONS所支持的任何一种访问协议将消息发送到接收应用718A。通过AONS网络702的详细的消息流将在下面的部分中描述。
3.7.5 AONS系统元件该部分概括了从AONS角度使用的不同概念。
“AEP客户端代理”是执行消息的发送方(客户端)上的应用所必需的服务的AONS节点。在该文件的其余部分中,端点代理也指客户端或服务器代理。在处理消息时客户端代理的一般责任是消息预分类和早期拒绝、协议管理、消息身份管理、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.7.6 AONS示例特征在一个实施例中,下层的“子系统服务的AONS基础平台”(AOS)提供了某个范围的通用服务,包括对安全性、压缩、缓存、可靠性、策略管理和其他服务的支持。随后,在该平台的顶端,AONS提供了某个范围的分立功能组件,这些功能组件可以连线在一起以提供对传入数据流量的整体处理。这些“bladeletsTM”意在在由应用或信息技术(IT)管理者所要求的特定策略或动作的上下文中实现个别服务。一系列访问方法适配器确保了对某个范围的入口和出口格式的支持。最后,一组面向用户的工具使得管理者能够适当地查看、配置和设置用于AONS解决方案的策略。这四个功能类别相组合以提供某个范围的末端客户能力,包括增强的安全性、底层结构优化、业务连续性、应用集成和操作可视性。
由AONS解决方案提供的增强的可视性和增强的响应能力提供了多种智能的、面向应用的网络服务。这些智能服务可以总结为四个主要类别增强的安全性和可靠性提供了可靠的消息传递,并且除了现有的网络级别安全性之外,还提供了消息级别安全性。
底层结构优化通过在消息级别利用缓存和压缩以及通过集成应用和网络服务质量(QoS),能够更高效地使用网络资源。
业务和底层结构活动性监视和管理通过读取包含在应用层消息中的信息,AONS可以记录、审计并管理应用级别业务事件,并将这些与公共的、策略驱动的管理环境中的网络、服务器和存储底层结构事件相组合。
基于内容的路由和变换基于消息的路由以及协议、内容、数据和消息格式的变换(例如,XML变换)。属于这些主要类别中的每一种的个别特征将在下面更详细地描述。
3.7.6.1增强的安全性和可靠性认证AONS可以基于包含在给定消息内的各种信息片段(用户名/密码、数字证书(certificate)、安全性声明标记语言(SAML)声明等等)核实进入消息的发送者的身份,并且基于这些凭证(credential),确定消息是否应当被进一步处理。
授权一旦经由消息检查获得了主要凭证,AONS就可以确定消息的发起者应当对其尝试调用的服务具有什么级别的访问。AONS还可以基于这种导出的特权进行路由判决,或者只要消息在AONS网络内,就在适当时阻挡或掩盖消息内的某些数据元素。
加密/解密当消息行进通过AONS网络时,基于策略,AONS可以执行消息元素(整个消息、消息主体或个别元素,例如信用卡号)的加密以维持端到端的私密性。相反地,AONS可以在消息到达给定端点之前执行这些元素的解密。
数字签名为了确保消息完整性并允许不对消息事务进行抵赖,AONS可以在任何给定AEP处对整个消息或个别消息元素执行数字签名。关于哪些内容被签名的判决将由被施加到从每个消息的内容和上下文导出的信息的策略来确定。
可靠性AONS可以通过在不同的私有机制之间充当中介来补充现有的保证消息传送系统。还可以为当前缺乏可靠传递的基于HTTP的应用(包括web服务)提供可靠性。作为附加特征,AONS可以生成成功消息传递的确认,并且在不能确认传递时自动生成异常响应。
3.7.6.2基础设施优化压缩AEP可以在通过网络发送消息数据之前压缩消息数据以节省带宽,并且相反地在向端点传递之前对其解压缩。
缓存AONS可以基于对一类请求定义的规则或者基于在响应中设置的指示符缓存先前消息询问的结果。缓存可以对整个消息或消息的某些元素执行,以减少应用响应时间并节省网络带宽使用。消息元素缓存使得能够对后续消息请求进行增量(delta)处理。
TCP连接共同分担(pooling)通过充当消息客户端和服务器之间的中介,AONS可以合并应用之间所需的永久连接的总数。从而,AONS减少了在其他情况下与一群端点之间的连接的正在进行的发起和拆除相关联的客户端和服务器处理负载。
批处理(batching)AONS中介可以对去往多个目的地的事务消息进行批处理以减少发送系统上的盘I/O开销。类似地,可以对来自多个源的事务消息进行批处理以减少接收系统上的盘I/O开销。
硬件加速通过利用专用硬件在AONS网络设备中高效地执行计算密集功能,例如加密和可扩展风格(Stylesheet)语言变换(XSLT)变换,AONS可以卸下端点服务器的计算资源的负载,从而潜在地提供了较低成本的处理能力。
服务质量AONS可以基于明示消息优先级区分(例如,被标记为“高优先级”的消息)或通过在检测到特定消息内容时确定消息何时需要较高质量的网络服务的策略,将应用级别QoS与网络级别QoS特征相组合。
策略施行优化整个AONS解决方案的核心是确保业务级别策略由底层结构表达、实现和施行的能力。AONS策略管理器确保了一旦检查消息,就在适当时针对该消息采取适当的动作(加密、压缩、路由等)。
3.7.6.3活动性监视和管理审计/日志记录/度量AONS可以选择性地过滤消息,并将其发送到节点或控制台以用于聚集和后续分析。工具能够查看和分析消息流。AONS还可以生成对重要实时事件(与业务和底层结构有关的)的自动响应。通过智能地收集统计信息并发送这些信息以计入日志,AONS可以产生用于审计或计费目的的度量数据。
管理AONS可以组合消息级别和网络底层结构级别事件以获得对整个系统健康度的更深理解。AONS管理接口自身可充当对那些希望可编程地对其进行访问的人的一项web服务。
测试和验证AONS能够截取消息流量的能力可以用于在允许消息到达目的地应用之前验证消息。除了保护消息以免受可能的应用或服务器故障影响之外,该能力还可以被修改以测试新的web服务和其他功能,这是通过在产品部署之前检查来自客户端和服务器的实际消息流而实现的。AONS还提供了“调试模式”(debug mode),该模式可以在可疑故障之后自动开启,或者在通知之后手工开启,以辅助对设备的整体管理。
工作负载平衡和故障切换AONS提供了一种策略和内容两者驱动的工作负载平衡和故障切换的方法。例如,给定AONS节点的在异种系统之间充当中介的能力,则AONS节点可以在提供对消息内容所请求的公共信息的访问的不同系统之间进行平衡。AONS还可以解决确保在消息级别而不是仅在会话级别实现故障切换所必需的消息亲合力(affinity)的问题,而大多数现有解决方案是在会话级别实现的。平衡还可以考虑到用于得到消息回复、路由到备选目的地(如果优选目标暂时响应很慢的话)的响应时间。
业务连续性通过提供将进入消息复制到远程目的地的能力,AONS使得客户能够从系统异常中快速恢复。AONS还可以检测发生故障的消息传递,并自动重路由到备选端点。AONS AEP和AR自身具有内建的冗余和组件级别的故障切换,并且可以被集群化以确保高可用性。
3.7.6.4基于内容的路由和变换基于内容的路由基于其检查并理解消息的内容和上下文的能力,AONS提供了通过将内容元素与预先建立的策略配置进行匹配来将消息路由到适当目的地的能力。该能力允许AONS为由不同应用处理的消息提供公共接口(服务虚拟化),并且由AONS检查消息类型或内容中的字段(部分号、帐户类型、雇员位置、客户邮政编码等等)以将消息路由到适当目的地。该能力还允许AONS利用AONS路由器的最优扇出发送消息到多个目的地(基于静态定义的消息类型或信息主题,或者基于对消息类型或信息主题的动态订制)。该能力还允许AONS重定向先前发送到某个应用的所有消息以使得其可以由新的应用处理。另外,该能力还允许AONS路由消息以用于预处理步骤,该预处理步骤被认为是在接收消息之前所必需的(例如,对于所有旅游请求引入管理预批准步骤)。该能力还允许AONS将超过某一标准(例如,顺序值)的消息的拷贝路由到审计系统,以及将该消息转发到期望目的地。该能力还允许AONS出于工作负载或故障切换原因将消息路由到特定服务器。该能力还允许AONS基于先前的路由判决将消息路由到特定服务器(例如,基于哪一服务器处理原始订单来路由查询请求)。另外,该能力还允许AONS基于消息的源进行路由。该能力还允许AONS通过由源或前一中介定义的步骤序列路由消息。
消息协议网关AONS可以充当使用不同传输协议的应用之间的网关。AONS支持开放式标准协议(例如HTTP、FTP、SMTP),以及普遍的或事实上标准的私有协议,例如IBM Websphere MQ。
消息变换AONS可以变换消息内容以使其适合于特定接收应用。这既可以对XML消息进行,又可以对非XML消息进行,后者是经由消息辞典定义或定义好的工业标准格式的辅助实现的。
3.7.7 AONS功能模块图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)服务(跟踪、调试等)、存档、安装、更新、许可、样本scriptletsTM、样本流、文档化、在线帮助和语言本地化。
在一个实施例中,所支持的平台包括Cisco Catalyst 6503、CiscoCatalyst 6505、Cisco Catalyst 6509和Cisco Catalyst 6513。在一个实施例中,所支持的监管器模块包括Sup2和Sup720。在一个实施例中,与平台有关的特定功能区域包括优化TCP、SSL、公共密钥底层结构(PKI)、加密/解密、到Cat6K监管器的接口、故障切换/冗余、图像管理和QoS功能。
3.7.8 AONS操作模式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.7.9 AONS消息路由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节点内的消息生存周期(lifecycle)涉及入口/出口处理、消息处理、消息执行控制和流执行。
图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通信。流管理子系统191O、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.7.10流程、bladeletsTM和scripletsTM根据一个实施例,流串与bladeletsTM(即,动作)一起定制消息处理逻辑。ScriptletsTM提供了一种用于供客户和伙伴定制或扩展固有AONS功能的机制。某些bladeletsTM和服务可以利用AONS节点提供。
3.7.11 AONS服务如前所述,AONS可以提供一组核心服务以形成可以经由AONS节点传递的增值功能的下层基础。在一个实施例中,这些服务包括安全性服务、标准压缩服务、delta压缩服务、缓存服务、消息日志记录服务、策略管理服务(策略管理器)、可靠消息传送服务、公布/订购服务、活动性监视服务、消息分发服务、XML解析服务、XSLT变换服务和QoS管理服务。在一个实施例中,每种AONS核心服务被实现在服务框架的上下文中。
3.7.12 AONS配置和管理在一个实施例中,AONS节点被提供和配置有一类应用消息,从而其强制施行代表应用端点、业务领域、安全领域、管理领域和网络领域以声明形式定义的策略。此外,对于给定部署情形,AONS节点利用不同软件和硬件子系统的可配置性和可扩展性促进了不同产品功能特征的灵活构成和定制。由于AONS功能的应用和网络实施例,AONS体系结构框架应当有效地且统一地解决各种系统组件和其环境的可配置性、可管理性以及可监视性这些不同方面的问题。
AONS配置和管理框架是基于ISO网络管理论坛所推荐的用于网络管理的五个功能区域(“FCAPS”)的。这些功能区域包括故障管理、配置管理、会计(accounting)管理、性能管理和安全性管理。故障管理是发现、隔离以及修补AONS节点中的问题或故障的过程。配置管理是找到并设置AONS节点的过程。会计管理涉及跟踪AONS资源的使用和利用率以推动其正确使用。性能管理是策量AONS系统组件和整个系统的性能的过程。安全性管理控制对AONS系统上的信息的访问。许多上述功能是经由作为整个AONS解决方案的一部分的适当仪器、程序接口和工具处理的。
图21、图22和图23是图示了AONS配置和管理框架内的实体的图。配置和供应服务器(CPS)是用于AONS策略、流、scriptletsTM和其他可管理实体的配置和管理的中央集线器。可配置数据被从AONS设计工作室(流工具)推到CPS,然后AONS管理员可以将该数据提供给生产部署。还提供了促进过程以经由对生产展示过程的分段/证明的开发来测试和验证改变。配置和供应代理(CPA)驻留在个别AONS刀片上,并且为AONS提供本地控制和分发能力。CPA与CPS交互以得到更新。CPA采取适当的动作以实现改变。CPA还用于收集监视数据以报告给第三方控制台。
3.7.13 AONS监视在一个实施例中,AONS被配置为支持定义好的事件以用于适当的对内部处理活动性的监视和可视性。AONS节点的监视可以经由预先定义的运行在每个AONS节点上的JMX MBean代理实现。该代理与PC联合体(complex)上的远程JMX Mbean服务器通信。AONS MIB被修改以被SNMP集成到第三方控制台。图24是图示了AONS监视体系结构的图。
3.7.14 AONS工具在一个实施例中,提供了下面的工具设置以用于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或其他非易失性存储装置中以供以后执行。以这种方式,计算机系统50可以获得载波形式的应用代码。
5.0扩展和替换在前述说明书中,已经参考本发明的特定实施例描述了本发明。但是,应当清楚,可以对本发明进行各种修改和改变,而不脱离本发明的更宽广的精神和范围。因此,说明书和附图应被当作是说明性的,而非限制性的。
权利要求
1.一种在网络元件中执行变换适配器功能的方法,该方法包括以下计算机实现的步骤在所述网络元件处确定包含在一个或多个数据分组的一个或多个净荷部分中的第一应用层消息,其中所述第一应用层消息遵循第一应用层协议;确定所述第一应用层协议;基于所述第一应用层协议,从所述网络元件可访问的多个适配器中选择第一适配器;以及将所述第一应用层消息作为输入提供到所述第一适配器,其中所述第一适配器将所述第一应用层消息转换成不遵循所述第一应用层协议的第二消息。
2.如权利要求1所述的方法,还包括在所述网络元件处截取所述一个或多个数据分组,其中所述一个或多个数据分组的目的地为位于不同于所述网络元件的设备上的应用。
3.如权利要求1所述的方法,还包括从位于所述网络元件外的数据存储库中读取所述第一应用层消息,其中所述第一应用层消息已被位于不同于所述网络元件的设备上的应用存储在所述数据存储库中。
4.如权利要求3所述的方法,其中所述数据存储库是消息队列,并且其中读取所述第一应用层消息的步骤包括判断所述消息队列是否包含任意应用层消息;并且响应于确定所述消息队列中包含应用层消息,从所述消息队列中读取所述第一应用层消息,并从所述消息队列中删除所述第一应用层消息。
5.如权利要求1所述的方法,还包括从发送队列中读取所述第一应用层消息,其中所述发送队列中存储了应用发送到消息队列别名的应用层消息,其中所述消息队列别名对所述应用表现为远程目的地应用从其读取应用层消息的远程目的地消息队列,并且所述发送队列独立于所述远程目的地消息队列。
6.如权利要求5所述的方法,还包括将所述第二消息转换成遵循某一应用层协议的第三应用层消息;并且将所述第三应用层消息发送到中间人,该中间人将所述第三应用层消息存储在所述远程目的地消息队列中。
7.如权利要求1所述的方法,还包括基于所述第二消息,确定消息分类;基于所述消息分类,从所述多个适配器中选择第二适配器;以及将所述第二消息作为输入提供到所述第二适配器,其中所述第二适配器将所述第二消息转换成遵循第二应用层协议的第三应用层消息。
8.如权利要求7所述的方法,其中所述第二应用层协议不同于所述第一应用层协议。
9.如权利要求7所述的方法,其中所述第二适配器将所述第三应用层消息发送到中间人,该中间人将所述第三应用层消息存储在所述网络元件外部的、目的地应用从其读取应用层消息的目的地消息队列中。
10.如权利要求1所述的方法,其中确定所述第一应用层协议的步骤包括确定在其上接收到所述一个或多个数据分组的传输控制协议(TCP)端口;以及基于映射信息,确定所述TCP端口与所述第一应用层协议相关联。
11.如权利要求1所述的方法,还包括在所述网络元件处接收用于实现所述第一适配器的程序代码;并且响应于接收到所述程序代码,将所述程序代码存储在所述网络元件处。
12.如权利要求1所述的方法,还包括在接收到所述一个或多个数据分组之后,在所述网络元件处接收用于实现第二适配器的程序代码;以及响应于接收到所述程序代码,将所述程序代码存储在所述网络元件处。
13.如权利要求1所述的方法,其中所述第一适配器通过从所述第一应用层消息中删除特定于所述第一应用层协议的信息来将所述第一应用层消息转换成所述第二消息。
14.如权利要求1所述的方法,其中所述第一应用层消息遵循超文本传输协议(HTTP),并且其中所述第二消息不遵循HTTP。
15.如权利要求1所述的方法,其中所述第一应用层消息遵循IBMMQ协议,并且其中所述第二消息不遵循IBM MQ协议。
16.如权利要求1所述的方法,其中所述第一应用层消息遵循TIBCOEMS协议,并且其中所述第二消息不遵循TIBCO EMS协议。
17.如权利要求1所述的方法,其中所述第一应用层消息遵循文件传输协议(FTP),并且其中所述第二消息不遵循FTP。
18.如权利要求1所述的方法,其中所述第一应用层消息遵循简单邮件传输协议(SMTP),并且其中所述第二消息不遵循SMTP。
19.如权利要求1所述的方法,其中所述网络元件是交换机或路由器。
20.一种用于在网络元件中代表应用透明地执行消息净荷处理功能的方法,该方法包括以下计算机实现的步骤在所述网络元件处截取目的地为不同于所述网络元件的设备的一个或多个数据分组;基于包含在所述一个或多个数据分组中的信息,确定特定消息分类;确定与所述特定消息分类相关联的一个或多个动作;在所述网络元件处执行所述一个或多个动作;以及从所述网络元件发送包含修改后的消息的一个或多个数据分组,其中所述一个或多个动作中的至少一个包括修改包含在所述一个或多个数据分组的一个或多个净荷部分中的应用层消息的一部分,以产生所述修改后的消息。
21.一种承载了一个或多个指令序列的计算机可读介质,所述指令序列用于在网络元件中执行变换适配器功能,其中当指令被一个或多个处理器执行时使得所述一个或多个处理器执行以下步骤在所述网络元件处确定包含在一个或多个数据分组的一个或多个净荷部分中的第一应用层消息,其中所述第一应用层消息遵循第一应用层协议;确定所述第一应用层协议;基于所述第一应用层协议,从所述网络元件可访问的多个适配器中选择第一适配器;以及将所述第一应用层消息作为输入提供到所述第一适配器,其中所述第一适配器将所述第一应用层消息转换成不遵循所述第一应用层协议的第二消息。
22.一种用于在网络元件中执行变换适配器功能的装置,包括用于在所述网络元件处确定包含在一个或多个数据分组的一个或多个净荷部分中的第一应用层消息的装置,其中所述第一应用层消息遵循第一应用层协议;用于确定所述第一应用层协议的装置;用于基于所述第一应用层协议,从所述网络元件可访问的多个适配器中选择第一适配器的装置;以及用于将所述第一应用层消息作为输入提供到所述第一适配器的装置,其中所述第一适配器将所述第一应用层消息转换成不遵循所述第一应用层协议的第二消息。
23.一种用于在网络元件中执行变换适配器功能的装置,包括网络接口,其耦合到用于从其接收一个或多个分组流的数据网络;处理器;一个或多个存储的指令序列,所述指令序列在被所述处理器执行时,致使所述处理器执行以下步骤在所述网络元件处确定包含在一个或多个数据分组的一个或多个净荷部分中的第一应用层消息,其中所述第一应用层消息遵循第一应用层协议;确定所述第一应用层协议;基于所述第一应用层协议,从所述网络元件可访问的多个适配器中选择第一适配器;以及将所述第一应用层消息作为输入提供到所述第一适配器,其中所述第一适配器将所述第一应用层消息转换成不遵循所述第一应用层协议的第二消息。
24.一种系统,包括客户端应用,其利用第一应用层协议发送应用层消息,其中所述消息被包含在被寻址到服务器应用的一个或多个数据分组中;服务器应用,其利用不同于所述第一应用层协议的第二应用层协议接收所述消息;以及网络元件,其截取所述一个或多个数据分组并修改所述消息,以使得所述消息使用所述第二应用层协议而非所述第一应用层协议。
全文摘要
本发明公开了一种用于在网络元件中代表应用执行消息和变换适配器功能的方法。根据一个方面。该网络元件确定被统一包含在数据分组的净荷部分中的应用层消息。该应用层消息遵循应用层协议,例如超文本传输协议(HTTP)。该网络元件确定应用层消息所遵循的应用层协议。基于该应用层协议,从多个网络元件可访问的适配器中选择一个适配器。该应用层消息给提供到所选择的适配器,该适配器将应用层消息转换成不特定于任何特定应用层协议的“规范”消息。
文档编号G06F15/16GK101023420SQ200580031604
公开日2007年8月22日 申请日期2005年11月10日 优先权日2004年11月17日
发明者普拉文·辛哈勒, 李清清, 尤扎·科塔姆巴瓦拉, 帕利凡·欧利森, 董伟业, 苏尼尔·波特 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1