具体实施方式
图1示出了用于监测和控制由一个或者多个网络节点输入和输出的网络业务流的网络实时监测和控制系统102的一个示例。网络实时监测和控制系统102包括监测和控制输入和输出网络业务流的若干个层。在一个实现中,网络实时监测和控制系统102包括监测层104、事件控制层106、流量整形控制层108、报告层110和管理层112。
网络实时监测和控制系统102与一个或者多个网络节点114-116通信。通常,网络节点是能够在通信信道上发送、接收或者转发信息的电子设备。网络节点114-116可以是任何类型的网络节点。例如,网络节点114-116中的一个或者多个网络节点可以是诸如调制解调器、集线器、桥接器或者交换器的数据电路端接设备(DCE)。备选地,网络节点114-116可以是诸如手持式数字电话、打印机或者计算机的数据终端设备(DTE)。网络节点114-116的其他示例包括路由器、工作站或者服务器。网络节点114-116的附加示例包括公共或者私人电话交换机、远程集中器或者提供网络服务的计算机。在一个实现中,网络节点114-116是会话发起协议(“SIP”)服务器、家庭订户服务器、SIP应用服务器、电信级会话边缘控制器(诸如从位于美国马萨诸塞州伯灵顿的Acme Packet可得的Acme Packet Net-Net 4250或者Acme Packet Net-Net 4500)。
网络节点114-116接收输入网络业务流118并且发送输出网络业务流120。输入网络业务流118和输出网络业务流120可以包括不同类型的网络流量。在一个示例中,输入网络业务流118可以包括信令网络流量。信令网络流量的一个示例包括来自SIP网络流量的网络流量(诸如SIP REQUEST(SIP请求)消息、SIP REGISTER(SIP注册)消息以及其他SIP消息)。信令网络流量的另一示例是实时流传输协议(“RTSP”)网络流量。信令网络流量还可以包括来自联合系统规范的网络流量,联合系统规范诸如是H.323系统规范,其描述若干电信标准化部门(“ITU-T”)协议和因特网工程任务组(“IETF”)协议的使用。还可以想到其他类型的信令网络流量。
输入网络业务流118可以进一步包括媒体处理网络流量。媒体处理网络流量的一个示例包括实时传输协议(“RTP”)网络流量。然而,媒体处理网络流量还可以包括管理多媒体数据在单播或者多播网络服务上的实时传输的其他协议网络流量,传真中继标准(诸如T.38),或者其他协议网络流量。
另外,输入网络业务流118可以包括供应(provisioning)网络流量。通常,供应网络流量是指包括针对电信的供应的请求的消息的网络流量。然而,供应网络流量还可以包括涉及服务针对给定用户第一次激活的网络流量。也考虑其他类型的供应网络流量。
输出网络业务流120可以包括由网络节点114-116中的一个或者多个网络节点输出的网络流量。例如,输出网络业务流120可以包括对输入网络业务流118的消息的响应。在一个实现中,输出网络业务流120包括对SIP网络流量的响应。对SIP网络流量的响应包括:信息响应(诸如TRYING响应、RINGING响应以及其他信息响应);成功响应(诸如OK响应、ACCEPTED响应以及其他成功响应);重定向响应(诸如MULTIPLE CHOICES响应、MOVEDPERMANENTLY响应以及其他重定向响应);以及,其他类型的SIP网络流量响应。输出网络业务流120还可以包括对媒体处理网络流量、供应网络流量以及其他类型网络流量的响应。
输入网络业务流118和输出网络业务流120还可以包括除了信令、媒体处理和供应网络业务流之外的网络业务流。例如,输入网络业务流118可以包括地址解析协议(“ARP”)网络流量、域名系统(“DNS”)协议网络流量、传输控制协议(“TCP”)网络流量、超文本传输协议(“HTTP”)网络流量以及其他类型的网络流量。类似地,输出网络业务流120可以包括对于上述网络流量的响应。
监测层104监测网络节点114-116的输入网络业务流118和输出网络业务流120。通过监测输入网络业务流118,网络实时监测和控制系统102可以标识网络节点114-116中的一个或者多个网络节点何时开始失稳或者达到不稳定状态。例如,在SIP输入网络流量增加期间,网络节点114-116可能无法满足所有的SIP输入网络业务流118。在这些情况下,网络节点114-116可能失稳,并且提供至SIP输入网络流量的服务质量可能变差。
类似于通过监测输入网络业务流118来防止网络节点114-116失稳,实时监测和控制系统102也可以通过监测输出网络业务流120来防止网络节点114-116失稳。通过监测输出网络业务流120,网络实时监测和控制系统102可以标识网络节点114-116中的一个或者多个网络节点何时开始失稳或者达到不稳定状态。例如,在SIP输出网络流量增加、响应输出网络流量增加或者输出网络流量增加期间,网络节点114-116可能无法维持满足所有输出网络业务流120所需要的输出水平。在这些情况下,网络节点114-116可能失稳,并且由网络节点114-116发送的服务质量可能变差。另外,因为传出的网络流量的量可能与传入的网络流量的量相关,所以传入的网络流量很可能导致传出的网络流量的增加。因此,通过监测输出网络业务流120,网络实时监测和控制系统102可以控制传入的输入网络流量的量并且防止网络节点114-116失稳。
在监测输入网络业务流118和输出网络业务流120时,监测层104可以建立标识网络业务流118-120的一个或者多个网络业务流标识符。网络业务流标识符可以存储在监测层104中或者诸如事件控制层106的网络实时监测和控制系统102的另一层中。
实时网络监测和控制系统102可以经由监测层104而与一个或者多个探测器(probe)122通信,以监测输入和输出网络业务流118-120。通常,网络流量探测器122是分析网络业务流以获得网络流量指示符测量结果的网络装置,该网络流量指示符测量结果提供网络节点的网络流量指示符的测量结果。如参考图2所讨论的,网络流量指示符可以表示网络节点接收或者发送的特定网络流量类型。网络流量探测器122可以获得网络流量指示符测量结果,然后经由诸如简单网络管理协议(“SNMP”)的通信协议而将网络流量指示符测量结果显露给网络实时监测和控制系统102。
在一个实现中,网络流量探测器122包括一个或者多个部件。例如,网络流量探测器122可以包括分组分析器和统计量生成器。其他部件也是可能的。通常,分组分析器是截取和记录通过网络或者网络的一部分传递的网络流量的计算机软件或者硬件。软件分组分析器的一个示例是Wireshark,其从位于美国加利福尼亚州戴维斯的Wireshark Foundation可得。统计量生成器是生成与分组分析器所分析的网络分组相关联的统计量的计算机软件或者硬件。由统计量生成器生成的统计量的示例可以包括所分析的分组的数目、针对特定网络流量类型分析的分组的数目或者其他统计量。统计量生成器还可以配置用于监测网络流量指示符,并且根据监测到的网络流量指示符获得监测到的网络流量指示符测量结果。统计量生成器进行的其他统计操作也是可能的。
网络流量指示符测量结果的显露可以在获得网络流量指示符测量结果之后发生,或者可以在网络流量探测器122取得网络流量指示符测量结果时实时发生。显露网络流量指示符测量结果的其他时序也是可能的。在一个实现中,网络流量探测器122的网络探测器显露代理部件经由网络流量协议显露网络流量指示符测量结果。例如,该网络探测器显露代理部件可以经由诸如SNMP的网络流量协议来显露网络流量指示符测量结果。
除了监测输入网络业务流118和输出网络业务流120以外,监测层104还可以经由与网络节点114-116和监测层104通信的网络节点探测器124来监测网络节点114-116的内部操作。网络节点探测器124可以在计算机硬件、软件或者计算机硬件和软件的组合中实现。在一个实现中,网络节点探测器124在软件中实现,并且包括统计量生成器和网络探测器显露代理。
由于输入网络业务流118和输出网络业务流120的变化可能不完全指示网络节点114-116的稳定状态,所以网络节点探测器124提供网络节点114-116的内部操作信息,诸如直接涉及网络节点114-116的系统信息。例如,网络节点探测器124可以提供诸如以下的信息:计算周期的数目、对于网络节点114-116而言可用的空闲存储器量、网络节点114-116所使用的存储器量以及其他类似的系统信息。通过向监测层104提供系统信息,网络实时监测和控制系统102可以更好地说明网络节点114-116的稳定状态。
作为另一示例,监测层104还可以与操作支持系统128-130通信。通常,操作支持系统支持诸如维护网络库存、供应服务、配置网络部件和管理故障的过程。备选地或者附加地,监测层104还可以与一个或者多个业务支持系统通信,该业务支持系统支持诸如接收订单、处理账单和收款的过程。监测层104可以与操作支持系统或者业务支持系统通信,以发送或者接收关于节点配置的信息、供应信息、性能信息或者其他类型的信息。
存储由监测层104接收的网络流量指示符测量结果以用于事件控制层106的后续获取。稍后将参考图3解释事件控制层106的结构,但是,概括地说,事件控制层106通过比较所获取的网络流量指示符测量结果与网络流量指示符阈值来生成网络事件标识符。通常,网络事件标识符标识事件。事件的示例参考图3进行讨论。
另外,事件控制层106将生成的网络事件标识符与网络节点状态标识符进行相关。将生成的网络事件标识符与网络节点状态标识符进行相关充当事件控制层106可用来确定网络节点114-116的状态的一种机制。通常,相关可以包括:基于生成的网络事件标识符来标识网络节点状态标识符,将网络节点状态标识符与生成的网络事件标识符进行匹配,或者根据生成的网络事件标识符以其他方式来确定网络节点状态标识符。
根据网络节点状态标识符所标识的网络节点的状态,事件控制层106继而可以生成针对网络流量整形控制的请求。通常,网络流量整形控制包括用于整形网络业务流的指令和参数。然而,网络流量整形控制可以控制除流量整形动作以外的附加动作。定义网络流量整形控制的参数的示例包括因特网流量协议、消息类型、源地址、目的地址以及标识允许的网络流量的量的网络流量整形控制强度。网络流量整形控制强度可以标识最大允许流量的绝对值、最小允许流量的绝对值或者其他值。然而,网络流量整形控制可以定义附加的参数。
事件控制层106向流量整形控制层108传送网络流量整形控制请求。流量整形控制层108继而根据该网络流量整形控制请求实现网络流量整形控制。根据实现的网络流量整形控制,流量整形控制108继而控制网络业务流的整形。
网络实时监测和控制系统102还可以包括用于报告和管理功能的层。例如,在一个实现中,网络实时监测和控制系统102包括报告层110,其处理网络实时监测和控制系统102的报告功能。报告层110可以包括输出和输入功能,以经由图形用户界面来向用户提供输入和输出,或者向与网络实时监测和控制系统102通信的另一系统提供输入和输出。
类似地,网络实时监测和控制系统102可以包括管理层112,其处理网络实时监测和控制系统102的管理功能。管理层112可以包括输出和输入功能,用以经由图形用户界面来向用户提供输入和输出,或者向与网络实时监测和控制系统102通信的另一系统提供输入和输出。
接下来转到图2,图2是图1所示的网络实时监测和控制系统的监测层104的一个示例。监测层104可以通过硬件或者软件来实现。作为软件实现的一个示例,监测层104可以在如OpenNMS的Java编程语言中实现,OpenNMS是在开源软件模型下开发的企业级网络监测平台。OpenNMS从位于美国北卡罗来纳州皮茨博勒的OpenNMSGroup公司可得。
在一个实现中,监测层102包括与网络流量探测器122和网络节点探测器124通信的实时网络监测器202。实时监测器202监测与网络流量探测器122通信的一个或者多个业务流。实时监测器202可以监测输入业务流118、输出业务流120或者其他业务流。被监测的业务流可以是用于相同网络节点或者不同网络节点的。作为第一示例,实时网络监测器202监测第一网络流量节点的第一网络业务流和第二网络业务流。作为第二示例,实时网络监测器202监测第一网络流量节点的第一网络业务流和第二网络流量节点的第二网络业务流。其他示例和情境也是可能的。
在监测输入和输出网络业务流118-120时,网络实时监测器202监测与相应的网络业务流相关联的一个或者多个网络流量指示符。网络实时监测器202可以经由网络流量探测器122来监测网络流量指示符。如之前提到的,网络流量指示符的示例包括信令指示符、媒体处理指示符、供应指示符以及其他类型的网络流量指示符。
通过监测网络流量指示符,实时网络监测器202获得监测到的网络流量指示符测量结果,其提供针对网络节点的网络流量指示符的测量结果。实时网络监测器202可以监测网络流量输入指示符、网络流量输出指示符或者网络流量输入指示符和网络流量输出指示符的组合。
在一个实现中,由实时网络监测器202监测的输入网络业务流118是SIP网络流量。与SIP网络流量相关联的网络流量输入指示符的示例包括传入网络探测器114-116的SIP INVITE(SIP邀请)消息的吞吐量、传入网络探测器114-116的SIP REGISTER(SIP注册)消息的吞吐量以及重传的SIP REGISTER消息的数目。如以下参考图3所讨论的,监测到的网络流量输入指示符测量结果(诸如传入网络探测器114-116的SIP INVITE消息的吞吐量的测量结果)可以用于计算网络性能测量结果。表1描述了示例性的网络流量输入指示符。
表1
网络流量输入指示符类型 |
描述 |
吞吐量 |
SIP消息的数目 |
吞吐量 |
SIP REGISTER消息的数目 |
吞吐量 |
SIP INVITE消息的数目 |
吞吐量 |
重传消息的数目 |
吞吐量 |
重传SIP REGISTER消息的数目 |
吞吐量 |
重传SIP INVITE消息的数目 |
语法和语义 |
非法请求的数目的百分比 |
除了网络流量输入指示符以外,实时网络监测器202可以监测与一个或者多个输出网络业务流120相关联的网络流量输出指示符。使用SIP网络流量作为示例,实时网络监测器202可以监测诸如应答从网络节点输出的SIP INVITE消息的响应时间、应答从网络节点输出的SIP REGISTER消息的响应时间的网络流量输出指示符或者另一网络流量输出指示符。下面的表2描述了示例性网络流量输出指示符。
表2
网络流量输出指示符类型 |
描述 |
吞吐量 |
SIP消息的数目 |
吞吐量 |
SIP REGISTER消息的数目 |
吞吐量 |
SIP INVITE消息的数目 |
语法和语义 |
作为重定向或者失败响应的消息的数目的百分比 |
语法和语义 |
非法请求的数目的百分比 |
响应时间 |
在SIP消息的第95个百分位的最大响应时间 |
传输质量 |
建立的SIP会话的平均分组丢失 |
传输质量 |
建立的SIP会话的平均分组延迟 |
在确定网络流量输出指示符的响应时间时,实时网络监测器202可以监测具有特定净荷的传入消息。例如,为了确定针对从网络节点输出的SIP INVITE消息的响应时间,实时网络监测器202可以监测具有特定SIP状态码的响应消息,SIP状态码诸如是SIP状态码180(“振铃”)、183(“会话进展”)、200(“OK”)或者其他SIP状态码。备选地,实时网络监测器202可以监测具有SIP状态码范围(诸如300-699范围中的SIP状态码)的响应消息。类似地,为了确定应答SIP REGISTER消息的响应时间,实时网络监测器202可以监测具有特定SIP状态码的响应消息,或者具有SIP状态码范围内的SIP状态码(诸如200-699范围内的SIP状态码)的响应消息。
通过监测网络流量指示符,实时网络监测器202可以使实时监测和控制系统102得知网络节点114-116是否满足网络业务流118-120的网络需求。此外,实时监测和控制系统102可以使用网络流量指示符测量结果来确定网络节点114-116稳定状态。网络流量指示符测量结果的波动可以指示一个或者多个网络节点114-116正在经历不稳定、网络流量的增加或者减少;或者指示网络节点114-116中的一个网络节点即将停机。
除了网络流量指示符以外,实时网络监测器202还可以经由网络节点探测器124来监测网络节点操作指示符。因为监测网络业务流118-120可能无法提供涉及网络节点114-116的稳定状态的完整信息,所以监测到的网络节点操作指示符提供与网络节点114-116直接相关的信息。监测到的网络节点操作指示符的示例包括闲置CPU数量、网络节点的内核所使用的CPU数量、网络节点的用户进程所使用的CPU数量、等待输入/输出资源的进程所使用的CPU数量、用于验证中断的CPU数量、安装的存储器的总数量、可用存储器的总数量、对数据库的请求的数目或者其他操作指示符。操作指示符的操作指示符测量结果可以用于计算诸如时间导数测量结果的附加测量结果。另外,监测网络节点操作指示符提供网络节点的稳定状态的指示,其根据监测网络流量指示符可能是不明显的。以下表3描述了示例性的网络节点操作指示符。
表3
网络节点操作指示符类型 |
描述 |
基本软件 |
闲置CPU使用的数量 |
基本软件 |
内核使用的CPU使用的数量 |
基本软件 |
用户进程使用的CPU使用的数量 |
基本软件 |
等待输入/输出资源的进程使用的CPU使用的数量 |
基本软件 |
用于验证中断的CPU使用的数量 |
基本软件 |
可用存储器的数量 |
基本软件 |
使用中的存储器的数量 |
基本软件 |
开放套接字的数目 |
中间件 |
活跃线程的数目 |
中间件 |
运行的进程的数目 |
中间件 |
错误数目 |
中间件 |
异常数目 |
应用 |
网络上的活跃网络节点的数目 |
应用 |
网络上的不活跃网络节点的数目 |
应用 |
网络上的网络节点的总数目 |
实时网络监测器202包括促进监测网络流量指示符和网络节点操作指示符的若干部件。在一个实现中,实时网络监测器202包括测量管理器204、测量ETL管理器206和监测的网络流量数据库208。测量管理器204可以管理网络流量指示符和网络节点操作指示符的测量和监测。另外,测量管理器204还可以处理与事件控制层106的通信和消息传递。测量ETL管理器206管理网络流量指示符测量结果和网络节点操作指示符测量结果的操纵。例如,测量ETL管理器206可以从网络流量探测器122和网络节点探测器124接收指示符测量结果,转换指示符测量结果以使其适合预期的格式或者其他构造,以及用指示符测量结果填充监测的网络流量数据库208。另外,测量ETL管理器206可以与测量管理器204共同操作,以从监测的网络流量数据库208中提取指示符测量结果,并向事件控制层106传送这些指示符测量结果。
监测层104的部件可以通过软件、硬件或者硬件和软件的组合来实现。例如,诸如测量管理器204和测量ETL管理器206的实时网络监测器202的部件可以通过软件实现。在一个实现中,测量管理器204和测量ETL管理器206实现为计算机软件守护进程(daemon),该守护进程包括轮询器守护进程、发现守护进程、捕获服务守护进程和收集守护进程。然而,备选的或者附加的守护进程也是可能的。
每个实时网络监测器守护进程可以配置用于执行一个或者多个特定操作。例如,轮询器守护进程可以配置用于使用一个或者多个网络流量协议来验证与网络节点114-116的连接,网络流量协议诸如是互联网控制消息协议(“ICMP”),SNMP或者其他网络流量协议。作为另一示例,发现守护进程可以配置用于发现已加入网络的新网络节点。作为又一示例,捕获服务守护进程可以配置用于发现由网络节点114-116所显露的服务,发现由探测器122-124所显露的服务,或者其他发现操作。捕获服务守护进程可以配置用于发现经由网络流量协议(诸如SNMP或者其他协议)显露的服务。作为另一示例,收集守护进程可以配置用于监测网络流量指示符以及获得网络流量指示符测量结果。收集守护进程还可以配置用于监测网络节点操作指示符以及获得网络节点操作指示符测量结果。通过将每个实时网络监测器守护进程配置用于执行特定操作,监测层104减少了实时网络监测器202获得网络流量指示符测量结果和网络节点操作指示符测量结果所花费的时间。
实时网络监测器202在与实时网络监测器202通信的监测的网络流量数据库208中存储监测到的网络流量指示符测量结果和网络节点操作指示符测量结果。在一个实现中,测量ETL管理器206从网络流量探测器122和网络节点探测器124获得指示符测量结果,并且在监测的网络流量数据库208中存储指示符测量结果。
因为网络流量指示符测量结果和网络节点操作指示符测量结果由于输入网络流量、输出网络流量和可用网络节点系统资源的波动而随时间变化,所以实时网络监测器202可以配置用于以预定时间间隔将指示符测量结果存储到监测的网络流量数据库208中,预定时间间隔诸如是每5毫秒、每10秒或者任何其他预定时间间隔。通过以预定时间间隔存储指示符测量结果,实时网络监测器202保证了存储在监测的网络流量数据库208中的指示符测量结果是最新的指示符测量结果。通过访问最新的指示符测量结果,网络实时监测和控制系统102可以更容易地对一个或者多个网络节点114-116的稳定状态的变化做出响应。
为了以预定时间间隔存储指示符测量结果,监测的网络流量数据库208可以实现为轮询数据库。通常,轮询数据库描述在其中存储时间序列数据的数据库。时间序列数据的示例包括诸如网络带宽、温度、空闲CPU容量、可用程序存储器的数据以及其他数据。轮询数据库可以配置用于以这样的方式存储数据,即,系统存储占用量随时间保持不变。配置为轮询数据库的数据库避免了资源昂贵的清除工作并且减小了复杂度。可用轮询数据库的示例是RRDtool,其从位于瑞士奥尔腾的Oetiker+Partner AG可得。然而,备选的数据库可以用作监测网络流量数据库208,备选的数据库诸如上关系数据库、层级式数据库、网络模型数据库或者其他类型的数据库。
图3示出了图1中的网络实时监测和控制系统102的事件控制层106的一个示例。事件控制层106可以在计算机硬件或者软件中实现。事件控制层106的计算机软件实现的一个示例是OpenNMS,其从位于美国北卡罗来纳州Pittsboro的OpenNMS Group公司可得。
事件控制层106可以包括若干部件和数据库。在一个实现中,事件控制层106的部件包括事件管理层302、实时状态分析器304和控制管理层306。事件控制层106的数据库包括网络性能和阈值简档数据库308、事件日志数据库310、控制请求日志数据库312、控制日志数据库314、评分数据库316和服务模型数据库318。其他数据库和部件也是可能的。
数据库308-318可以实现为个体数据库、较大数据库的表,或者通过数据库的任何其他配置来实现,或者作为单个数据库来实现。在一个实现中,数据库308-318实现为单个对象关系数据库管理系统。对象关系数据库管理系统的一个示例是PostgreSQL,其从位于美国弗吉尼亚州阿林顿的PostgreSQL Foundation可得。然而,数据库308-318的其他实现也是可能的。
事件管理器层302配置用于生成标识事件的网络事件标识符。事件管理器层302还配置用于管理由实时监测和控制系统102的其他层生成的网络事件标识符。通常,事件可以指示已经发生或者出现的事情。另外,事件可以与网络业务流118-120的变化、网络流量指示符的变化、网络节点114-116的变化或者其他变化有关。事件管理器层302可以向网络实时监测和控制系统102的一个或者多个部件传送生成的网络事件标识符,以提供状态信息或者状态更新。此外,网络实时监测和控制系统102的部件可以对事件管理器层302生成的网络事件标识符做出反应。例如,网络事件标识符可以用于发起网络流量整形控制,或者用于改变网络流量整形控制的状态(如参考图8-图10所讨论的)。
在一个实现中,事件管理器层302包括事件管理器320、网络性能指示符(“NPI”)管理器322以及过滤和聚集管理器324,用以促进网络事件标识符的生成。事件管理器层302的部件可以配置用于特定操作。例如,过滤和聚集管理器324可以配置用于接收和过滤来自监测层104的网络指示符测量结果。过滤来自监测层104的网络指示符测量结果可以保证事件管理器320或者NPI管理器322接收用于生成网络事件标识符的相关网络流量指示符测量结果,以及保证事件管理器层302不会因无关的网络流量指示符测量结果而超载。
在一个实现中,过滤和聚集管理器324过滤预定的网络流量指示符测量结果。例如,过滤和聚集管理器324可以配置用于过滤与特定网络流量相关联的网络流量指示符测量结果(诸如,用于ARP网络流量的网络流量指示符测量结果)。作为另一示例,过滤和聚集管理器324可以配置用于过滤与特定网络流量指示符相关联的网络流量指示符测量结果(诸如,用于SIP网络业务流的SIP REGISTER消息)。过滤和聚集管理器324可以进一步配置用于过滤与网络业务流相关联或者与网络节点相关联的网络流量指示符测量结果。然而,过滤和聚集管理器324还可以配置用于接收由监测层304传送的任何和所有类型的网络流量指示符测量结果。
NPI管理器322配置用于基于从监测层104接收的网络指示符测量结果和网络性能方程来生成网络性能测量结果。通常,网络性能测量结果是指从网络指示符测量结果导出的值。另外,网络性能测量结果可以是针对网络指示符测量结果的时间导数测量结果。备选地,网络性能测量结果可以指示网络指示符测量结果之间的变化率。
在一个实现中,NPI管理器322实现为计算机软件守护进程,并且通过从监测的网络流量数据库208接收网络指示符测量结果以及对从网络性能和阈值简档数据库308获取的网络性能方程应用网络指示符测量结果来生成网络性能测量结果。在另一实现中,过滤和聚集管理器324从监测的网络流量数据库208获取网络指示符测量结果,并且向NPI管理器322传送获取到的网络指示符测量结果。然后,NPI管理器322可以执行网络性能方程以获得网络性能测量结果。
NPI管理器322可以配置用于生成一个或者多个类型的网络性能测量结果。例如,NPI管理器322可以生成网络输入性能测量结果、网络输出性能测量结果、网络节点性能测量结果或者其他网络性能测量结果。NPI管理器322继而可以在数据库308-318中的一个或者多个数据库中存储生成的网络性能指示符。备选地,NPI管理器322可以在与事件控制层106不同的层中存储生成的网络性能指示符。例如,在一个实现中,NPI管理器322在监测层104的监测的网络流量数据库208中存储网络性能测量结果。在该实现中,NPI管理器322在监测的网络流量数据库208中存储网络性能测量结果,以保证网络性能测量结果是网络实时监测和控制系统102可用的最新网络性能测量结果。存储的网络性能测量结果继而可以由监测层104、事件控制层106、流量整形控制层108或者其他层的任何部件获取。
NPI管理器322可以生成与接收到的网络指示符测量结果相对应的网络性能测量结果。例如,NPI管理器322可以生成网络输入性能测量结果、网络输出性能测量结果、网络节点性能测量结果或者其他网络性能测量结果。网络输入性能测量结果可以基于网络流量输入指示符测量结果。示例性的网络输入性能测量结果包括传入网络节点的SIP INVITE消息的吞吐量的时间导数测量结果,以及传入网络节点的SIP REGISTER消息的吞吐量的时间导数测量结果。类似地,网络输出性能测量结果可以基于网络流量输出指示符测量结果。示例性的网络输出性能测量结果包括用于应答从网络节点输出的SIP INVITE消息的响应时间的时间导数测量结果,以及用于应答从网络节点输出的SIP REGISTER消息的响应时间的时间导数测量结果。同样地,网络节点性能测量结果可以基于网络节点操作指示符测量结果。示例性的网络节点性能测量结果包括CPU百分比使用量和存储器百分比使用量,该CPU百分比使用量指示针对网络实时监测和控制系统102中的处理器的数目进行归一化的已使用CPU的百分比,以及该存储器百分比使用量指示网络实时监测和控制系统102所使用的存储器的百分比。然而,网络输入性能测量结果、网络输出性能测量结果或者网络节点性能测量结果可以基于网络流量输入指示符测量结果、网络流量输出指示符测量结果和网络节点操作指示符测量结果的任何组合。
类似于网络指示符测量结果,NPI管理器322可以按预定时间间隔生成网络性能测量结果。用于生成网络性能测量结果的预定时间间隔可以与用于生成网络指示符测量结果的预定时间间隔相同或者不同。另外,用于生成网络性能测量结果的预定时间间隔可以根据个体网络性能测量结果或者网络性能测量类型来区分。
另外,网络性能测量结果可以根据区分模式来进行区分。例如,网络性能测量结果可以根据网络业务流、网络节点或者其他区分模式来进行区分。
在生成网络性能测量结果时,NPI管理器322可以从网络性能和阈值简档数据库308获取一个或者多个网络性能方程。以下表4示出了示例性网络性能和阈值简档数据库模式,以用于定义网络性能和阈值简档数据库308中的网络性能方程。
表4
列名 |
描述 |
ID_INDICATOR |
网络性能指示符的唯一指示符。 |
NAME |
网络性能指示符的助记名称。 |
DESCRIPTION |
由网络性能方程定义的网络性能测量结果的简要描述。 |
ALAS_OPENNMS |
用于引用网络性能方程的标识符。 |
TYPOLOGY |
描述由网络性能方程定义的网络性能测量结果的分类。 |
FUNCTION |
定义网络性能测量结果的网络性能方程。 |
NETWORK_NODE |
网络性能指示符所引用的网络节点的唯一标识符。 |
KPI_NODE |
标识在其处测量网络性能指示符的网络节点的标识符。 |
ID_ANAG_INDICATORS |
用于网络性能指示符的指示符类型的引用。 |
ENABLED |
指示网络性能指示符是否为活跃的并且是否是从系统计算的标识符。 |
网络性能和阈值简档数据库模式提供了用于定义复合网络性能方程的灵活和方便的模板,该网络性能方程定义网络性能测量结果。表5示出了定义网络性能方程的网络性能方程记录的一个示例,该网络性能方程用于确定CPU百分比使用量网络节点性能测量结果。
表5
参数名 |
描述 |
ID_INDICATOR |
15 |
NAME |
SS_MIK05 |
DESCRIPTION |
使用CPU的百分比 |
ALIAS_OPENNMS |
使用CPU的百分比 |
TYPOLOGY |
NPI |
FUNCTION |
100-A29/round((A29+A36+A43+A50+A57+A64)/100,3) |
NETWORK_NODE |
20 |
KPI_NODE |
20 |
ID_ANAG_INDICATORS |
4 |
ENABLED |
真 |
表6示出了定义网络性能方程的网络性能方程记录的一个示例,该网络性能方程用于确定所使用的存储器的百分比。
表6
参数名 |
描述 |
ID_INDICATOR |
22 |
NAME |
SS_MIK012 |
DESCRIPTION |
SIP SERVER所使用的存储器的百分比 |
ALIAS_OPENNMS |
使用的存储器的百分比 |
TYPOLOGY |
NPI |
FUNCTION |
100*(1-(A73/A72)) |
NETWORK_NODE |
20 |
KPI_NODE |
37 |
ID_ANAG_INDICATORS |
5 |
ENABLED |
真 |
NPI管理器322评估存储在网络性能记录的函数域中的网络性能方程,以生成网络性能测量结果。另外,表5-表6的函数域中的值是指其他网络指示符测量结果和网络性能测量结果。表7提供了网络性能方程的函数域涉及的引用的示例。
表7
函数域参数 |
变量名 |
描述 |
A26 |
ssCPURawldle |
闲置时CPU周期的数目。 |
A36 |
ssCPURawKernel |
用于内核的CPU周期的数目。 |
A43 |
ssCPURawSystem |
用于系统的CPU周期的数目。 |
A50 |
ssCPURawUser |
用于执行用户程序的CPU周期的数目。 |
A57 |
ssCPURawWait |
在等待输入/输出资源时使用的CPU周期的数目。 |
A64 |
ssCPURawNice |
由于中断被使用的CPU周期的数目。 |
A72 |
N/A |
在采样时刻服务器上的可用物理存储器的量。 |
A73 |
N/A |
服务器中的物理存储器的量。 |
事件管理器320使用网络性能测量结果和网络指示符测量结果来生成网络事件标识符。事件管理器320还配置用于处理由网络实时监测和控制系统102的其他部件生成的网络事件标识符的管理。事件管理器320提供用于处理可由多个部件生成的网络事件标识符的集中式部件。另外,事件管理器320可以配置用于向第二部件传送由第一部件生成的网络事件标识符,其中第二部件根据网络事件标识符来执行任务或者操作。因此,在将部件添加到网络实时监测和控制系统时,添加的部件可以配置用于直接与事件管理器320或者事件控制层106通信,而不是必须配置为与网络实时监测和控制系统102中的每个部件通信。在事件管理器320被配置用于管理和记录生成的网络事件标识符的情况下,网络实时监测和控制系统102的其他部件可以配置用于在没有被配置用于管理网络事件标识符或者可能以后添加到网络实时监测和控制系统102中的未知的未来部件的复杂开销的情况下执行操作。
事件管理器320可以实现为计算机硬件、计算机软件或者两者。在一个实现中,事件管理器320实现为使用Java计算机编程语言编写的计算机软件守护进程。事件管理器320可以配置用于在预定义TCP端口上监听数据和通知,响应于从预定义TCP端口接收到的数据和通知而生成网络事件标识符,该网络事件标识符被传送至事件控制层106的一个或者多个部件。例如,事件管理器320可以向实时状态分析器304传送网络事件标识符。作为另一示例,事件管理器320可以向事件日志数据库310传送网络事件标识符,事件日志数据库310继而可以由事件控制层106的其他部件访问。
向事件管理器320传送监测层104的网络指示符测量结果和网络性能测量结果。在一个实现中,事件管理器320从监测的网络流量数据库208获取网络指示符测量结果和网络性能测量结果。在另一实现中,过滤和聚集管理器324从监测的网络流量数据库208获取网络指示符测量结果和网络性能测量结果,并且向事件管理器320传送网络指示符测量结果和网络性能测量结果。过滤和聚集管理器324可以进一步过滤获取的网络指示符测量结果和网络性能测量结果,以向事件管理器320传送预定义类型的网络指示符测量结果和/或网络性能测量结果。然而,事件管理器320还可以访问其他数据库(诸如数据库308-318中的任何数据库)以获取网络性能测量结果和网络指示符测量结果。
在一个实现中,网络性能和阈值简档数据库308可以存储网络性能阈值简档和网络指示符阈值简档。网络性能阈值简档还可以由用户或者其他系统通过诸如管理层112来进行配置。网络性能阈值简档可以定义针对一个或者多个网络性能测量结果的网络性能阈值。例如,网络性能阈值简档可以定义针对网络输入性能测量结果的网络输入性能阈值、针对网络输出性能测量结果的网络输出性能阈值以及针对网络节点性能测量结果的网络节点性能阈值。其他网络性能阈值也是可能的。类似地,网络指示符阈值简档可以定义针对一个或者多个网络指示符测量结果的网络指示符阈值。例如,网络指示符阈值简档可以定义针对网络流量输入指示符测量结果的网络流量输入指示符阈值、针对网络流量输出指示符测量结果的网络流量输出指示符阈值以及针对网络节点操作指示符测量结果的网络节点操作指示符阈值。网络性能阈值和网络指示符阈值的其他类型和组合也是可能的。另外,分别定义网络性能阈值和网络指示符阈值的一个或者多个网络性能阈值简档和一个或者多个网络指示符阈值简档也是可能的。
另外,网络性能阈值简档和网络指示符阈值简档可以在不同类型的阈值之间进行区分。例如,简档可以定义警告阈值和临界阈值。警告阈值可以小于临界阈值。警告阈值可以是一个或者多个网络节点接近不稳定状态的阈值。临界阈值可以是一个或者多个网络节点达到不稳定状态的阈值。通过定义和区分警告阈值和临界阈值,如果已经达到警告阈值,则网络实时监测和控制系统102可以试图防止一个或者多个网络节点114-116达到不稳定状态。换言之,警告阈值可以用来警告网络实时监测和控制系统102:一个或者多个网络节点将要变得不稳定。
事件管理器320分别将网络性能测量结果和网络指示符测量结果与网络性能阈值和网络指示符阈值进行比较,以生成网络事件标识符。网络事件标识符可以通过诸如可扩展标记语言(“XML”)的计算机标记语言来实现。然而,也可以使用其他计算机语言,其使用给出关于文本的结构或者其将如何显示的指令的一组对文本的注释。
事件管理器320可以配置用于基于网络性能测量结果与网络性能阈值的比较,诸如在网络性能测量结果超出或者低于网络性能阈值时生成网络事件标识符。类似地,事件管理器320可以配置用于基于网络指示符测量结果与网络指示符阈值的比较(诸如在网络指示符测量结果超出或者低于网络指示符阈值时)生成网络事件标识符。作为一个示例,事件管理器320可以在网络流量输入指示符测量结果(诸如由网络节点接收到的SIP REGISTER消息的数目)超出网络流量输入指示符阈值(诸如可以由网络节点接收到的SIP REGISTER消息的总数)时生成网络事件标识符。作为另一示例,事件管理器320可以在网络输入性能测量结果(诸如由网络节点接收到的SIP REGISTER消息的时间导数测量结果)超出网络输入性能阈值(诸如网络节点可以接收SIP REGISTER消息的最大速率)时生成网络事件标识符。
此外,事件管理器320可以根据网络指示符阈值和/或网络性能阈值的比较测量结果的组合来生成网络事件标识符。例如,事件管理器320可以在超出第一网络输入性能阈值并且超出第二网络输入性能阈值时生成网络事件标识符。作为另一示例,事件管理器320可以在超出第一网络输入性能阈值并且超出第一网络节点操作指示符阈值时生成网络事件标识符。其他比较组合也是可能的。
通常,事件管理器320可以配置用于生成任何类型的网络事件标识符。以下表8列出了附有相应描述的示例性网络事件标识符。
表8
EVENT_FINE_CONTR_OUT_SONDA |
标识由于网络探测器停机而自动终止网络流量整形控制的事件。 |
EVENT_FINE_CONTR_OUT_SONDA_KO |
标识与网络事件标识符EVENT_FINE_CONTR_OUT_SONDA相关联的控制逻辑引起错误的事件。 |
EVENT_FINE_CONTR_OUT_SONDA_OK |
标识与网络事件标识符EVENT_FINE_CONTR_OUT_SONDA相关联的控制逻辑正确执行的事件。 |
EVENT_FINE_CONTR_RTC |
标识网络流量整形控制应当自动终止的事件。 |
EVENT_FINE_CONTR_RTC_KO |
标识与网络事件标识符EVENT_FINE_CONTR_RTC相关联的控制逻辑引起错误的事件。 |
EVENT_FINE_CONTR_RTC_OK |
标识与网络事件标识符EVENT_FINE_CONTR_RTC相关联的控制逻辑正确执行的事件。 |
EVENT_FINE_CONTR_RTC_OUT_SONDA |
标识由于网络探测器停机而应当自动删除网络流量整形控制的事件。 |
EVENT_NODE_UP |
标识网络节点活跃并且可达的事件。 |
EVENT_NODE_UP_KO |
标识与网络事件标识符EVENT_NODE_UP相关联的控制逻辑引起错误的事件。 |
EVENT_NODE_UP_OK |
标识与网络事件标识符EVENT_NODE_UP相关联的控制逻辑正确执行的事件。 |
EVENT_NOTIF_OUT_ISTANZA_SERVER |
标识可能通知的服务器实例停机的事件。 |
EVENT_NOTIF_OUT_SONDA |
标识用于通知的探测器停机的事件。 |
EVENT_NOTIF_THR |
标识可以通知的特定指示符/NPI的超出/重配(rearm)阈值的事件。 |
EVENT_SUGG_CONTR |
标识建议网络流量整形控制的事件。 |
EVENT_THR |
标识超出/重配特定指示符/NPI的阈值的事件。 |
EVENT_USR_ACC_CONTR |
标识接受网络流量整形控制的事件。 |
EVENT_USR_ACC_CONTR_KO |
标识与网络事件标识符EVENT_USR_ACC_CONTR相关联的控制逻辑引起错误的事件。 |
EVENT_USR_ACC_CONTR_OK |
标识与网络事件标识符EVENT_USR_ACC_CONTR相关联的控制逻辑正确执行的事件。 |
EVENT_USR_ANN_CONTR |
标识取消网络流量整形控制的事件。 |
EVENT_USR_TERM_CONTR |
标识终止网络流量整形控制的事件。 |
EVENT_USR_TERM_CONTR_OK |
标识与网络事件标识符EVENT_USR_TERM_CONTR相关联的控制逻辑正确执行的事件。 |
表8涉及的控制逻辑可以通过事件控制层106的一个或者多个部件302-306来实现。例如,控制逻辑可以通过实时状态分析器304和控制管理层306来实现。备选地,控制逻辑可以通过过滤和聚集管理器324、控制选择器330和控制管理器332来实现。控制逻辑的备选实现也是可能的。
除了基于网络性能阈值和网络指示符阈值的比较来生成网络事件标识符,事件管理器320还可以配置用于管理由实时监测和控制系统102的其他部件(诸如监测层104)生成的网络事件标识符。例如,事件管理器302可以从监测层104接收与网络节点的状态有关的网络事件标识符。网络事件标识符可以指示网络节点是活跃和可达的。在此示例中,事件管理器302可以接收EVENT_NODE_UP网络事件标识符。作为另一示例,事件管理器302可以接收与网络探测器(诸如网络流量探测器122或者网络节点探测器124)的状态有关的网络事件标识符。网络事件标识符可以指示网络探测器故障或者停机。在网络探测器故障或者停机时,事件管理器302可以接收EVENT_FINE_CONTR_OUT_SONDA网络事件标识符。其他类型的网络事件标识符也是可能的。
事件管理器302可以向实时状态分析器304传送生成的网络事件标识符。实时状态分析器304处理网络流量整形控制的请求的生成。实时状态分析器304可以通过计算机硬件或者计算机软件来实现。在一个实现中,实时状态分析器304实现为事件接收器队列、包含网络事件标识符散列表的计算机软件线程和主控制线程。事件接收器队列配置用于从事件管理器320接收网络事件标识符,并且将网络事件标识符分发给实时状态管理器324和实时事件相关器326。事件接收器队列可以实现为部署在JBosss应用服务器中的Java消息服务(“JMS”)队列。JBoss应用服务器从位于美国乔治亚州亚特兰大的Red Hat的部门JBoss可得。包含网络事件标识符散列表的计算机软件线程包含与网络节点相关联的所有事件的散列。过滤和聚集管理器324和实时事件相关器326可以在散列表中存储网络状态标识符,并且在请求改变状态时,主控制线程向控制管理层306传送针对网络流量整形控制的请求。在一个实现中,实时状态管理器324是主控制线程。
实时状态分析器304包括实时事件管理器324和实时事件相关器326。实时事件相关器326将网络事件标识符与网络节点状态标识符进行相关,该网络节点状态标识符标识与网络事件标识符相关联的网络节点的状态。由于网络事件标识符可能不指定网络节点的稳定状态,实时事件相关器326的配置促进根据网络事件标识符来标识不稳定状态。而且,由于单个网络事件标识符的相关可能不标识不稳定状态,所以实时事件相关器326可以配置用于将多个网络事件标识符与单个网络节点状态标识符进行相关。因此,由于跨网络实时监测和控制系统102的部件生成不同的网络事件标识符,所以实时事件相关器326简化了标识不稳定状态的任务。
在一个实现中,实时事件相关器326与服务模型数据库318交互,以便将网络事件标识符与网络节点进行相关。实时相关器可以实现为信使队列(诸如部署在JBoss应用服务器上的JMS队列)和包含网络节点的状态的软件线程。备选地或者附加地,实时事件相关器326可以包括业务规则引擎或者执行规则以做出决定的其他软件。实时事件相关器326可以进一步包括用于执行规则的事实和断言,并且事实和断言可以包括网络事件标识符、网络指示符测量结果、网络性能测量结果以及其他事实和断言。实时事件相关器326可以使用JMS队列从一个或者多个层104-112(诸如监测层104或者事件控制层106)接收一个或者多个网络事件标识符,然后基于接收到的网络事件标识符与服务模型数据库318进行交互。实时事件相关器326还可以实现为JMS队列控制器和Java类逻辑的一部分。
实时状态管理器324基于网络事件标识符与网络节点状态标识符的相关来生成针对网络流量整形控制的请求。实时状态分析器324还可以向事件管理器302传送一个或者多个网络事件标识符,其标识实时状态分析器324所采取的动作。
实时事件相关器326可以根据预定义的节点状态规则集来对网络事件标识符与网络节点状态标识符进行相关。实时事件相关器326接收网络事件标识符,并且基于网络节点的一个或者多个指示符的状态来标识网络节点不稳定的潜在开始。实时事件相关器326可以参考服务模型数据库318来将网络事件标识符与网络节点以及与实时状态管理器324进行相关。
图4示出了节点状态规则集402的一个示例。网络节点状态规则集402可以通过任何数目的计算机硬件或者计算机软件技术来实现。作为一个示例,网络节点状态规则集402在Microsoft Excel中实现,其从位于美国华盛顿雷德蒙的Microsoft公司可得。
节点状态规则集402可以包括节点状态规则组成,节点状态规则组成诸如是网络节点状态标识符404、网络节点状态条件406、网络节点状态条件优先级408和网络节点状态情境410中的一个或者多个。备选的节点状态规则组成也是可能的。
网络节点状态标识符404标识网络节点114-116中的一个或者多个网络节点的不稳定状态。如图4所示,节点状态规则集402包括标记为R1、R2、R3、R4、R5和R6的6个网络节点状态标识符404,用以标识网络节点的状态。节点状态规则集402可以用于标识网络节点114-116中的任何网络节点的不稳定状态。单个节点状态规则集402可以与网络节点114-116中的所有网络节点相关联。备选地,每个网络节点114-116可以与其自己的节点状态规则集402相关联。节点状态规则集402可以包括图4中示出的那些之外的备选网络节点状态标识符。
每个网络节点状态标识符404与网络节点状态条件406相关联。网络节点状态条件406可以是根据一个或者多个网络事件标识符而满足的一个或者多个条件。由于基于一个或者多个网络事件标识符可以满足网络节点状态条件406,所以网络节点状态条件406提供了一种用于评估复合和不同的网络事件标识符的流线型机制。
使用网络事件标识符,实时事件相关器326尝试评估和/或满足网络节点状态条件406。在满足网络节点状态条件406时,标识相关联的网络节点状态标识符404。作为第一示例,在网络事件标识符识别到输入指示符阈值(诸如输入SIP INVITE临界阈值)已被超过的情况下,实时事件相关器326识别出与节点状态标识符R1相关联的网络节点状态条件406已被满足。因此,实时事件相关器326将被超过的输入SIP INVITE临界阈值所关联的网络事件标识符与网络不稳定状态标识符R1相关。作为第二示例,在一个或者多个网络事件标识符识别到一个或者多个输入指示符阈值(诸如输入SIP REGISTER警告阈值)已被超过并且两个或者更多网络事件标识符识别到两个或者更多网络性能测量结果警告阈值已被超过的情况下,实时事件相关器326识别到与节点状态标识符R4相关联的网络节点状态条件406已被满足。因此,在该第二示例中,实时事件相关器326将网络事件标识符与网络不稳定状态标识符R4相关。
节点状态规则集402还包括网络节点状态条件优先级408。网络节点状态条件优先级408指示与相应网络节点状态条件406相关联的优先级水平。网络节点状态条件优先级408针对每个网络节点状态条件406可以是不同的。备选地,两个或者更多网络节点状态条件406可以具有相同的网络节点状态条件优先级408。
实时事件相关器326可以配置用于根据网络节点状态条件优先级408所标识的其关联优先级水平,来评估网络节点状态条件406。例如,如图4所示,实时事件相关器326可以评估R2网络节点状态条件为第一,其作为最高优先级水平;R1网络节点状态条件为第二;R6网络节点状态条件为第三;R5网络节点状态条件为第五;以及R3网络节点状态条件为第六,其作为最低优先级水平。因为网络节点状态条件优先级408标识网络节点状态条件406的优先级水平,所以网络节点状态条件优先级408建立了优先级顺序,网络流量整形按照该优先级顺序应用于网络业务流和/或网络节点。在一些情况下,首先应用哪个网络流量整形控制可能存在不确定性。因此,网络节点状态优先级408协助解决同时被满足的网络节点状态条件408之间的冲突。而且,网络节点状态条件优先级408有助于评估可能被认为比其他网络节点状态条件更加严格的网络节点状态条件。因此,在生成的网络节点网络事件标识符满足具有高优先级的网络节点状态条件的情况下,网络实时监测和控制系统102可以采取较快的动作来实现网络流量整形控制。
节点状态规则集402还可以包括节点状态情境410。在一个实现中,节点状态情境410描述网络节点状态条件406已被满足的系统情况。节点状态情境410可以提供系统信息、网络节点信息、网络业务流信息或者其他信息。另外,节点状态情境410可以在图形用户界面或者其他输出接口(诸如打印机或者音频扬声器)上显示。例如,在满足R2网络节点状态条件的情况下,实时事件相关器326可以向报告层110传送R2节点状态情境410,以便向显示器或者其他系统或设备输出。
返回参考图3,在满足网络节点状态条件406时,实时事件相关器326可以向实时状态管理器324传送网络节点状态标识符。备选地,实时事件相关器326可以生成指示标识的网络节点状态标识符的网络事件标识符,并且可以向事件管理器320传送生成的网络事件标识符以用于进一步处理。因此,实时状态管理器324可以经由实时事件相关器326之外的部件(诸如事件管理器320)来接收网络节点状态标识符。
基于网络事件标识符与网络节点状态标识符的相关性,实时状态管理器324可以生成针对网络流量整形控制的请求。在一个实现中,实时状态管理器324向控制请求日志数据库312传送针对网络流量整形控制的请求。针对网络流量整形控制的请求可以从来自一个或者多个部件(诸如控制管理层306)的控制请求日志数据库312读取。在另一实现中,实时状态管理器324生成包含针对网络流量整形控制的请求的网络事件标识符,并且向事件管理层302传送该网络事件标识符。包含针对网络流量整形控制的请求的网络事件标识符继而可被存储在监测的网络流量数据库208中,并且是网络实时监测和控制系统102的任何部件可获取的。
控制管理层306可以从监测的网络流量数据库208、实时状态分析器304或者网络实时监测和控制系统102中的任何其他部件接收针对网络流量整形控制的请求。在一个实现中,控制管理层306实现为可从Red Hat部门获得的JBoss应用服务器的一部分。控制管理层306可以定义主控制节点线程和控制管理线程。主控制节点线程可以配置用于生成网络流量整形控制。主控制节点线程继而可以向控制管理线程传送生成的网络流量整形控制。
控制管理线程管理网络流量整形控制。管理网络流量整形控制可以包括:向事件管理层302发送网络事件标识符,网络事件标识符将生成的控制通知给事件管理层302;以及在网络流量控制基于生成的网络事件标识符在一个或者多个状态之间转移时,管理网络流量控制的生命周期。管理网络流量整形控制还可以包括:基于预定义的条件(诸如在网络节点变得稳定时,或者在接收到用以终止网络流量整形控制的已接收终止请求时)来终止网络流量整形控制。
控制管理层306可以包括一个或者多个部件来促进生成和管理网络流量整形控制。在一个实现中,控制管理层306包括根源标识符328、控制选择器330和控制管理器332。备选的部件也是可能的。
控制管理器332首先接收针对网络流量整形控制的请求。在控制管理器332接收针对网络流量整形控制的多个请求时,控制管理器332与根源标识符328通信以设置首先考虑哪个网络业务流的优先级。
在一个实现中,在决定哪个网络业务流应当接收网络流量整形控制时,根源标识符328为一个或者多个网络业务流指派优先级水平。根源标识符328可以与评分数据库316通信,以便对输入网络业务流118中的一个或者多个输入网络流量118流应用网络流量评分功能,以获得每个相应输入网络业务流118的优先级水平。一般地,网络流量评分功能是这样的功能,其标识相应网络业务流的网络业务流优先级。例如,根源标识符328可以使用一个或者多个网络流量评分功能在一个或者多个输入网络业务流118或者输出网络业务流120中确定网络业务流优先级。
如上所述,网络业务流优先级标识网络业务流的网络业务流优先级水平。指派给相应网络业务流的网络业务流优先级水平可以确定是否对相应的网络业务流应用网络流量整形控制。可以为网络节点114-116的每个网络业务流指派网络业务流优先级。例如,在网络业务流上不存在进行整形的指示时,根源标识符328可以应用网络流量评分功能来标识对一个或者多个网络节点114-116的整体服务具有较小影响的候选网络业务流。指派网络业务流优先级可以基于网络业务流的服务影响和事务计算权重来执行。
术语“事务计算权重”是指处理事务所需要的计算资源量。计算资源可以包括处理器周期、存储器数量、可用输入或者输出设备或者任何其他类型的计算资源。在一个示例中,网络实时监测和控制系统102可以实现第一方法和第二方法。进一步地,在该示例中,第一方法可能需要对网络实时监测和控制系统102的一个或者多个数据库的至少三个查询,而第二方法可能仅需要一个查询。在该示例中,第一方法的事务计算权重将大于第二方法的事务计算权重,并且在建议网络流量整形控制时,可以把增加的事务计算权重纳入考虑。
此外,根源标识符328可以使用网络流量评分功能来确定网络业务流优先级。在一个实现中,网络流量评分功能可以使用网络节点状态条件优先级408。网络流量评分功能可以取决于一个或者多个网络业务流的事务计算权重。
根源标识符可以保留网络业务流的网络业务流优先级水平。在一个实现中,根源标识符328在评分数据库316中存储网络业务流优先级。然而,根源标识符328可以在其他数据库(诸如监测的网络流量数据库208)中存储网络业务流优先级。
控制选择器330选择和/或生成实时状态分析器304所请求的网络流量整形控制。控制选择器330可以实现为在运行时产品环境中执行一个或者多个规则的业务规则引擎或者其他软件系统。业务规则引擎的一个示例是JBoss Rules,其可从Red Hat的部门JBoss获得。
如上所述,网络流量整形控制包括整形网络业务流的指令和参数。然而,网络流量整形控制可以控制除网络流量整形动作以外的附加动作。
网络流量整形控制可以包括定义网络流量整形控制的一个或者多个网络流量整形控制参数。网络流量整形控制参数定义在实现网络流量整形控制时所要采取的动作。定义网络流量整形控制的网络流量整形控制参数的示例包括因特网流量协议、消息类型、源地址、目的地址以及标识将由网络节点接收的网络流量的量的网络流量整形控制强度。网络流量整形控制强度可以标识最大允许流量的绝对值、最小允许流量的绝对值或者其他值。备选的参数也可以定义网络流量整形控制。
为了填入网络流量整形控制的参数,控制选择器330可以从网络实时监测和控制系统102的一个或者多个数据库接收数据。例如,控制选择器330可以从监测的网络流量数据库208接收网络指示符测量结果和/或网络性能测量结果,以获得与一个或者多个网络节点114-116的操作条件、一个或者多个网络业务流的操作条件有关的当前测量结果或者测量结果的组合。监测层104可以包括基于HTTP/XML协议的网络通信接口,用于从监测的网络流量数据库208接收数据。
在一个实现中,控制选择器330定义网络流量整形控制强度。以下列出了定义网络流量整形控制强度的示例性函数:
其中:
SCI=网络流量整形控制强度;
实际测量结果=网络指示符测量结果、网络性能测量结果或者其他网络测量结果的值;以及,
重配测量结果=与实际测量结果相关联的临界或者警告阈值的值。
上面示出的网络流量整形控制强度函数将网络流量整形强度定义为网络业务流的百分比。例如,参考图4,在满足R1网络状态条件的情况下,网络流量整形控制可以定义:与R1状态标识符相关联的网络业务流降低了33%,或者与R1状态标识符网络流量整形控制强度相关联的网络业务流降低至正常网络业务流的33%。作为另一示例,在满足R1网络状态条件的情况下,网络流量整形控制可以定义与R1状态标识符相关联的网络业务流降低50%,或者与R1状态标识符相关联的网络业务流降低至正常网络业务流的50%。
定义网络流量整形控制强度的函数中的变量值(诸如“实际测量结果”变量值和“重配测量结果”变量值)可以基于来自实时状态分析器304的针对网络流量整形控制的请求和/或网络状态标识符。例如,“重配测量结果”变量值可以基于与用来计算网络流量整形控制强度的网络测量结果相关联的临界阈值或者警告阈值。备选地,数据库308-318中的一个或者多个数据库可以定义变量和/或变量值,以便在定义网络流量整形控制强度时使用。
控制选择器330继而可以利用网络流量整形控制强度的网络流量整形控制参数值来填入主要网络流量整形控制记录。以下表9示出了可以定义主要网络流量整形记录的网络流量整形参数的示例。
表9
网络流量整形参数 |
描述 |
ID_CONTROL |
标识网络流量整形控制的标识编号的参数。 |
ID_ANAG_CONTROLLO |
标识网络流量整形控制的类型的参数。ID_ANAG_CONTROLLO可以用作外键。 |
TIMESTAMP_ARRIVAL |
标识网络流量整形控制的到达时间的参数。 |
TIMESTAMP_BEGIN |
标识网络流量整形控制开始执行的时间的参数。 |
TIMESTAMP_END |
标识网络流量整形控制结束执行的时间的参数。 |
STATE |
标识网络流量整形控制的状态的参数。 |
ID_NETWORK_NODE |
标识网络流量整形控制的网络节点的参数。 |
EVENTID |
标识网络流量整形控制的事件标识编号的参数。 |
XML_DATA |
包含网络流量整形控制数据的参数。网络流量整形控制数据可以以XML格式存储。 |
RIMODULATION |
标识网络流量整形控制是否处于调制模式的参数。通常,调制模式指示一旦启动控制,即可以根据指示符的测量的新值来自动调节强度。 |
控制选择器330还可以利用网络流量整形控制参数值来填充网络流量整形控制强度记录。以下表10示出了网络流量整形控制强度记录的参数的示例。
表10
网络流量整形参数 |
描述 |
ID_DETTAGLIO_CONTROLLO |
标识次要网络流量整形控制记录的参数。 |
ID_CONTROL |
标识主要网络流量整形控制记录的参数。 |
INTENSITY |
标识网络流量整形控制的强度的参数。 |
ID_FLUSSO |
标识应当应用网络流量整形控制的网络业务流的参数。 |
主要网络流量整形控制记录和网络流量整形控制强度记录可以存储在网络实时监测和控制系统102的一个或者多个数据库中。例如,主要网络流量整形控制记录和网络流量整形控制强度记录可以存储在服务模型数据库318、监测的网络流量数据库208或者数据库308-318中的任何其他数据库中。
控制选择器330可以向控制管理器332传送网络流量整形控制,以向网络实时监测和控制系统102通知已经生成了网络流量整形控制。在一个实现中,将网络流量整形控制作为网络事件标识符的一部分向事件管理器320发送。以下示出了在XML中实现的包括网络流量整形控制的网络事件标识符的一个示例:
<?xml version=″1.0″encoding=″UTF-8″?>
<log xmlns=″http://xmlns.opennms.org/xsd/event″>
<events><event uuid=″110″>
<uei xmlns=″″>controller/sv_suggestControl</uei>
<source xmlns=″″>ruleEngine</source>
<time xmlns=″″>Wednesday,October 31,20075:00:54PM CET</time>
<service xmlns=″″>ruleEngine</service>
<parms>
<parm>
<parmName xmlns=″″>idNetworkNode</parmName>
<value type=″string″encoding=″text″>20<value>
</parm>
<parm>
<parmName xmlns=″″>RuleName</parmName>
<value type=″string″encoding=″text″>R1</value>
</parm>
<parm>
<parmName xmlns=″″>RuleDescription</parmName>
<value type=″string″encoding=″text″>Exceeding of a critical threshold for
one or more input indicators for SIP INVITE traffic flows</value>
</parm>
<parm>
<parm Name xmlns=″″>xmlState</parmName>
<value type=″string″encoding=″text″></value>
</parm>
<parm>
<parmNamexmlns=″″>controlType</parmName>
<value type=nstring″encoding=″text″>P</value>
</parm>
<parm>
<parmName xmlns=″″>idAnagControllo</parmName>
<value type=″string″encoding=″text″>2</value>
</parm>
<parm>
<parmName xmlns=″″>idIndicators</parmName>
<value type=″string″encoding=″text″>2</value>
</parm>
<parm>
<parmName xmlns=″″>aliasIndicators</parmName>
<value type=″string″encoding=″text″>inThrRegPisa</value>
</parm>
<parm>
<parmName xmlns=″″>idAnagFlusso</parmName>
<value type=″string″encoding=″text″>2</value>
</parm>
<parm>
<parmName xmlns=″″>intensity</parmName>
<value type=″string″encoding=″text″>33</value>
</parm>
<parm>
<parmName xmlns=″″>idFlows</parmName>
<value type=″string″encoding=″text″>2</value>
</parm>
</parms>
</event></events>
</log>
另外,控制管理器332可以维护已经生成的网络流量整形控制的日志。在一个实现中,在网络流量整形控制日志数据库314中维护网络流量整形控制的日志。除了控制管理器332以外,网络实时监测和控制系统102的一个或者多个部件也可以访问网络流量整形控制日志数据库314。
在生成网络流量整形控制之后,控制管理器332可以向或者不向流量整形控制层108自动输出网络流量整形控制。在一个实现中,网络流量整形控制的输出由网络实时监测和控制系统102的用户控制。在该实现中,所确定的网络流量整形控制是建议的网络流量整形控制,因为网络实时监测和管理系统102的用户可以裁量是否向流量整形控制层108输出建议的网络流量整形控制。例如,控制管理器332可以向报告层110请求接受所建议的网络流量整形控制的控制接受请求,其继而可以向网络监测和控制系统102的用户输出。然后控制管理器332可以保持建议的网络流量整形控制单元的输出,直到控制管理器332接收到建议的网络流量整形控制的接受确认。备选地,控制管理器332可以根据预定义的终止条件来终止建议的网络流量整形控制。例如,控制管理器332可以在控制管理器接收到拒绝确认时终止建议的网络流量整形控制。通过使用户裁量向流量整形层108输出什么网络流量整形控制,用户可以选择性地应用用户认为对于网络节点114-116而言最期望的或者最有益的网络流量整形控制。
在备选的实现中,网络流量整形控制的接受和输出是自动的。在该自动实现中,在生成网络流量整形控制时,控制管理器332自动地向流量整形控制层108输出网络流量整形控制。
另外,网络流量整形控制的生命周期可以由一个或者多个条件的满足来控制。例如,在满足终止条件时,网络流量整形控制可以结束。在从用户接收到终止网络流量整形控制的终止请求时,可以满足终止条件;或者终止条件可以基于控制管理器332接收的网络事件标识符。其他条件可以包括结束条件、停止条件、故障条件和中止条件。条件可以基于网络事件标识符的出现或者用户请求的接受而满足。
如下面参考图7-图11所述,网络流量整形控制可以变为结束网络流量整形控制的状态,并且通过进入结束网络流量整形的状态,控制网络流量整形控制的生命周期的条件可得以满足。
除了事件管理层302、实时分析器304和控制管理器层306以外,事件控制层106还可以包括存储服务模型的服务模型数据库318。一般地,服务模型通过其元件及其互连的定义来提供VoIP提供商的平台表示。在一个实现中,事件管理层302使用结构化查询语言(“SQL”)查询来与服务模型数据库318进行通信。从服务模型数据库318获取的信息促进事件与网络节点114-116中的一个或者多个节点的相关。从服务模型数据库318获取的信息可以包括网络性能测量结果或者其他测量结果与服务器实例之间的关系,以及网络节点与服务器实例之间的关系。在一个实现中,从服务模型数据库318获取的信息根据预定的服务模型条件而出现,例如在服务模型第一次被引入网络实时监测和控制系统102中时出现,在已经修改了服务模型数据库318时出现,或者根据其他预定服务模型条件而出现。
实时状态分析器304和控制管理层306可以与服务模型数据库318通信。例如,在出现或者满足预定的服务模型条件时,实时状态分析器304的实时状态管理器324可以从服务模型数据库318获取信息。作为另一示例,控制管理层306的根源标识符328可以与服务模型数据库318通信,以标识事件的根源以及标识一个或者多个输入业务流118或者输出业务流120以便进行整形。
网络实时监测和控制系统102的其他部件也可以与服务模型数据库318通信。例如,管理层112可以与服务模型数据库318通信。管理层112可以与服务模型数据库318通信,用于服务模型的初始配置或者用于服务模型数据库318的后续修改。管理层112与服务模型数据库318之间的其他交互也是可能的。
图5示出了存储在服务模型数据库318中的服务模型502的一个示例。服务模型502包括平台根节点504,其构成服务模型502的根。平台根节点504的子节点和连接标识网络节点、网络服务器、网络节点服务、网络业务流以及构成VoIP平台的其他实体。
在图5所示的实现中,VoIP平台包括第一服务中心节点506和第二服务中心节点508。服务中心节点506-508代表网络节点的主要连接点。服务中心节点506-508可以提供电信服务,诸如针对一个或多个网络节点的VoIP服务。
服务中心506-508的网络节点通过节点类型来标识。节点类型的示例包括SIP服务器、归属订户服务器(“HSS”)、软交换机、媒体网关、会话边缘控制器或其他节点类型。然而,服务中心节点506-508的网络节点可以由其他标准来标识,诸如地理位置、提供的电信服务或其他标准。第一服务中心节点506被标识为具有两种网络节点类型,第一网络节点类型510和第二网络节点类型512。第一网络节点类型510不具有任何子节点,而第二节点类型512被标识为具有至少两个网络节点。
网络节点类型510-512可以具有或者不具有作为子节点的网络节点。尽管第一网络节点类型510不具有任何子节点,但是第二网络节点类型512被标识为具有两个子网络节点514-516。网络节点514-516可以具有类似的子节点。网络节点514-516的子节点包括服务器实例、网络业务流、执行服务和网络节点操作指示符。然而,网络节点514-516的子节点可以包括其他类型的子节点,诸如用于网络流量指示符测量结果、网络流量性能测量结果的子节点或其他子节点。
第二网络节点516被标识为具有两个网络业务流518-520。网络业务流518-520可以是输入网络业务流、输出网络业务流或网络业务流的组合。第二网络节点516还被标识为具有第一服务器实例节点522和第二服务器实例节点524。一般地,服务器实例节点标识在物理计算机上运行的计算机软件应用或其他程序。例如,SIP服务器通常包括多种不同类型的服务器实例,诸如负载平衡器、安装在不同服务器实例中的一个或多个服务器。服务器示例节点可以标识SIP服务器的负载平衡器或者安装在SIP服务器上其他服务器实例之一。服务器实例节点也可以标识一个或多个服务器实例。
类似于网络节点514-516,服务器实例节点可以具有子节点。服务实例节点522-524的子节点可以包括执行服务节点、指示符节点或其他子节点。一般地,执行服务节点标识可与服务实例集成的执行服务。执行服务的示例包括操作系统、应用服务器软件、数据库软件或其他执行服务。如图5所示,第一服务器实例节点522具有第一执行服务节点526和第二执行服务节点528。尽管未示出第二服务器实例节点524具有执行服务节点,但是第二服务器实例节点524也可以具有执行服务节点。其他配置也有可能。
第二服务器实例节点524包括第一指示符526集合和第二指示符528集合。指示符526-528标识用于第二服务器实例节点524的网络指示符。指示符526-528可以标识网络节点操作测量结果、网络流量指示符测量结果、网络流量性能测量结果或其他指示符。
类似于第一服务器中心节点506,第二服务中心节点508可以具有子网络节点类型的节点、子网络节点的节点、网络业务流节点、服务器实例节点、指示符节点以及其他节点。还有可能第二服务节点508的子节点不同于第一服务中心节点506。也可以有服务模型502的其他配置,包括附加的或不同的服务中心节点。
图6是网络实时监测和控制系统102的流量整形控制层108的示例。流量整形控制层108配置用于从事件控制层106接收网络流量整形控制。如前面所讨论的,当用户提供针对建议的网络流量整形控制的接受确认时,流量整形控制层108可以接收网络流量整形控制。备选地,流量整形控制层108可以在生成网络流量整形控制之后自动地接收网络流量整形控制。
在一个实现中,流量整形控制层108包括流量控制器602和网络节点控制器604。流量控制器602和网络节点控制器604配置用于执行网络流量整形控制,从而主动地对一个或多个网络节点114-116的网络业务流进行整形。例如,流量控制器602和网络节点控制器604可以配置用于执行网络流量整形控制,从而主动地对输入网络业务流118进行整形。然而,流量控制器602和网络节点控制器604可以配置用于执行网络流量整形控制从而对其他网络业务流(诸如输入网络业务流120)进行整形。流量控制器602和节点控制器604还可以提供对网络业务流所源起的源网络节点的响应。例如,流量控制器602和节点控制器604可以在对网络业务流整形时提供对源网络节点的智能响应。
流量控制器602和/或节点控制器604可以通过计算机软件或计算机硬件来实现。在一个实现中,流量控制器602和节点控制器604实现在单个网络流量整形装置上,该装置从控制管理层306接收网络流量整形控制。备选地,流量控制器602和节点控制器604可以实现在两个或更多网络流量整形装置上。接收网络流量控制的网络流量整形装置的示例是BIG-IP应用递送控制器,其可从位于美国华盛顿西雅图的F5网络公司获得。在此实现中,控制管理层306通过网络(诸如XML和简单对象访问协议“SOAP”)、使用指定用于支持机器与机器交互的协同操作的软件来与BIG-IP应用递送控制器通信。BIG-IP应用递送控制器也可以使用内部脚本语言(诸如iRule)以及支持面向服务的架构(“SOA”)的应用编程接口(“API”)(诸如iControl)进行编程。iRule和iControl都可以从F5网络公司获得。
图7示出了图1所示的网络实时监测和控制系统的报告层110和管理层112的一个示例。报告层110处理网络实时监测和控制系统102的报告功能。管理层112处理网络实时监测和控制系统102的管理功能,诸如显示图形用户界面、接收配置信息、显示对一个或多个网络业务流的整形结果以及其他管理功能。
报告层110和管理层112可以通过计算机硬件或计算机软件来实现。在一个实现中,使用诸如Apache Tomcat的技术将报告层110和112实现为servlet容器,其中Apache Tomcat可从位于美国马里兰的Forest Hill的Apache软件基金会获得。报告层110和管理层112可以实现一个或多个web页面,这些web页面用于配置网络实时监测和控制系统102所使用的其他技术,诸如可以实现监测层104和事件控制层106的OpenNMS系统。
报告层110可以包括用于向其他部件、层、系统、用户或其他实体提供报告信息的一个或多个部件。在一个实现中,报告层110包括监测部件706和报告部件708。监测部件706可以监测网络实时监测和控制系统102的数据,诸如网络流量指示符测量结果、网络流量性能测量结果、网络节点操作指示符测量结果、网络流量整形控制或其他数据。报告部件708可以生成针对监测部件706所监测的数据的报告。报告层110可以向管理层112传送所监测和报告的数据,以便经由图形用户界面向用户输出或者向其他系统输出。也可以有其他类型的输出。
管理层112可以包括用于管理网络实时监测和控制系统102的配置的一个或多个部件。在一个实现中,管理层112包括控制配置部件710、阈值配置部件712、模型配置部件714以及NPI配置部件716。控制配置部件710可以接收对一个或多个网络流量整形控制进行配置的输入,或者配置用于生成网络流量整形控制的参数值。例如,用户可以使用控制配置部件710来控制网络流量整形控制的生命周期管理。用户还可以使用控制配置部件710来接受或拒绝由控制管理器332建议的建议网络流量整形控制。
阈值配置部件712可以接收如下输入,该输入配置用于网络实时监测和控制系统102所监测的一个或多个指示符的一个或多个阈值(诸如警告阈值和临界阈值)。例如,阈值配置712可以接收对以下进行配置的输入:网络指示符警告阈值、网络性能警告阈值、网络指示符临界阈值、网络性能临界阈值或网络实时监测和控制系统102实现的任何其他阈值。
模型配置部件714可以接收对存储在服务模型数据库318中的服务模型502进行配置的输入。NPI配置部件716可以接收对网络性能测量结果、网络指示符测量结果或由网络实时监测和控制系统102确定的任何其他测量结果的确定进行配置的输入。
尽管已经参考接收输入数据讨论了部件710-716,然而部件710-716还可以配置用于输出数据,诸如警告阈值、临界阈值、服务模型、网络流量整形控制或其他数据。如前面所提到的,输出数据可以包括显示数据、传输数据(诸如向其他系统传输)、存储数据或当前已知或以后开发的任何其他类型的输出。
图8示出了网络流量整形控制状态模型802的一个示例。网络流量整形控制状态模型802定义网络流量整形控制的生命周期。网络流量整形控制状态模型802可以包括一个或多个状态,并且网络流量整形控制可以按照网络事件标识符在这些状态之间转移。网络流量整形控制可以从初始状态开始,随着网络事件标识符的生成而在各种状态之间转移,直到网络流量整形控制到达终结网络流量整形控制的终结状态。
网络流量整形控制状态模型802提供用于自动地和手动地管理网络流量整形控制二者的灵活模型。由于网络流量整形控制可以是自动建议的、手动建议的、自动接受的或手动接受的,网络流量整形控制模型802实现若干种状态,其考虑了可以建议或接受网络流量整形控制的不同条件。而且,网络流量整形控制模型802包括以下状态,其对应于在执行被发布用于控制一个或多个网络流量整形控制的控制命令中的潜在故障。
在一个实现中,网络流量整形控制状态模型802包括5个状态集合。这5个状态集合包括未决状态集合804、运行状态集合806、结束状态集合808、停止状态集合810以及终止状态集合812。然而,还可以有备选的状态集合。
网络流量整形控制状态模型802通过各种状态集合808-812来协助区分终止或结束网络流量整形控制的不同原因。例如,网络流量整形控制状态模型802包括标识终结网络流量整形控制的不同原因的状态集合808-812。终结网络流量整形控制的示例性原因包括:由用户或操作者手动终止,其可以由终止状态集合812来标识;由网络实时监测和控制系统102自动终止,其可以由结束状态集合808来标识;或者标识一个或多个网络节点114-116已经停止响应,其可以由停止状态集合810来标识。终结网络流量整形控制的其他原因也有可能,诸如实时监测和控制系统102的一个或多个层中的通信故障,或者节点控制器604或流量控制器602中的故障。
在一个实现中,网络流量整形控制状态模型802可以是事件驱动的,使得实现逻辑基于事件和当前状态,诸如使用有限状态机(“FSM”)范式。而且,网络流量整形控制状态模型802很灵活并且可扩展以包括其他状态和/或事件,并且可以用在VoIP之外的其他上下文中。备选地,网络流量整形控制状态模型802可以使用业务流程管理(“BPM”)来实现。
每个状态集合804-812通常包括标识网络流量整形控制的常规状况的状态。例如,未决状态集合804一般包括网络流量整形控制被流量控制器602或节点控制器604未决执行的状态。类似地,运行状态集合806一般包括网络流量整形控制正由流量控制器602或节点控制器604执行或转变为执行的状态。此外,结束状态集合808一般包括网络流量整形控制由流量控制器602或节点控制器604按照结束条件已经结束或转变为结束状态的状态。进一步地,停止状态集合810一般包括网络流量整形控制已由流量控制器602或节点控制器604停止或转变为停止状态的状态。最后,终止状态集合812一般包括网络流量整形已由流量控制器602或节点控制器604终止或将要终止的状态。然而,每个状态集合804-812也可以包括备选的或不同的状态类型。
在下文的示例中,网络流量整形控制具有16个可能的状态。然而,其他实现可以采用更多或更少的状态。不同状态可以具有定义网络流量整形控制是处于初始状态、中间状态还是终结状态的状态类型。一般而言,初始状态是网络流量整形控制在实例化时最初被指派的状态。中间状态是从初始状态可到达、但不是网络流量整形控制的最终状态的状态。中间状态可以转移到其他中间状态或终结状态。终结状态是从未决状态和中间状态可到达、但通常不会转移到其他状态的状态。
下面的表11提供了示例性状态列表。表11列出了状态、状态所归组的状态集合、状态类型以及状态的简要描述。然而,也可以有除表11示出的之外的备选状态。
表11
状态 |
状态集合 |
状态类型 |
描述 |
中止 |
未决状态 |
最终状态 |
基于中止条件的满足而指示网络流量整形控制已经中止的状态 |
未决 |
未决状态 |
初始状态 |
指示已经建议了网络流量整形控制并且未决执行的状态。在实例化时,网络流量整形控制可以首先被指派未决状态。 |
删除 |
未决状态 |
最终状态 |
指示网络流量整形控制已经在被接受之前自动删除的状态。 |
丢弃 |
未决状态 |
最终状态 |
指示由于建议了较新的网络流量整形控制而已经丢弃了网络流量整形控制的状态。 |
等待运行 |
运行状态 |
中间状态 |
指示已经发布运行控制命令以执行网络流量整形控制、但运行控制命令尚未被确认的状态。 |
运行 |
运行状态 |
最终状态 |
指示网络流量整形控制正由网络流量整形装置执行的状态。 |
运行失败 |
运行状态 |
中间状态 |
指示网络流量控制由于出现失败条件而已经失败的状态。 |
等待结束 |
结束状态 |
中间状态 |
指示已经发布结束控制命令以结束网络流量整形控制、但结束控制命令尚未被确认的状态。 |
结束 |
结束状态 |
最终状态 |
指示按照结束条件的满足已经结束网络流量整形控制的状态。 |
结束失败 |
结束状态 |
中间状态 |
标识网络流量整形控制已经由于出现失败条件而不能到达结束状态的状态。 |
等待停止 |
停止状态 |
中间状态 |
指示已经发布停止控制命令以停 |
|
|
|
止网络流量整形控制、但停止控制命令尚未被确认的状态。 |
停止 |
停止状态 |
最终状态 |
标识按照停止条件的满足已经停止网络流量整形控制的状态。 |
停止失败 |
停止状态 |
中间状态 |
标识网络流量整形控制已经由于失败条件的满足而不能到达停止状态的状态。 |
等待终止 |
终止状态 |
中间状态 |
指示已经发布终止控制命令以终止网络流量整形控制、但终止控制命令尚未被确认的状态。 |
终止 |
终止状态 |
最终状态 |
标识按照终止条件的满足已经终止网络流量整形控制的状态。 |
终止失败 |
终止状态 |
中间状态 |
标识网络流量整形控制已经由于失败条件的满足而不能到达终止状态。 |
如表11所示,按照条件的满足可以到达一个或多个状态。如前面所讨论的,条件可以包括中止条件、终止条件、停止条件、失败条件以及结束条件。可以通过是否已生成一个或多个特定网络事件标识符来定义这些条件。因而,这些条件可以根据网络事件标识符的生成而得以满足。然而,这些条件也可以由其他事件来满足,诸如接受用户执行动作的请求或者其他事件。
图9示出了未决状态集合804和运行状态集合806的一个示例。在一个实现中,未决状态集合804包括未决状态902、中止状态904、丢弃状态908和删除状态906。未决状态902是在生成网络事件标识符EVENT_SUGG_CONTR时出现的初始状态。EVENT_SUGG_CONTR网络事件标识符标识已经生成并且已经建议了网络流量整形控制。网络流量整形控制继而可以按照条件(诸如中止条件)的满足或事件的出现而转移到未决状态集合804中的一个或多个状态。也可以有其他条件。
对于未决状态集合804内的状态902-908之间的转移,未决状态集合804可以包括一个或多个未决状态内转移,诸如未决状态902和中止状态904之间的未决状态内转移。此外,网络流量整形控制可以按照在未决状态902和等待运行状态910之间建立的未决状态转移,从未决状态902转移出未决状态集合804。当网络流量整形控制已被接受时(诸如被用户接受、被其他系统接受或被自动地接受)时,网络流量整形控制可以从未决状态902转移到等待运行状态910。下面的表12列出了在源起状态和目的状态之间建立的状态转移,包括:源起状态、状态转移类型、导致状态转移的条件类型、满足导致网络流量整形控制经历状态转移的条件的网络事件标识符,以及目的状态。
表12
源起状态 |
转移类型 |
条件类型 |
网络事件标识符 |
目的状态 |
未决 |
未决内 |
中止 |
EVENT_USR_ANN_CONTR |
中止 |
未决 |
未决内 |
删除 |
EVENT_FINE_CONTR_RTC或EVENT_FINE_CONTR_OUT_SONDA |
删除 |
未决 |
未决内 |
丢弃 |
EVENT_SUGG_CONTR |
丢弃 |
未决 |
未决 |
接受 |
EVENT_USR_ACC_CONTR |
等待运行 |
在一个实现中,运行状态集合806包括等待运行状态910、运行失败状态912和运行状态914。当网络流量整形控制被指派等待运行状态910时,网络流量整形控制进入运行状态集合806。在网络流量整形控制被指派等待运行状态910之后,网络流量整形控制继而可以按照运行条件的满足(诸如,当网络流量整形控制已经被接受但尚未被流量控制器602或节点控制器604执行时)转移到未决状态集合804内的一个或多个状态。也可以有其他类型的运行条件。
对于运行状态集合806内的状态910-914之间的转移,运行状态集合806可以包括一个或多个运行状态内转移,诸如等待运行状态910和运行失败状态912之间的运行状态内转移。此外,网络流量整形控制可以按照运行状态转移而从等待运行状态910或运行状态914转移出运行状态集合806。可以在等待运行状态910与丢弃状态908之间建立第一运行状态转移,并且可以在运行状态914与选自包括结束状态、终止状态和停止状态的状态之间建立第二运行状态转移。当已经执行了网络流量整形控制时,网络流量整形控制可以从运行状态914转移到另一状态集合。下面的表13列出了在运行状态集合806中以及在源起状态和目的状态之间建立的状态转移。表13还列出了状态转移类型、导致转移的条件类型以及满足导致网络流量整形控制经历转移的条件的网络事件标识符。
表13
源起状态 |
转移类型 |
条件类型 |
网络事件标识符 |
目的状态 |
等待运行 |
运行 |
丢弃 |
EVENT_USR_ACC_CONTR |
丢弃 |
等待运行 |
运行内 |
失败 |
EVENT_USR_ACC_CONTR_KO或EVENT_NODE_UP_KO |
运行失败 |
等待运行 |
运行内 |
运行 |
EVENT_USR_ACC_CONTR_OK或EVENT_NODE_UP_OK |
运行 |
运行失败 |
未决内 |
运行 |
EVENT_NODE_UP |
等待运行 |
运行 |
运行 |
中止 |
EVENT_USR_ANN_CONTR |
中止 |
失败 |
|
|
|
|
运行失败 |
运行 |
丢弃 |
EVENT_USR_ACC_CONTR |
丢弃 |
运行失败 |
运行 |
删除 |
EVENT_FINE_CONTR_RTC或EVENT_FINE_CONTR_RTC_OUT_SONDA |
删除 |
图10示出了网络流量整形控制状态模型802的结束状态集合808的一个示例。在一个实现中,结束状态集合808包括等待结束状态1002、结束失败状态1004和结束状态1006。当网络流量整形控制被指派等待结束状态1002时,网络流量整形控制进入结束状态集合808。在网络流量整形控制被指派等待结束状态1002之后,网络流量整形控制继而可以按照结束条件的满足(诸如,当网络实时监测和控制系统102确定不再需要网络流量整形控制时)转移到结束状态集合808内的一个或多个状态。结束条件还可以包括一个或多个网络性能测量值已低于阈值(诸如网络性能阈值)。也可以有其他结束条件。
对于结束状态集合808内的状态1002-1006之间的转移,结束状态集合808可以建立一个或多个结束状态内转移,诸如在等待结束状态1002和结束失败状态1004之间建立的结束状态内转移。下面的表14列出了在结束状态集合808的源起状态和目的状态之间建立的状态转移,包括:源起状态、状态转移类型、导致转移的条件类型、满足导致网络流量整形控制经历转移的条件的网络事件标识符,以及目的状态。表14还列出了在运行状态914和等待结束状态1002之间建立的转移。
表14
状态 |
型 |
类型 |
|
状态 |
运行 |
运行 |
等待 |
EVENT_FINE_CONTR_RTC或EVENT_USR_ACC_CONTR |
等待结束 |
等待结束 |
结束内 |
失败 |
EVENT_FINE_CONTR_RTC_KO或EVENT_USR_ACC_CONTR_KO或EVENT_NODE_UP_KO |
结束失败 |
等待结束 |
结束内 |
结束 |
EVENT_FINE_CONTR_RTC_OK或EVENT_USR_ACC_CONTR_OK或EVENT_NODE_UP_OK |
结束 |
结束失败 |
结束内 |
等待 |
EVENT_NODE_UP |
等待结束 |
图11示出了网络流量整形控制状态模型802的停止状态集合810的一个示例。在一个实现中,停止状态集合810包括等待停止状态1102、停止失败状态1104和停止状态1106。当网络流量整形控制被指派等待停止状态1102时,网络流量整形控制进入停止状态集合810。在网络流量整形控制被指派等待停止状态1102之后,网络流量整形控制继而可以按照停止条件的满足(诸如,当网络实时监测和控制系统102确定一个或多个网络节点114-116已经停止响应时)或者按照失败条件的满足而转移到停止状态集合810内的一个或多个状态。也可以有其他条件。
对于停止状态集合810内的状态1102-1106之间转移,停止状态集合810可以包括一个或多个停止状态内转移,诸如在等待停止状态1102和停止失败状态1104之间的停止状态内转移。下面的表15列出了在停止状态集合810的源起状态和目的状态之间建立的状态转移,包括:源起状态、状态转移类型、导致转移的条件类型、满足导致网络流量整形控制经历转移的条件的网络事件标识符,以及目的状态。表15还列出了在运行状态914和等待停止状态1102之间建立的转移。
表15
源起状态 |
转移类型 |
条件类型 |
网络事件标识符 |
目的状态 |
运行 |
运行 |
等待 |
EVENT_FINE_CONTR_RTC_OUT_SONDA |
等待停止 |
等待停止 |
停止内 |
失败 |
EVENT_FINE_CONTR_OUT_SONDA_KO或EVENT_NODE_UP_KO |
停止失败 |
等待停止 |
停止内 |
停止 |
EVENT_FINE_CONTR_OUT_SONDA_OK或EVENT_NODE_UP_OK |
停止 |
停止失败 |
停止内 |
等待 |
EVENT_NODE_UP |
等待停止 |
图12示出了网络流量整形控制状态模型802的终止状态集合812的一个示例。在一个实现中,终止状态集合812包括等待停止状态1202、终止失败状态1204和终止状态1206。当网络流量整形控制被指派等待终止状态1202时,网络流量整形控制进入终止状态集合812。在网络流量整形控制被指派等待终止状态1202之后,网络流量整形控制继而可以按照终止条件的满足(诸如,当网络实时监测和控制系统102或用户请求终止网络流量控制时)或者按照失败条件的满足而转移到终止状态集合812内的一个或多个状态。也可以有其他条件。
对于终止状态集合812内的状态1202-1206之间转移,终止状态集合812可以包括一个或多个终止状态内转移,诸如在等待终止状态1202和终止失败状态1204之间的终止状态内转移。下面的表16列出了在终止状态集合812的源起状态和目的状态之间建立的状态转移,包括:源起状态、状态转移类型、导致转移的条件类型、满足导致网络流量整形控制经历转移的条件的网络事件标识符,以及目的状态。表16还列出了在运行状态914和等待终止状态1202之间建立的转移。
表16
源起状态 |
转移类型 |
条件类型 |
网络事件标识符 |
目的状态 |
运行 |
运行 |
等待 |
EVENT_USR_TERM_CONTR |
等待终止 |
等待终止 |
终止内 |
失败 |
EVENT_USR_TERM_CONTR_KO或EVENT_NODE_UP_KO |
终止失败 |
等待终止 |
终止内 |
终止 |
EVENT_USR_CONTR_OK或EVENT_NODE_UP_OK |
终止 |
终止失败 |
终止内 |
等待 |
EVENT_NODE_UP |
等待终止 |
网络流量整形控制的实现可以基于一个或多个控制命令的发布。通常,控制命令是对网络流量整形控制进行控制的命令。在图9-图12示出的网络流量整形控制状态模型的实现中,控制命令包括:中止控制命令、丢弃控制命令、删除控制命令、运行控制命令、结束控制命令、停止控制命令以及终止控制命令。每个控制命令可以指示期望将网络流量整形控制置于其中的状态。例如,中止控制命令可以是将网络流量整形控制置于中止状态904中的命令。类似地,运行控制命令可以是将网络流量整形控制置于运行状态914中的命令。
控制命令可以由诸如控制管理层306的一个或多个层来发布,而预期接收方可以是其他层或其他部件,诸如流量控制器602或节点控制器604。然而,可以存在如下实例,其中控制命令由某一层发布并且该控制命令没有到达或无法到达其预期接收方。控制命令没有到达其预期接收方的示例性实例包括:在实时监测和控制系统102的一个或多个层中存在通信故障;流量控制器602或节点控制器604已经停止响应或遇到终端故障;或者一个或多个网络节点114-116已经停用。
在出现停用时,可以由网络实时监测和控制系统102发布控制命令以控制网络流量整形控制,但是该控制命令可能没有成功地执行或者没有被该控制命令的预期接收方接收。例如,可以向流量控制器602发布运行控制命令,但是流量控制器602可能已经停用。在此示例中,流量控制器602可能无法执行运行控制命令,并且因此无法发送流量控制器602已经执行运行控制命令的确认。停用也可能出现在网络实时监测和控制系统102内,诸如一个或多个层104-112之间的通信故障。当在一个或多个层104-112之间存在停用时,可以发布控制命令,但是该控制命令可能没有到达其预期目的地,诸如到达其他层、流量控制器602、节点控制器604或其他部件。
控制命令中潜在的丢失可以通过实现图9-图12中的各种等待状态910、1002、1102、1202来解决。等待状态910、1002、1102、1202将网络流量整形控制置于等待状态,直到确定了有关控制命令是否已被成功接收或执行。在一个实现中,该确定基于在设定时段的超时期间(诸如1秒、5秒或任何其他时段)是否接收到对控制命令的确认。在超时期间,控制命令的预期接收方可以发送对控制命令的确认,该确认继而可以触发网络事件标识符的生成,诸如EVENT_FINE_CONTR_RTC_OK网络事件标识符、EVENT_NODE_UP_OK网络事件标识符或其他网络事件标识符,此网络事件标识符将网络流量整形控制置于终结状态,诸如丢弃状态908、结束状态1006或任何其他终结状态。
然而,在相同的超时期间,控制命令的预期接收方可能没有发送对控制命令的确认。在超时期间未接收到对控制命令的确认的情况下,可以生成将网络流量整形控制置于失败状态之一的网络事件标识符,其中失败状态例如是运行失败状态912、结束失败状态1004、停止失败状态1104或任何其他失败状态。当网络流量整形控制被置于失败状态时,实时监测和控制系统102可以反复尝试重新发布导致网络流量整形控制被置于失败状态的控制命令。备选地,实时监测和控制系统102可以进行对导致网络流量整形控制被置于失败状态的控制命令的预期接收方的诊断分析。对预期接收方的诊断分析可以使得预期接收方重启(例如在流量控制器602或节点控制器604已经失败的情况下),或者使得其他纠正措施被应用(例如通过向报告层110发送警告或通知)。纠正措施还可以包括对实时监测和控制系统102的一个或多个层的诊断分析。
在应用纠正措施之后,控制命令的预期接收方可以被标识为在操作参数的预定集合内操作。在网络流量整形控制被置于失败状态之后预期接收方开始在操作参数内操作的情况下,可以生成将网络流量整形控制置回等待状态的网络事件标识符。例如,当网络流量整形控制处于结束失败状态1004时,可以生成将网络流量整形控制置于等待结束状态1002中的EVENT_NODE_UP网络事件标识符。返回到等待状态之后,可以向预期接收方重传导致最初失败的控制命令,并且超时时段可以再次开始计时,直到从预期接收方接收到确认。当从预期接收方接收到确认时,可以生成将网络流量整形控制置于终结状态(诸如结束状态1006)的网络事件标识符。
由此,等待状态910、1002、1102、1202解决了实时监测和控制系统102中可能已经出现停用并且此停用尚未被实时监测和控制系统102确认的问题。等待状态910、1002、1102、1202将网络流量整形控制置于等待状态,直到实时监测和控制系统102可以验证控制命令是否已被执行或成功接收,而不是假设控制命令已经被成功执行,这会导致网络流量整形控制进入终结状态。在不验证控制命令是否已成功被接收或执行的情况下使网络流量整形控制进入终结状态(诸如删除状态906、结束状态1006或其他终结状态)可能导致对网络流量整形控制将要整形或正在整形的业务流的不期望影响。因此,等待状态910、1002、1102和1202提供了一种技术措施,其解决了在出现停用但是尚未对此进行报告的情况下控制网络流量整形控制的问题。
以上描述了系统的示例性方面、特征和部件。然而,系统可以通过多种不同方式实现。例如,有些特征示出为存储在计算机可读存储器中,并且可以利用在计算机可读介质中存储为处理器可执行指令或数据结构的逻辑来实现。计算机可读介质的示例包括随机访问存储器(RAM)、只读存储器(ROM)、可擦除可重写存储器、可移动盘以及固定盘。而且,系统的所有或部分以及其逻辑和数据结构可以存储在、分布于其他机器可读介质上或可从其读取。介质可以包括硬盘、软盘、CD-ROM、有形信号,诸如从网络接收的信号、通过在网络传送的多个分组接收的信号或在天线或其他接收机处接收的信号。
图13示出了用于生成网络流量整形控制的逻辑流1302的一个示例。参考图1-图3以及图6-图7,网络实时监测和控制系统102可以首先监测一个或多个流量指示符(1304)。监测层104可以从网络流量探测器122获取网络流量指示符测量结果,并且将网络流量指示符测量结果存储在监测的网络流量数据库208中(1306)。事件管理层302可以从监测的网络流量数据库208获取一个或多个网络流量指示符测量结果,以及从与所获取的网络流量指示符测量结果相关联的网络性能方程和阈值简档数据库308中获取网络性能方程(1308)。利用网络流量指示符测量结果以及网络性能方程,事件管理层302确定一个或多个网络性能测量结果(1310)。事件管理层302还可以根据一个或多个网络节点操作指示符测量结果来确定网络节点操作性能测量结果。
在获得网络性能测量结果(1310)之后,事件管理层302继而从网络性能方程和阈值简档数据库获取一个或多个网络流量阈值。网络流量阈值可以包括网络流量指示符阈值、网络流量性能阈值和网络节点操作阈值。获取的一个或多个网络流量指示符阈值可以包括警告阈值、临界阈值或任何其他阈值。事件管理层302继而可以将网络流量指示符阈值与之前获取的网络流量指示符测量结果进行比较(1312)。可选地或附加地,事件管理层302可以将网络性能测量结果与网络流量性能阈值进行比较(1314),或者事件管理层302可以将网络节点操作指示符测量结果与网络节点操作指示符阈值进行比较。还可以有其他比较。
在事件管理层302已经执行比较操作(1312/1314)之后,事件管理层302继而可以按照该比较来生成网络事件标识符(1316/1318)。生成的网络事件标识符可以指示一个或多个测量结果已经超过阈值(诸如警告阈值或临界阈值)。备选地,生成的网络事件标识符可以指示一个或多个测量结果未超过阈值。生成的网络事件标识符还可以指示一个或多个网络节点114-116无响应或者在生成网络事件标识符时已经出现了意外错误。还可以生成其他类型的网络事件标识符。
继而向实时状态分析器304传送生成的网络事件标识符。实时状态分析器304将所传送的网络事件标识符与网络节点状态标识符进行相关(1320)。如前面所讨论的,实时状态分析器304可以参考网络节点状态规则集来将网络事件标识符与网络节点状态标识符进行相关。
基于根据将网络事件标识符进行相关而获得的网络节点状态标识符,实时状态分析器304可以生成针对网络流量整形控制的请求(1322)。控制管理层306接收该针对网络流量整形控制的请求,并且确定用于网络流量整形控制的参数(1324)。用于网络流量整形控制的参数的示例在上面的表7-表8中示出。控制管理层306继而向流量整形控制层108传送网络流量整形控制,以便由节点控制器604或流量控制器602或二者来执行(1326)。
图14示出了用于生成网络流量整形控制的逻辑流的一个示例,其中生成的网络流量整形控制须经接受。最初,控制管理层306接收针对网络流量整形控制的请求(1402),并且确定用于网络流量整形控制的网络流量整形控制参数(1404)。在生成的网络流量整形控制须经用户接受的实现中,控制管理层306输出请求接受生成的网络流量整形控制的接受请求(1406)。该接受请求可以由网络实时监测和控制系统102的管理层112输出。类似地,管理层112可以具有接收针对该接受请求的响应的任务(1408)。在响应是对网络流量整形控制的接受确认(其指示用户接受所建议的网络流量整形控制)的情况下,可以输出指示所建议的网络流量整形控制已被接受的网络事件标识符(1410)。该网络事件标识符可以触发将网络流量整形控制向流量整形控制层108传送的事件。
在备选实现中,对网络流量整形控制的接受是自动的。在此备选实现中,当生成网络流量整形控制时,自动接受该网络流量整形控制并将其向流量整形控制层108传送。可以生成指示网络流量整形控制已被自动接受的网络事件标识符(1410)。
系统可以利用附加的、不同的或者更少的部件来实现。作为一个示例,处理器可以实现为微处理器、微控制器、DSP、专用集成电路(ASIC)、分立逻辑或者其他类型的电路或逻辑的组合。作为另一示例,存储器可以是DRAM、SRAM、闪存或者任何其他类型的存储器。系统的处理功能可以分布在多个部件之间,诸如分布在多个处理器和存储器中,可选地,包括多个分布式处理系统。参数、数据库和其他数据结构可以分别进行存储和管理,可以合并入单个存储器或数据库中,可以在逻辑上或物理上以多种不同方式进行组织,并且可以利用不同类型的数据结构来实现,诸如链表、哈希表或隐式存储机制。逻辑(诸如程序或电路)可以在多个程序间合并或者拆分,分布在若干存储器和处理器之间,并且可以利用库来实现,诸如共享库(例如,动态链接库(DLL))。DLL例如可以存储实现上述针对特定模块的功能的代码。作为另一示例,DLL本身可以提供系统的所有或部分功能。
此外,系统可以使用一种或多种可用技术来实现。如通篇所提到的,系统可以使用OpenNMS网络管理平台、XML规范、Java运行时环境(“JRE”)、JBoss应用服务器、Microsoft Excel电子表格应用、Apache Tomcat servlet容器以及PostgreSQL对象关系数据库管理系统来实现。系统可以进一步利用除此处所描述的技术之外的备选技术来实现。计算机程序产品可以有形地实现在计算机可读介质(诸如CD-ROM、闪存等)上,或者可以实现为信号或数据流。
尽管已经描述了本发明的各种实施方式,但是对于本领域技术人员而言很明显,在本发明范围内可以有更多种实施方式和实现。因此,除了所附权利要求及它们的等同项外,本发明不受限制。