专利名称::用于在通信网络中进行交易监控的方法和系统的制作方法
技术领域:
:本发明涉及用于在通信网络中进行交易(transaction)监控的方法和系统。
背景技术:
:当前,典型的企业技术景观(landscape)以其信息系统的分布特性和其技术的非均匀性为特色。在几十年的发展和创新之后,看到"最佳组合(best-of-breed)"的封装的(packaged)应用(例如ERP、CRM、SCM、SRM、PLM等)、自产系统以及遗留应用是很普通的,其每一个都具有使其互连的众多接口。在这些分布且复杂的环境中,处理典型交易的动作跨越众多的应用和技术边界,常常使企业不能理解交易的执行路径及其逻辑和技术的相互依赖性。在没有交易如何执行的必备知识的情况下,企业在其监控交易以及检测和补偿瓶颈、等待时间和失败点的能力方面受到严格限制。由于企业组织得知交易可见性与经营业绩之间的直接相关性,因此希望增加其自动业务交易的可见性。达到高度可见性使企业能够改进客户服务,监控交易成绩和健康状态,优化业务逻辑,以及对出现的问题执行有效的解决方案。Klein等人的美国专利公布2005/0192894公开了用于重构交易实例的方法,其中,该方法是通过使交易实例中的消息对之间的文本相关而利用预定义的交易信息来实现的。Blackwell等人的美国专利7,003,781公开了用于监控分布式数据处理系统的方法和系统。检查所产生的应用程序接口(API)调用以确定特定的API调用是否满足预定的API调用准则。如果特定的API调用满足预定的API调用准则,则API调用内容的一部分被存储为存储事件。处理该存储事件以逻辑地识别相关的事件,例如为与特定商业交易关联的事件。为逻辑相关的事件显示所存储的API调用内容数据。Alon等人的美国专利公布20060015512公开了用于在多层计算环境中监控所选层的装置。该装置包括上下文代理和动态层扩展。上下文代理与所选层关联,且与其它上下文代理结合,其中,每个上下文代理都与各自的层关联。动态层扩展与上下文代理结合且与所选层的具体的预定点结合,其中,该预定点例如为所选层的至少一个请求进入端口。动态层扩展监控经过所选层的请求流量,被监控的请求流量包括在请求进入端口接收的来自邻近层的至少一个进入请求。动态层扩展识别所监控的请求流量中的每个请求,并至少发送请求标识符至上下文代理。上下文代理也接收与进入请求的请求上下文相关的信息,其中,该进入请求来自与邻近层有关的上下文代理。上下文代理根据所接收的请求标识符,把与进入请求的请求上下文相关的信息与该进入i貪求相关联
发明内容术语表接下来是用在说明书和权利要求中的术语表及其定义,有些是在本领域中众所周知的,其它的则是新创的。计算节点计算节点是用于接收和/或生成信息的通信网络的节点。为了方便起见,计算节点在本文中有时被简单地称为"节点"。节点的示例是万维网服务器、数据库服务器、队列、虚拟环境中的虚拟服务器和服务器中的处理。群集器、冗余系统和同一服务器的多个实例被认为是单节点。消息-消息是在应用层发送的信息单位。定义了关于消息的三类信息网络信息(TCP/IP)、实例信息和应用(应用层)信息。示例包含对网页的请求的、从PC到万维网服务器的消息。其是方法"get(获取)"的HTTP消息。考虑银行数据库的"Update(更新)"消息。假设其具有如下结构类型更新。会话Id:XXX。动作存款/取款。账号XXX。总额XXX。消息类型如果从网络中的特定源节点发送至特定目的节点的两个或更多的消息具有相同的结构且在应用中造成相同的动作,则认为这些消息是相同类型的。输入消息类型和输出消息类型之间的直接因果关系如果类型A的消息到达其目的节点会造成从该节点产生类型B的消息,则认为类型A和类型B这两个消息是因果相关的。示例考虑只有被4个源批准才能执行的"Buy(买)"命令。则"buy"消息与所有4个批准消息存在直接因果关系。在一个方面,本发明提出了通过将消息与先前遇到的消息结构进行比较,而试图根据消息的结构推断出消息类型的分类模块。将消息输入快速检测模块,其中,该快速检测模块将当前消息的结构与分类器基于先前遇到的消息的消息结构而定义的消息结构进行比较。为了推断出当前消息的结构是否与任一先前遇到的消息结构一致,快速检测模块应用一个或多个统计测试。当快速检测模块成功识别当前消息结构与先前遇到的消息结构一致时,将消息及其网络数据和推断结构(inferredstructure)存储到收集器中。当快速检测模块未能识别当前消息结构与存储器中的消息结构一致时,则将该消息输入至分类器中,其中,该分类器收集到达和离开每个计算节点且其结构不能由快速检测模块识别的消息。分类器运行分类算法,其中,该分类算法将输入至计算节点的消息集和从计算节点输出的消息集分割为消息子集,使得每个子集中的消息具有相同的推断结构且被假定为特定的消息类型。对于由分割所定义的每个消息类型,该算法返回能代表消息类型的推断的消息结构。从而,快速检测模块的存储器中保存着消息类型的推断结构列表,其中,无论何时分类器遇到新的消息结构,该分类器更新该列表。而且,分类器完全基于输入分类模块的消息所包含的信息来学习消息类型,且不依赖于消息类型的任意预定义的知识或任意其它用户提供的定义。在另一方面,本发明提出了相关器模块,其中,该相关器模块推断计算节点处的输入消息类型和输出消息类型之间因果关系。对于每个计算节点,相关器模块保持在特定时间周期内输入计算节点的消息集的第一集合,以及在同一时间周期内从计算节点输出的消息集的第二集合,其中,每个集中的消息具有相同的推断消息类型。应用一个或多个统计测试,以检测输入计算节点的消息类型和从计算节点输出的消息类型之间的因果关系。对于所执行的每个测试,产生输出以指示输入消息集和输出消息集的因果相关性的程度。当执行两个或更多的测试时,测试的输出被输入至消息类型相关器,其中,对于每对输入的消息类型和输出的消息类型,该相关器输出关于输入消息类型和输出消息类型是否因果相关的最终推断。对于每对被推断具有因果关系的输入消息类型和输出消息类型,消息类型相关器输出该对的统计,例如,计算节点处该对的服务时间。在另一方面,本发明提出了用于监控分布式网络内的交易的系统。本发明的监控系统是基于网络的传输层中的跟随数据流,是非侵入性的,且不需要关于交易或消息的预定义的信息。根据本发明的这个方面,该系统包括一个或多个收集服务器和一个管理服务器。每个收集服务器执行本发明的分类模块和相关模块。管理服务器从网络中每个收集服务器的分析和结果存储器中搜集关于网络中消息流的信息。在管理服务器处搜集的数据用于重构网络中的交易,以及用于从每个收集服务器所提供的对路由和服务时间性能的统计推断出网络中交易的基线行为。可将统计的当前值与基线行为进行比较,当网络的当前行为显著偏离基线行为时,将会发出警告。该系统可包括用于显示该警告和网络上任意其它相关信息的监控器。从而,在第一方面,本发明提出了一种用于学习和识别网络中的消息类型的方法,包括完全基于两个或更多消息中所包含的信息,学习和识别消息类型。在第二方面,本发明提出了一种用于对输入计算节点或从计算节点输出的消息集合进行分类的方法,包括将消息集划分为相似消息的子集,以及对每个子集的消息结构进行特征化。在第三方面,本发明提出了一种用于推断输入网络中计算节点的消息类型和从所述计算节点输出的消息类型之间的因果关系的方法,包括应用一个或多个统计测试。在第四个方面,本发明也提出了一种用于监控分布式信息网络内交易的系统,包括(a)管理服务器;(b)—个或多个消息收集服务器,每个收集服务器配置为执行分类模块和相关模块中的一个或两个,每个消息收集服务器将来自所述分类模块和所述相关模块中的一个或两个的输出发送至所述管理服务器,其中,为了确定所述系统中的交易的性能,所述管理服务器配置为分析来自所述一个或多个收集服务器的数据。本发明也提出了一种计算机程序,其包括计算机程序代码装置,当在计算机上运行该程序,该计算机程序代码装置执行本发明方法的所有步骤,并且,所述计算机程序在计算机可读介质上实施。为了理解本发明且为了明白其在实践中如何实现,参考附图,只通过非限制性的实施例描述优选的实施方式,其中图1示出了典型的消息结构;图2示出了根据本发明的一个实施方式的分类模块;图3示出了根据本发明的一个实施方式的、由图2的分类模块实现的用于学习和识别消息类型的方法;图4示出了根据本发明的一个实施方式的相关器模块;图5示出了图4的相关器模块的相关器的结构;图6示出了根据本发明该方面的一个实施方式的、用于监控分布式信息网络中的交易的系统;图7示出了用在图6的系统中的消息重构器;以及图8示出了根据本发明的一个实施方式的管理服务器。具体实施例方式在网络中的计算节点之间发送的每个消息都是利用具体到其类型的结构规则构成的。因此,相同类型的消息具有共同的结构。图l示出了消息结构600的实施例。结构600由若干常数字段601组成,其中,每个常数字段601的后面跟着可变字段602。具有给定消息类型的所有消息具有相同的常数字段601,但是相同类型的不同消息可在任一可变字段具有不同值。图1示出了三个常数字段602。这只是作为实施例,且消息结构可具有任意数量的常数字段。图2示出了根据本发明该方面的一个实施方式的、一般表示为205的分类模块。该分类模块205企图利用下文描述的学习和识别算法来推断出给定消息的类型,其中,将该消息与分类模块205先前遇到的消息结构进行比较。分类模块205包括具有存储器311的快速检测才莫块301,其中,快速检测模块301与分类器303和收集器302进行通信。图3示出了根据本发明该方面的一个实施方式的、由分类模块205实现的用于学习和识别消息类型的方法。在步骤20中将消息输入快速检测模块301。在步骤22中,快速检测模块301将当前的消息与分类器303基于先前所遇到的消息而定义并存储在存储器311中的消息结构相比较。可利用例如在DanGusfield,"AlgorithmsonStrings,TreesandSequences(字符串、树和队列的算法)",CambridgeUniversityPress.(剑桥大学出版社),pp215-245,1997中所提出的排列方法,通过将消息与结构进行排列,使得消息与结构的常数字段的相似度最大化,来完成比较。在步骤24中,确定快速检测冲莫块301是否成功识别与当前结构相符的、存储器311中的消息结构。如果快速检测模块301成功识别了与当前消息相符的、存储器中的消息结构,则所识别的消息结构在本文中被称为输入消息的"推断结构",且在步骤26中,将消息及其网络数据和推断结构存储到收集器302中,并且该过程结束。如果在步骤24确定快速检测模块301未能识别与当前消息结构相符的、存储器中的消息结构,则在步骤28中将该消息输入分类器303。分类器303收集到达每个计算节点和从每个计算节点离开且其结构未被快速检测模块301识别的消息。在步骤30中,分类器303运行分类算法,其中,该分类算法将输入到计算节点的消息集或从计算节点输出的消息集分割为相似消息的子集。在一个优选的实施方式中,分类算法使用层次分类算法,其中,该层次分类算法利用消息排列得分作为差异函数。例如,以DanGusfi'eld,"AlgorithmsonStrings,TreesandSequences",CambridgeUniversityPress,pp215-245,1997所公开的方式实现排列计分。然后对于每个子集,为该子集中的所有消息推断出公共的结构。为此,该子集的所有消息被排列在一起。子集的所有消息的基本相似的字段被指定为常数字段。其它字段被指定为可变字段。对于由分割定义的每个消息类型,分类算法返回消息类型的推断结构。在步骤32中,将这些新的消息结构输入快速检测模块301的存储器311中,然后该过程结束。从而,快速检测模块301的存储器311保存消息结构列表,其中,只要分类器303遇到新的消息结构,分类器303便更新该列表。而且,分类器303仅基于输入分类模块303的消息中所包含的信息来学习消息类型,并不依赖于消息类型的任何预定义的知识或任何其它的用户提供的定义。图4示出了根据本发明该方面的一个实施方式的、一般地表示为306的相关器模块。相关器模块306包括收集器310,其中,收集器310可以是上文参考图2描述的收集器302。相关器模块306进一步包括相关器304以及分析和结果存储器305。对于每个计算节点,收集器310保存在特定时间周期内输入计算节点的消息集的第一集合,以及在同一时间周期内从该计算节点输出的消息集的第二集合,其中,每个集中的所有消息具有相同的推断结构并因此具有相同的消息类型。将第一集合和第二集合输入至相关器304。图5示出了相关器304的结构。相关器304包括一个或多个测试模块510。每个测试模块应用统计测试,以检测输入计算结点的消息类型和从计算结点输出的消息类型之间的因果关系。在由输入消息类型的消息集和输出消息类型的消息集构成的每对上执行统计测试。对于由测试模块510执行的每个测试,该模块输出代表输入消息集与输出消息集的因果相关程度的各自的输出515。在一个实施方式中,一个或多个的输出515是二进制化的输出,其中,"1"表示测试模块已确定输入消息类型和输出消息类型是因果相关的,而"0"表示测试模块已确定输入消息类型和输出消息类型是非因果相关的。在另一个实施方式中,假定虚假设(两个集是因果相关的)是正确的,则一个或多个输出515具有拒绝虚假设的概率的形式。作为由测试才莫块510执行的测试的一个实施例,测试模块510可从收集器310接收每个消息集的时间线。该时间线由发生的事件列表构成,其中,每个发生的事件是消息集中的消息的到达时间或离开时间。然后,对于每对消息输入集和消息输出集,测试模块510执行计算输入时间线和输出时间线的巻积的算法,找到巻积值最大时的延迟T和在该延迟7"上的巻积值。在一个实施方式中,如果巻积的最大值大于预定的阈值,则时间测试模块510输出1,指示输入消息类型和输出消息类型是因果相关的。在该情况下,测试模块510也输出延迟7"的值,作为由输入消息类型和输出消息类型构成的消息类型对的服务时间。否则,测试模块510输出0,指示输入消息类型和输出消息类型是非因果相关的。在另一个实施方式中,测试模块510计算巻积最大值至少是在随机优先条件下由测试模块计算所得的值的概率。作为由测试才莫块510执行的测试的第二实施例,测试模块510可执行数据相关算法,其中,该数据相关算法基于输入消息类型的推断结构和输出消息类型的推断结构的可变字段602的值,确定输入消息类型和输出消息类型是否具有直接因果关系。一方面,通过检查输入消息集的一个或多个可变字段602内的数据与输出消息集的一个或多个可变字段的值的相似性,所述算法确定该输出集基于该输入集而产生的才既率。侈寸^口,^口"Algorithmsonstrings,treesandsequences",DanGusfield,Cambridgeuniversitypress,1997,pages215-245中所公布的,可利用字符串匹配的方法,根据可变字段的给定值完成概率的计算。在一个实施方式中,如果概率大于给定的阚值,则通过数据考虑因素认为该消息类型是因果相关的。在另一个实施方式中,测试模块510计算输出集基于输入集产生的概率,该概率至少是在随机优先条件下由测试模块计算所得的值。作为实施例,输入消息集可为如下消息列表/DJohnSmith12340wi/wfliirf5f/KSy挑6tf/CGENv4/Mo"d500/Z)MarkSmithl235Own挑flw^/丑C/KS^附60/CGET^4挑o"H500/DJohnCohen1236CVi挑附C/ES);挑6o/CGE]SL4附ond600并且输出消息集可为如下消息列表CVwi挑a/K/C/rgcA6fl7flwc^FiV^iVfl挑eJohiiL"W7Vfl挑gSmith/4cc做"l!^VM附/254CVwi附a/frfC7/recAAfl/fl"c^7/^7Vfl挑eMarkXflWiVfl附eSmitlL4ccoM"^V"附1235CVwi/w朋rfC/rgc幼"/fl"ceFiys^V"附eJohnLflW7Vfl挑eCoherL4c^""^VM/w1236在该实施例中,数据相关算法将期望得到这样的结论基于输出消息中位于CV挑附fl/irfC/recA:6a/fl/iceF/i^iVa挑e、丄as^Va挑e和Jcc仰/i^Vmw之后的可变字段与//>之后的输入可变字IS:之间的相似性,通过数据断定输入消息类型和输出消息类型是因果相关的。当相关器304执行两个或更多的测试时,将测试的输出515输入消息类型相关器403。对于每对输入消息类型和输出消息类型,消息类型相关器403输出关于输入消息类型和输出消息类型是否因果相关的最终判断。基于测试模块510的输出515,确定相关器403的输出516。在一个实施方式中,输出516是二进制化的,其中,l指示相关器已确定该输入消息类型和输出消息类型是因果相关的,0指示测试模块已确定输入消息类型和输出消息类型是非因果相关的。在另一个实施方式中,当虚假设(两个集是因果相关的)正确时,输出516为拒绝虚假设的概率的形式,和/或,虚假设不正确时,输出516为接受虚假设的概率的形式。例如,只有所有的测试确定输入消息类型和输出消息类型是因果相关的,相关器403的输出516才可确定该消息类型是因果相关的。作为另一个实施例,只有至少一个测试确定消息类型是因果相关的,相关器403才可确定该消息类型是因果相关的。作为另一个实施例,只有至少预定数量的测试确定消息类型是因果相关的,相关器才可确定该消息类型是因果相关的。消息类型相关器403的输出516被输入至分析和结果存储器305。(a)对于每个计算节点,当前正在处理的输入消息类型列表和输出消息类型列表;(b)每个消息的路由时间;当测试模块510确定输入消息类型和输出消息类型是因果相关时,该测试模块还基于被执行的测试,向消息类型相关器403输出计算节点处、在新近的时帧中该对消息类型的行为的一个或多个统计。例如,当测试计算时间线的巻积时,所述统计可能是延迟t,该延迟t代表时间线的时帧中特定类型的输入和输出消息对的平均服务时间。对于由消息类型相关器403确定的具有因果关系的每对输入消息类型和输出消息类型,消息类型相关器向分析结果存储器305输出接收自任意测试模块510的该对消息类型的统计,例如服务时间t。因而分析结果存储器305包含被推断为具有因果关系的输入消息类型和输出消息类型的所有对的集合,以及在时帧期间在计算节点处的该对消息类型的行为统计。图6示出了#4居本发明该方面的一个实施方式的用于监控分布式信息网络中的交易的、一般表示为100的系统。网络100包括一个或多个客户106、一个或多个分布式交换机104、一个或多个接入交换机101。以层次方式设置客户106、分布式交换机104和接入交换机,其中,一个或多个客户106连接至公共的分布式交换机104,一个或多个分布式交换机连接至公共的接入交换机101。接入交换机101连接至网络100的核心105。才艮据本发明的该方面,网络IOO进一步包括一个或多个收集服务器102和管理服务器103。在图6的实施方式中,每个收集服务器102通过端口监控器连接至不同的接入交换机101。管理服务器103在分布式交换机101处连接至网络100。系统100也包括连接至接入交换机101的一个或多个计算节点107。如下文所述,每个收集服务器102执行分类模块205、相关模块306和消息重构器310,并将存储在分析和结果存储器305中的数据发送至管理服务器103。图7示出了消息重构器310。消息重构器310包括在传输层收集流量的网络基础i殳施卡(NetworkInfrastructureCard,NIC)201。嗅探器(Sniffer)模块202清空网络基础设施卡201并将重构TCP流的TCP包传给细栈(thinstack)模块203。开放的源实用程序(例如LibPCAP、Ethereal和RawSocket)可用于嗅探器202。消息探测器204接收TCP流并重构应用层消息。消息探测器204接收TCP流,并将TCP流分成利用包内的网络信息构成应用层消息的包集合。每个包集合按顺序进入构成消息的字节串中,且被输出至分类模块205。管理服务器103从网络中的每个收集服务器102的分析和结果存储器305搜集关于消息流的信息。在管理服务器103处所搜集的数据用于重构网络中的交易,并用于从每个收集服务器提供的统计推断出网络中的交易的基线行为,其中,所述统计是关于具有因果关系的每对输入消息类型和输出消息类型的特性的。统计的当前值可显示在可连接至管理服务器103的监控器109上,或可通过因特网访问。连续地比较统计的当前值和基线统计,并且当一个或多个统计的当前值偏离其基线值时,则会在监控器109上显示警告。如图8所示,管理服务器103具有连通性和数据收集模块501,其中,连通性和数据收集模块501从收集服务器102的消息和数据存储器305接收数据。消息类型和因果关系数据直接传给交易识别模块502,其中,在交易识别模块502处每个交易的流被重构。交易识别模块502包含网络100的结构并利用输入数据内的因果关系重构所有可能的交易类型。例如,无原因消息类型的消息类型可被认为是交易的初始状态。该模块通过递归地查看由交易的最终步骤造成的消息类型,从初始状态消息类型创建交易流。该输出是交易类型的列表及其在网络中的物理流。交易识别模块502的输出连同来自连通性和数据收集模块501的关于消息类型特性的数据一起,直接传给基线和趋势分析模块503。对于每个消息类型,定义了因果相关的消息类型和交易的对、特性行为的基线,并用公式表示了趋势规则。对于每个消息类型和因果相关的对,该统计包括网络100在时间方面的特性,以及与该时刻的网络状态有关的信息。基线和趋势分析模块503分析该消息并动态地定义基线行为。适应的趋势分析允许为特定的消息类型和/或特定的交易类型进行低性能的预测。将该信息发送至当前网络状态储存库504。当前网络状态储存库504包含基线网络分析数据和当前网络统计。当前网络状态储存库504将当前统计和基线进行比较,并应用统计测试以确定任意一个或多个当前统计是否明显偏离基线。当前网络状态储存库504管理到达监控器109的信息流。为了监控交易特性和检测交易流中的瓶颈,监控器109允许操作者通过物理网络以及通过交易流监控系统。其也使物理故障和由该故障所影响的交易之间相互关联。本发明提出了为计算节点聚集相似输入消息和相似输出消息、以形成逻辑组的方法,其中,逻辑组构成用于计算结点的行为模式。除了一个接一个地接收输入消息和输出消息的能力之外,该方法没有关于计算结点的特性或其输出流和输入流的任意假定。本方法与整个输入消息和整个输出消息作为两个不同的组的工作完全一致。消息4仑廓将"消息轮廓"定义为由"常数序列"和"可变序列"构成的字节序列。"消息轮廓"由一些消息(大于1)以递增的方式构成。用消息排列的方法为相似的消息(例如,字节序列)构造消息轮廓。消息队列两个或更多消息之间的"消息排列"意味着一个接一个地写入序列,且(有时)将唯一的符号'-,加入到排列的这些序列中。表l:两个消息之间的消息排列消息1-ABCD<table>tableseeoriginaldocumentpage21</column></row><table>消息2-ABGD<table>tableseeoriginaldocumentpage21</column></row><table>表3:三个消息之间的消息排列:消息1-ABD消息2-ABGD消息3-ABCD<table>tableseeoriginaldocumentpage21</column></row><table>表1和表2都说明了符合该定义的两个消息排列。在表2中,已为第一消息的第三列上加上符号'-,作为排列的一部分。在这些表中符号A、B、C、D、G代表0-255之间的任意字节值。相似性得分为每个消息排列计算唯一的得分。通过对每个列的各个得分求和以确定该得分。即,当在同一列上具有两个或更多的符号(实际上,2或更多的字节或比特)或更多时,由得分函数确定该得分。该函数为符号集确定该列排列的相对正确性。对于所有的序列,当列由相同的符号填充时,命名其为"匹配"(例如,在表3中匹配列1、2和4)。然而当一个或多个符号不同于相同列上的其它符号时,称其为"错配"(例如,在表3中"错配"列3)。常数序列当消息排列在其它消息之上时,"消息轮廓"中的"常数序列"由所有消息共享的(一个或多个)字节序列定义。而"可变序列"是(一个或更多)位置占有者序列,其意味着在这些序列的排列上,该位置占有者的列包含不同的值或符号(如'-,)。表4:由三个消息的排列得到的"消息轮廓"消息1-ABD消息2-ABGD消息3一ABCD<table>tableseeoriginaldocumentpage22</column></row><table>在表4中,可见具有两个"常数序列"和一个"可变序列,,的"消息轮廓"的实施例。两个"常数序列"是AB和D。"可变序列"作为位置占有者在此表示为*。将消息分为相似轮廓的方法1.对于每个消息,检查其是否符合已存在的消息轮廓i.每个消息轮廓具有描述成为该轮廓一部分的消息所需的最小相似性得分的阈值数。1.相似性得分是描述排列的相似性级别的函数。a.例如简单的实施例,当同一列上的符号相同时,可简单求和,将100加到总得分上,当两个符号不同时,将1加入到总得分上。该相似性将会是和除以(轮廓的长度*100)b.可由具体的得分矩阵255x255确定更详细的得分。在每个单元中都有一个得分,当具有行索引值的字节位于相同的列上且列具有列索引值的字节时,可确定该得分。ii.为了在消息轮廓和新消息这两者之间找到最优的排列。使用动态的设计以检查新消息和已存在的消息轮廓之间的排列得分。(参见称为序列排列得分计算的下一部分)1.为单元(i,j)计算得分,为下列三项的最大值a.单元("1,卜1)+得分矩阵(序列l[i],序列[j])b.单元(>1,_0+间隔函数(i,j)c.单元(ij-l)十间隔函数(i,j)2.对于每个单元,保持指针指向下列从1开始的最佳相应结果的其中之一。a.单元(i画l,j國l)b.单元(i,j-l)c.单元(j-l,i)3.—次填满一列的单元4.查看最后单元,然后向后追踪消息和消息轮廓之间的最佳排列。通过在消息轮廓中搜集输入消息和输出消息的能力,在计算节点通信模式上创建了明晰的观察。利用该分组来计算发生在两个轮廓之间(两个输入轮廓之间、两个输出轮廓之间或输入轮廓和输出轮廓之间)的通常的计算时间。在识别消息轮廓之后,对于每个消息轮廓,可知将"感兴趣的,,数据传给计算节点的位置,可利用该数据进行应用的审核和记日志。也可利用提取的数据以使相关的进入消息轮廓和输出消息轮廓相关联。本发明提出了通过分析机制观看网络中的服务器的能力,能够使用更先进的统计而不是通常包的基础通信分析。其改进是对"逻辑"消息及其对其它消息的行为而不是对包的行为进行统计和测量。例如,因为通常的行为发生在特定的轮廓上,所以可为特定类型的请求计算通常的执行时间而不是计算一般包的往返时间。权利要求1.一种用于学习和识别网络中的消息类型的方法,包括完全基于两个或更多消息中所包含的信息,学习和识别消息类型。2.如权利要求1所述的方法,包括(a)将当前消息与一个或多个先前定义的消息结构进行比较;以及(b)应用比较法,以推断所述当前消息的结构是否与所述先前定义的消息结构中的任意一个相一致。3.—种用于对输入计算节点或从计算节点输出的消息集合进行分类的方法,包括将消息集划分为相似消息的子集,以及对每个子集的消息结构进行特征化。4.如权利要求3所述的方法,其中,划分输入计算节点或从计算节点输出的消息集包括,利用消息排列得分作为差异函数的层次分类算法。5.—种用于推断输入网络中计算节点的消息类型和从所述计算节点输出的消息类型之间的因果关系的方法,包括应用一个或多个统计测i式。6.如权利要求5所述的方法,其中,所述一个或多个统计测试的一个或多个输出是二进制的输出。7.如权利要求5所述的方法,其中,假定两个集合是因果相关的虚々支设是正确的,所述一个或多个统计测试的一个或多个输出是拒绝所述虚々H殳的相无率的一个或两个。8.如权利要求5所述的方法,其中,统计测试包括计算所述输入消息类型的时间线和所述输出消息类型的时间线的巻积。9.如权利要求8所述的方法,进一步包括计算所述巻积最大时的延迟7"和/或在所述延迟7"时的所述巻积的值。10.如权利要求5所述的方法,其中,所述输入消息类型具有推断结构,所述输出消息类型具有推断结构,统计测试包括,根据所述输入消息类型的推断结构和所述输出消息类型的推断结构的可变字段的值,推断所述输入消息类型和所述输出消息类型是否具有因果关系的数据相关算法。11.如权利要求IO所述的方法,包括字符串匹配方法。12.如权利要求5所述的方法,包括应用两个或更多的统计测试。13.如权利要求12所述的方法,进一步包括基于来自所述两个或更多的统计测试的输出确定最终的推断。14.如权利要求13所述的方法,其中,如果至少预定数量的所述测试确定所述输入消息类型和所述输出消息类型是因果相关的,则所述最终推断为所述输入消息类型和所述输出消息类型是因果相关的,反之,则所述最终推断为所述输入消息类型和所述输出消息类型是非因果相关的。15.如权利要求5所述的方法,进一步包括,对于一个或多个所述统计测试中的每一个,当所述统计推断出所述输入消息类型和所述输出消息类型是因果相关时,基于所述统计测试计算所述输入消息类型和所述输出消息类型对在近期的行为的一个或多个统计。16.如权利要求15所述的方法,其中,所计算的统计是所述输入消息类型承认所述输出消息类型的平均服务时间。17.—种用于监控分布式信息网络内交易的系统,包括(a)管理服务器;(b)—个或多个消息收集服务器,每个收集服务器配置为执行分类模块和相关模块中的一个或两个,每个消息收集服务器将来自所述分类模块和所述相关模块中的一个或两个的输出发送至所述管理服务器,其中,为了确定所述系统中的交易的性能,所述管理服务器配置为分析来自所述一个或多个收集服务器的数据。18.如权利要求17所述的系统,其中,为了重构所述网络中的交易,所述管理服务器进一步配置为分析来自所述一个或多个收集服务器的数据。19.如权利要求17所述的系统,其中,一个或多个收集服务器配置为执行分类模块。20.如权利要求19所述的系统,其中,所述分类模块配置为完全基于两个或更多的消息中包含的信息,学习和识别消息类型。21.如权利要求20所述的系统,其中,消息的学习和识别包括(a)将当前消息的结构与一个或多个先前定义的消息结构相比较;(b)应用一个或多个统计测试,以推断所述当前消息的结构是否与所述先前定义的消息结构中的任意一个相一致;以及(c)如果推断出所述当前消息的结构与先前定义的消息结构一致,则将所述消息及其网络数据和推断结构存储在存储器中。22.如权利要求21所述的系统,其中,消息的学习和识别进一步包括,如果未推断出所述当前消息的结构与先前定义的消息结构一致,将输入计算节点的消息集或从计算节点输出的消息集分割为消息子集,使得每个子集中的消息具有相同的推断结构且推断为具有特定的消息类型。23.如权利要求22所述的系统,其中,对输入计算节点的消息集或从计算节点输出的消息集的分割包括,利用消息排列得分作为差异函数的层次分类算法。24.如权利要求17所述的系统,其中,一个或多个收集服务器配置为执行相关模块。25.如权利要求24所述的系统,其中,所述相关模块通过应用了一个或多个统计测试的算法推断输入计算节点的消息类型和从所述计算节点输出的消息类型之间的因果关系。26.如权利要求25所述的系统,其中,一个或多个统计测试的一个或多个输出是二进制的输出。27.如权利要求25所述的系统,其中,假定两个集合是因果相关的虚假设是正确的,所述一个或多个统计测试的一个或多个输出是拒绝所述虚假设的相无论的一个或两个。28.如权利要求25所述的系统,其中,统计测试包括计算所述输入消息类型的时间线和所述消息类型的时间线的巻积。29.如权利要求28所述的系统,其中,所述相关模块进一步配置为计算所述巻积最大时的延迟7"和/或在所述延迟t时的所述巻积的值。30.如权利要求25所述的系统,其中,所述输入消息类型具有推断结构,所述输出数据类型具有推断结构,统计测试包括,根据所述输入消息类型的推断结构和所述输出消息类型的推断结构的可变字賴:的值,推断所述输入消息类型和所述输出消息类型是否具有因果关系的数据相关算法。31.如权利要求30所述的系统,所述数据相关算法包括字符串匹配方法。32.如权利要求25所述的系统,其中,所述相关模块应用两个或更多的统计测试。33.如权利要求32所述的系统,其中,所述相关模块基于来自两个或更多的统计测试的输出确定最终的推断。34.如权利要求33所述的系统,其中,如果至少预定数量的所述测试确定所述输入消息类型和所述输出消息类型是因果相关的,则所述最终推断为所述输入消息类型和所述输出消息类型是因果相关的,反之,所述最终推断为所述输入消息类型和所述输出消息类型是非因果相关的。35.如权利要求25所述的系统,其中,所述相关模块进一步包括对于一个或多个所述统计测试的每一个,当所述统计推断出所述输入消息类型和所述输出消息类型是因果相关时,基于所述统计测试计算所述输入消息类型和所述输出消息类型对在近期的行为的一个或多个统计。36.如权利要求15所述的系统,其中,所计算的统计是所述输入消息类型的输入消息和所述输出消息类型的输出消息的平均服务时间。37.如权利要求17所述的系统,其中,所述管理服务器进一步配置为重构网络中的交易。38.如权利要求17所述的系统,其中,所述管理服务器进一步配置为从一个或多个所述收集服务器提供的、关于具有因果关系的输入消息类型和输出消息类型对的性能的统计,推导出所述网络的基线行为。39.如权利要求38所述的系统,其中,所述管理服务器进一步配置为将一个或多个统计的当前值与所述一个或多个统计的一个或多个基线值进行比较。40.如权利要求39所述的系统,其中,所述管理服务器配置为在一个或多个所述统计显著偏离其基线值时发出警告。41.如权利要求17所述的系统,进一步包括监控器。42.如权利要求41所述的系统,其中,所述管理服务器配置为在监控器上显示警告。43.如权利要求19所述的系统,其中,所述管理服务器进一步包括消息重构器,所述消息重构器包括(a)收集传输层消息流量的网络基础设施卡(NIC);(b)清空所述网络基础设施卡和将TCP包传给细栈模块的嗅探器模块;(c)重构TCP流的所述细栈模块;(d)接收TCP流和重构应用层消息的消息检测器;以及(e)消息检测器,接收TCP流;将TCP流划分为构成应用层消息的包集合,其中,利用所述包中的网络信息以将包集合按顺序传入构成消息的字节串中;以及输出所述分类模块的序列。44.一种计算机程序,其包括计算机程序代码装置,当所述程序运行在计算机上时,所述计算机程序代码装置执行如权利要求1到16中任一权利要求的所有步骤。45.如权利要求43所述的计算机程序,其在计算机可读介质上实施。全文摘要本发明提供用于学习和识别网络中的消息类型的方法,其中,学习和识别完全基于网络的消息中所包含的消息。在一种实施方式中,该方法包括将当前消息与一个或多个先前定义的消息结构进行比较;以及应用比较法,以推断当前消息的结构是否与先前定义的消息结构中的任意一个相一致。本发明还提供用于对输入计算节点或从计算节点输出的消息集合进行分类的方法,其中,将消息集划分为相似消息的子集,对每个子集的消息结构进行特征化。本发明还提供用于推断输入网络中计算节点的消息类型和从该计算节点输出的消息类型之间因果关系的方法,其应用一个或多个统计测试。本发明还提供用于监控分布式信息网络内交易的系统。该系统包括执行分类模块和相关模块的收集服务器。管理服务器分析来自收集服务器的数据以确定系统中交易的性能。文档编号G06Q10/00GK101421751SQ200780009652公开日2009年4月29日申请日期2007年2月20日优先权日2006年2月21日发明者埃亚尔·克林拜尔,埃纳特·奥尔,肖恩·梅拉米德,阿米尔·奈普尔申请人:克瑞利斯有限责任公司