一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

度量和事件基础设施的制作方法

2022-09-08 01:36:33 来源:中国专利 TAG:

度量和事件基础设施
1.相关申请的交叉引用
2.本技术要求于2019年11月27日提交的申请号为62/941162、名称为“度量和事件基础设施”的美国临时申请的优先权,并且将gregory fast、greg schrock和dillon buchanan命名为发明人[代理人案卷号4094-15401]。
[0003]
前述每一项的内容以整体通过引用被并入本文。
技术领域
[0004]
说明性实施例总体上涉及网络设备,更具体地涉及用于路由设备的分析。


背景技术:

[0005]
路由器是用作其他系统之间的通信接口的装置。已知使用硬件和软件的组合来实现路由器。例如,熟悉的路由器是小型设备,其在家庭计算机和房主的互联网服务提供商(“isp”)之间提供通信连接。一些这样的路由器包括一个或多个天线,其允许用户使用通常被称为“wi-fi”的无线协议在用户的计算机和路由器之间建立通信链路。


技术实现要素:

[0006]
根据一个实施例,一种多节点路由器系统包括第一路由器节点,该第一路由器节点被配置为发送和接收网络数据,并且被配置为产生第一节点分析数据。该第一节点包括第一节点数据库。
[0007]
多节点路由器系统还包括第二路由器节点,该第二路由器节点被配置为发送和接收相同的网络数据,并且被配置为产生第二节点分析数据。第二路由器节点通常对与第一路由器相同的网络数据进行操作,但是与第一路由器独立地进行操作,如果第一路由器不工作,第二路由器继续发送和接收网络数据,并且如果第二路由器不工作时,第一路由器继续发送和接收网络数据。第二路由器节点包括与第一节点数据库不同的第二节点数据库。
[0008]
此外,多节点路由器系统包括交叉耦合连接,第一节点分析数据通过该交叉耦合连接而被提供给第二节点,以及第二节点分析数据通过该交叉耦合连接而被提供给第一节点。因此,每个路由器节点都具有第一节点分析数据和第二节点分析数据二者。然后,第一路由器节点和第二路由器节点中的每一个创建包括第一节点分析数据和第二节点分析数据的分析图像,使得每个路由器节点存储相同的分析图像。
[0009]
为此,在一些实施例中,第一节点还包括被配置为执行第一软件应用集合的第一微处理器,其中第一软件应用集合在第一微处理器上被执行时:配置第一微处理器发送和接收网络数据,以及产生第一节点分析数据。第一节点还包括与第一软件应用集合进行通信的第一节点加载器,第一节点加载器被配置为将第一节点分析数据从第一软件应用集合传送到第一节点数据库。在这样的实施例中,第二节点还包括被配置为执行第二软件应用集合的第二微处理器,其中第二软件应用集合在第二微处理器上被执行时:配置第二微处理器发送和接收网络数据;并且产生第二节点分析数据。第二节点还包括与第一节点加载
器不同的第二节点加载器,第二节点加载器与第二软件应用集合通信,第二节点加载器被配置为将第二节点分析数据从第二软件应用集合传送到第二节点数据库。
[0010]
在说明性实施例中,第一节点还包括第一节点队列集合,第一节点队列集合中的每个队列与第一软件应用集合中的对应软件应用进行数据通信,并且与第一节点加载器进行数据通信,使得第一节点加载器被可操作地耦合在第一节点队列集合与第一节点数据库之间,并且第二节点还包括第二节点队列集合,第二节点队列集合中的每个队列与第二软件应用集合中的对应软件应用进行通信,并且与第二节点加载器进行数据通信,以使得第二节点加载器被可操作地耦合在第二节点队列集合与第二节点数据库之间。
[0011]
在一些这样的实施例中,交叉耦合连接包括(a)第一交叉耦合连接,第一节点加载器通过该第一交叉耦合连接与第二节点上的第二节点队列集合进行数据通信,并且第一节点加载器被配置为将第二节点分析数据从第二节点传送到第一节点数据库;(b)第二交叉耦合连接,第二节点加载器通过该第二交叉耦合连接来与第一节点上的第一队列集合进行数据通信,并且第二节点加载器被配置为将第一节点分析数据从第一节点传送到第二节点数据库。
[0012]
在一些实施例中,第一节点数据库和/或第二节点数据库包括时间序列数据库。
[0013]
在一些实施例中,第一节点队列集合包括第一发布-订阅队列;第二节点队列集合包括第二发布-订阅队列;第一节点加载器订阅第一节点队列集合;第二节点加载器订阅第二节点队列集合。在说明性实施例中,第二节点队列集合包括发布-订阅队列,并且第一节点加载器订阅第二节点队列集合并且第二节点加载器订阅第二节点队列集合。
[0014]
在一些实施例中,第一节点队列集合被配置为从第一软件应用集合中的至少一个软件应用接收分析数据,并且被配置为在有限的生存时间内保存该分析数据。
[0015]
任何前述实施例还可以包括壳体,其中第一节点和第二节点二者都在壳体内。
[0016]
任何前述实施例还可以包括联合网络接口,其中第一节点和第二节点二者都被配置为通过联合网络接口向外部网络发送网络数据以及从外部网络接收网络数据。
[0017]
另一实施例公开了一种操作多节点路由器装置的方法。该方法包括提供第一节点装置,该第一节点装置被配置为发送和接收网络业务,并且被配置为产生第一节点分析数据。该第一节点装置包括第一数据库和第一加载器。
[0018]
该方法还包括提供与第一节点装置分离的第二节点装置。第二节点装置被配置为发送和接收网络业务,并且被配置为产生第二节点分析数据。第二节点装置包括与第一数据库不同的第二数据库以及与第一加载器不同的第二加载器。
[0019]
该方法还包括操作多节点路由器装置以发送和接收网络业务,以及将第一节点分析数据提供给第一加载器。
[0020]
该方法还包括在第一加载器处从第二节点接收第二节点分析数据,以及同时通过以下方式在第一数据库中构建第一分析图像:将第一节点分析数据从第一加载器写入到第一数据库,以及将第二节点分析数据从第一加载器写入到第一数据库,第一节点分析数据和第二节点分析数据形成第一分析图像。
[0021]
在一些实施例中,其中第一节点装置还包括第一队列集合并且第二节点装置还包括第二队列集合,该方法还包括:将第一节点分析数据提供给第一加载器包括将第一节点分析数据提供给第一队列集合,并且随后将第一节点分析数据第一队列集合提供给第一加
载器。
[0022]
在一些实施例中,该方法包括:将第一节点分析数据提供给第二加载器,并且同时通过以下方式在第二数据库中构建第二分析图像:将第一节点分析数据从第二加载器写入到第二数据库,以及将第二节点分析数据从第二加载器写入到第二数据库,第一节点分析数据和第二节点分析数据在第二数据库中形成第二分析图像。
附图说明
[0023]
本领域的技术人员应该从以下参照下面总结的附图所讨论的“说明性实施例的描述”更充分地了解本发明的各种实施例的优点。
[0024]
图1示意性地图示了包括双节点路由器的实施例的网络;
[0025]
图2a示意性地图示了路由器节点的实施例;
[0026]
图2b示意性地图示了路由器节点的实施例;
[0027]
图3a示意性地图示了双节点路由器的一个节点的实施例;
[0028]
图3b示意性地图示了双节点路由器的实施例;
[0029]
图4示意性地图示了队列集合的实施例;
[0030]
图5a是图示了路由器的操作的流程图;
[0031]
图5b是图示了路由器对中的路由器的操作的流程图;
[0032]
图6a是图示了获取丢失数据的方法的流程图;
[0033]
图6b是图示了提供丢失数据的方法的流程图;
[0034]
图7a示意性地图示了具有编排器(conductor)和集中式分析系统的网络的实施例;
[0035]
图7b示意性地图示了编排器节点的实施例;
[0036]
图7c示意性地图示了单节点编排器的实施例;
[0037]
图7d示意性地图示了双节点编排器的实施例;
[0038]
图8是图示了编排器实施例的操作实施例的流程图。
具体实施方式
[0039]
与现有技术路由器相比,说明性实施例提供了具有改进的容错和/或改进的可用性的高效的、高可用性(“ha”)路由器架构。
[0040]
在多节点(例如,两个或更多个节点)路由器中,每个路由器节点部分地由在节点硬件的对应实例上执行的路由器软件来实现。路由器软件可以包括一个或多个应用(其可以被称为“路由器应用”)。除了实现路由器的通信功能之外,路由器软件还生成分析数据。
[0041]
在说明性实施例中,通过复制使度量和事件数据对节点故障转移具有弹性。相同的数据被存储在多节点路由器的每个路由器节点的数据库中。复制不是直接将度量从所有每个节点的软件推送到每个节点的数据库,而是由订阅多节点路由器的每个节点上的队列的数据库加载器应用来处理。在说明性实施例中,分析数据的记录在队列中被写入到具有特定生存时间(ttl)的主题,在此之后,记录不再由队列维护或不再从队列中可用,因此在一个节点上的加载器应用具有从其他节点的队列中读取以便实现复制的ttl持续时间。虽然出乎意料,但是这允许复制容忍路由器的高可用性节点对中的两个节点之间的分区。
[0042]
定义:以下术语在本说明书中具有以下含义。
[0043]
术语“分析数据”(或“分析的数据”)意指由路由器产生并与路由器的操作相关的数据,并且可以包括与事件相关或描述事件的数据(“事件数据”)和/或包括度量的数据(“度量数据”)。分析数据不同于网络数据。
[0044]“计数器”是单调递增的度量。
[0045]“事件”是与系统相关的动作。一些事件是与系统的管理相关的“管理”事件(或“审查”事件),并且包括用户登录、用户的密码的更改、系统配置的更改,仅举几例。一些事件是系统事件,诸如例如系统的时间的更改。一些事件是警报事件,诸如系统的接口的故障。
[0046]“度量”是路由器中的整数测量。术语“度量”包括“计数器”和“计量”。度量的示例是由路由器所处理的分组数目。
[0047]“计量”是可以增加和减少的度量。
[0048]
术语“网络业务”(或“网络业务数据”)是指由路由器传达(即接收和/或发送)的数据。网络数据包括例如由路由器跨与路由器耦合的网络发送的数据。
[0049]“发布-订阅队列”是提供数据结构的服务(例如,由可执行代码来实现),其被配置为接收由一个或多个发布方发布的数据,并且被配置为选择性地向订阅方提供此类数据的子集。由发布-订阅队列向订阅方提供的数据子集由订阅方确定,并且可以包括所有或仅部分已发布数据。一些实施例将已发布数据在有限的时间内进行存储,该有限的时间可以被称为数据的“生存时间”(“ttl”)。
[0050]“集合”包括至少一个成员。例如,软件路由器集合包括至少一个软件路由器。
[0051]“共享网络接口”是多个路由器节点通过共享网络接口来与单个网络进行通信的网络接口。
[0052]
关于路由器的“业务事件”是描述由路由器采取的路由或网络动作的事件。
[0053]
术语“tsdb”意指“时间序列数据库”。
[0054]
时间序列数据通常被存储为密集的高精度数据点,然后对其进行下采样和老化。为此,tsdb可能会提供滚动(rollup)和ttl的特征。此外,tsdb通常提供用于随时间生成聚合值序列的特征。发明人已经发现时间序列数据库对于在具有大量写入工作负载的系统中使用是可取的。当被用来存储按时间排序的数据时,时间序列数据库的一些实施例利用数据的按时间排序的性质来压缩数据并减少存储(例如,磁盘或固态驱动器)占用空间。时间序列数据库在架构上可以是sql(关系型)或nosql(非关系型)。nosql数据库可以更好地在集群中大规模运行,并且在牺牲acid保证的情况下将特征集中在仅时间序列数据上。
[0055]
图1示意性地图示了包括若干场所121、122、123的环境100,每个场所都具有多节点(例如,双节点)路由器200的实施例。任何场所121、122、123都可以是家庭或商业地点。
[0056]
每个双节点路由器200经由网络130将相应场所中的一个场所耦合到服务器110。例如,在说明性实施例中,场所121、122、123中的每个场所都是给定公司的零售店,并且服务器110是在给定公司总部的计算机,每个场所121、122、123向该计算机报告。
[0057]
图2a示意性地图示了路由器硬件200的实施例。本文描述的任何路由器节点都可以在这样的路由器硬件200上被实现。路由器硬件包括通过总线201相互通信的若干模块。路由器硬件包括微处理器220和数字存储器230。微处理器220可以是电子领域中已知的半导体微处理器,诸如来自英特尔公司、amd公司的微处理器,或者是作为专用集成电路的一
部分来制造的微处理器,诸如根据arm公司提供的内核来实现的微处理器,仅举几例。
[0058]
数字存储器230可以是易失性存储器(例如ram),但是优选地是非易失性存储器。在任何情况下,数字存储器230被配置为除了存储其他方面之外还存储指令,指令在由微处理器220执行时使微处理器220执行本文所述的一个或多个功能。
[0059]
数据库模块240是存储器,其可以是硬盘驱动器或固态驱动器,或者其可以在数字存储器230中被实现。
[0060]
路由器硬件200还包括通信接口210,该通信接口210被配置为通过诸如网络130之类的通信信道将硬件200可操作地耦合到包括其他路由器或计算机在内的其他设备。在说明性实施例中,通信信道130可以是专用通信线路、内联网或互联网,仅举几例。在一些实施例中,两个或更多路由器310、320中的每个路由器的相应通信接口可以经由共享网络接口302而耦合到网络130。
[0061]
图2b示意性地图示了操作环境中的路由器200。在该实施例中,路由器200的通信接口210耦合到网络130以根据路由功能性250来发送和接收网络数据251。更具体地,路由器200在网络130上从数据源接收传入网络数据(接收的数据)252,并且经由网络130将传出网络数据(发射的数据)253发射到数据目的地,所有这些都根据路由器和数据网络领域中已知的路由功能性250。通常,数据源是与网络130或路由器200通信的计算机,并且数据目的地是与网络130或路由器200通信的另一计算机。路由功能性可以根据以下描述的一个或多个路由器应用311来实现。
[0062]
路由器200还具有分析数据生成功能性260。通常,在路由器200上执行的每个路由器应用311生成分析数据261,该分析数据261不同于网络数据251。如下所述,该分析数据261被捕获和处理。在一些实施例中,分析数据261经由编排器730被提供给集中式分析系统799,如下面进一步描述的。
[0063]
本文描述的说明性实施例是基于至少从128技术可获得的路由器技术来描述的。度量和事件是数据的原始源。如此,度量和事件是路由器分析的输入,其帮助描述、预测和规定路由器和网络行为。
[0064]
在说明性实施例中,度量和基于事件的特征在每个路由器节点上存储数据(的相同副本)。高效地、高性能地存储和查询数据很大程度上取决于数据的类型,并且事件和度量二者都很常见,因为它们都是时间序列数据。除了按时间戳排序之外,时间序列数据几乎总是被记录为新记录,并且通常通过随着时间的推移对值进行聚合而变得有用。
[0065]
度量和事件基础设施的实施例涉及收集和提供度量和事件的系统。这样的基础设施带来了功能价值,同时在部署了一些路由器的分布式和资源受限的环境中保持了高性能和弹性。
[0066]
说明性实施例中的度量和事件基础设施能够收集和存储对监控网络中的路由器(例如,128技术路由器)有用的路由器分析数据。例如,工程师可以使用分析数据来进行调试、测试和基于分析的业务逻辑;销售工程师和网络管理员可以使用分析来进行监控、故障排除和配置决策指导;并且销售和营销人员可以使用分析来进行报价以及展示产品的竞争特征。
[0067]
高密度的近实时数据可以满足监控需求,同时可以查询下采样数据以帮助操作员执行历史分析。
[0068]
路由器节点
[0069]
图3a示意性地图示了路由器节点310的实施例。例如,路由器节点310可以通过在路由器硬件200的实例上执行路由器应用311集合来实现。
[0070]
路由器应用
[0071]“路由器应用”(或“应用”)311是在微处理器220上可执行的代码项。路由器应用311集合被共同配置为在路由器硬件200的实例上实现路由器。
[0072]
实现路由器310的通信功能性(或“路由”功能性)所必需的路由器应用311可以被称为“基本”路由器应用。基本路由器应用311的示例是被配置为通过网络130转发来自路由器310的分组的应用。
[0073]
一些路由器应用311可能在路由器内是所期望的,但是可能不是实现路由器310的通信功能性所必需的。这样的路由器应用可以被称为“非基本”路由器应用311。非基本路由器应用d311的示例是协调对数据库314的查询的应用。在说明性实施例中,数据库314和数据库324各自都是时间序列数据库,诸如可从influxdata公司获得的influxdb。
[0074]
其他路由器应用311的示例包括协调多个路由器节点(例如,310;320)的活动的应用;以及管理图形用户界面(“gui”)的api。
[0075]
队列
[0076]
路由器310包括一个或多个分析数据队列312集合。在说明性实施例中,该队列312集合中的每个分析数据队列312可以从一个或多个路由器应用311接收并且保存(例如,无限期地或在有限的“生存时间”内)特定主题上的度量数据或事件数据。
[0077]
图4示意性地图示了若干分析数据队列312-1、312-2和312-3集合。每个队列被可操作地耦合到一个或多个路由器应用311以从一个或多个路由器应用接收包括度量数据和/或事件数据在内的分析数据。在说明性实施例中,每个队列312-1、312-2和312-3不仅存储分析数据,而且还保存与该数据的每个资料(datum)相关联的时间。例如,事件数据的每个资料可以与事件发生时的时间相关联。作为另一示例,度量数据的每个项目(或“资料”)可以与度量数据与之相关的时间或时间段相关联。一些实施例用源标签来标记分析数据的一个或多个项目,该源标签记录生成分析数据的此类项目的路由器310、节点、或路由器应用311。发明人已经发现,这种标记有助于确保来自一个节点(例如,节点310)的数据没有被另一节点(例如,节点320)丢失的过程,并且简化了这样的另一节点(320)直接从这样的所述一个节点的数据库(在这个示例中是数据库314)中检索丢失数据的过程,例如如果队列(例如,队列312)中的数据在其生存时间结束时超时或过期,则可能发生这种情况。说明性实施例标记所有这样的分析数据。
[0078]
在说明性实施例中,这样的源标签保持与分析数据的项目相关联,并且在说明性实施例中与分析数据的项目一起被处理(例如,被存储在数据库中;被提供给中央分析系统等),如本文所述。
[0079]
在说明性实施例中,队列312-1可以是被配置为从一个或多个路由器应用311接收和存储度量数据的度量队列;队列312-2可以是被配置为接收和存储关于或描述给定事件或事件类型的数据的事件队列;并且队列312-3可以是离线事件队列,其被配置为接收和存储关于或描述在路由器310未运行时发生的给定事件或事件类型的数据。例如,如果路由器310在执行操作系统(或在操作系统下运行)的系统200上被实现,则操作系统在路由器310
未被执行时可以是活动的,包括生成事件。这样的事件可以被存储在离线事件队列312-3中。
[0080]
在说明性实施例中,队列312中的一个或多个队列是“发布-订阅队列”,并且路由器应用311中的一个或多个路由器应用是向一个或多个队列312提供事件数据和/或度量数据的发布方。
[0081]
在说明性实施例中,队列312中的一个或多个队列仅在有限的“生存时间”(“ttl”)内保存其数据(例如,度量;事件)。例如,生存时间可以以分钟;小时;天;周;月;或年为单位来指定或测量,并且可以由系统设计者或系统操作员取决于需要和可用资源来确定。
[0082]
加载器
[0083]
队列312集合(例如,队列312-1、312-2和312-3)中的每个队列可操作地耦合到加载器313并且被配置为将其内容(例如,度量数据;事件数据)提供给加载器313。在说明性实施例中,加载器313从队列312-1、312-2和312-3中的一个或多个队列中拉取数据,并且将该数据写入到数据库314。换句话说,加载器313可控地接收来自一个或多个队列312的数据,并且随后将该数据写入到路由器节点的数据库314。
[0084]
在队列312集合中的至少一些队列被配置为发布-订阅队列的说明性实施例中,加载器313被配置为订阅方,并且从队列312中接收它订阅的数据。加载器313可以订阅队列312集合中的所有数据或数据子集。
[0085]
数据库
[0086]
由加载器313获取的事件数据和度量数据由加载器313提供给数据库314,并且被存储在数据库314中。
[0087]
在说明性实施例中,分析数据的每个资料与时间相关联,并且数据库314保存分析资料和与该资料相关联的时间。
[0088]
例如,对于事件数据的资料,数据库314以资料和时间相关联的方式来保存事件发生时的关联时间。作为另一示例,对于度量数据的资料,数据库以资料和时间相关联的方式来保存与度量数据相关的时间或时间段。
[0089]
在一些实施例中,对于由加载器313提供的每个资料,数据库314可以包括两个关联记录:针对资料的第一记录,以及针对与资料相关联的时间的第二关联记录。在一些实施例中,数据库314是时间序列数据库,如数据库领域中已知的。
[0090]
图5a是图示了单个路由器节点310的操作方法500的流程图。在步骤510,路由器节点310例如在微处理器220上执行路由器应用311集合。路由器节点310的操作可以包括接收和/或处理和/或发送网络数据251。
[0091]
在步骤520,应用集合中的每个应用311向该路由器节点310的一个或多个队列312集合(例如,312-1;312-2;和/或312-3)提供度量和/或事件数据。
[0092]
在步骤530,一个或多个队列312中的每个队列将其度量和/或事件数据提供给路由器节点310的加载器313。加载器313被配置为充当队列312集合和数据库314之间的接口。为此,路由器节点310的加载器313与数据库314可操作地进行通信。在双节点路由器300中,第一路由器节点310的加载器313也与第二路由器节点320的队列322集合可操作地进行通信。。
[0093]
然后,在步骤560,加载器313将该数据提供给路由器节点310的数据库314。如此,
路由器在其数据库314中构建分析图像,该分析图像包括第一节点分析数据,并且如下所述包括第二节点分析数据。
[0094]
当路由器节点310接收到针对数据的请求(例如,来自编排器730,如下所述)时,路由器节点310在步骤570将被请求数据从数据库314提供给该请求方。
[0095]
图3b示意性地图示了多节点路由器系统300。在该说明性实施例中,多节点路由器系统300包括两个节点310、320(其可以分别被称为“主节点”和“次节点”,或者替代地被称为“第一节点”和“第二节点”),因此可以被称为“二节点”路由器或“双节点”路由器,但是其他实施例可以具有多于两个节点。例如,两个节点310、320中的每个节点是如图3a中示意性地图示并且如上所述的路由器。
[0096]
在双节点路由器300的说明性实施例中,路由器节点310、320在路由器硬件200的单独且不同的实例上执行。换言之,路由器310在路由器硬件200的第一实例上执行,并且路由器320在路由器硬件200的不同的第二实例上执行。此外,在说明性实施例中,路由器硬件200的实例在物理上彼此远离,至少因为它们不共享相同的壳体,但是它们通过交叉耦合连接315和325互连。此外,在一些实施例中,路由器节点310的每个实例包括到电源的连接和/或到网络130的连接,其与第二路由器节点320到电源的连接和到网络130的连接是分开的且不同的。
[0097]
然而,双节点路由器300的其他实施例包括壳体301,该壳体包含(例如,包围)双节点路由器300(例如,路由器节点310;320)的硬件(例如,硬件200的实例))并且双节点路由器300的硬件被包含在壳体301内。
[0098]
图5b是图示了具有两个路由器节点310、320的双路由器300操作的方法501的流程图。在说明性实施例中,路由器节点310和320是相同的。
[0099]
如结合图5a所述,每个路由器节点310、320执行步骤510、520和530。
[0100]
在步骤540和步骤550,路由器节点310、320中的一个或每个路由器节点的队列(即,分别为队列312和队列322)将其度量和/或事件数据提供给另一节点(分别为320、310)的加载器(即,分别为加载器323和加载器313)。
[0101]
在步骤560,每个加载器313、323将其数据提供给其对应的数据库(分别为314、324)。需要注意的是,由每个路由器节点310、320的每个加载器313、323提供的数据可以包括来自其自身队列(分别为312、322)的数据以及来自另一节点(分别为320、310)的队列(分别为322、312)的数据。
[0102]
以这种方式,双节点路由器300确保每个数据库314、324接收和存储分析数据(“分析图像”),该分析数据包括来自两个节点的分析数据并且优选地包含和存储相同的数据。以这种方式,如果一个节点(310、320)发生故障或离线,另一节点(320、310)可以继续发送和/或接收网络业务,以使得双节点路由器300无缝操作以发送和/或接收网络业务。
[0103]
在步骤570,每个节点将来自其数据库(分别为314、324)的数据提供给请求方。
[0104]
图6a是图示了方法600的流程图,双路由器系统300中的路由器可以通过该方法从其自身的队列或从关联路由器中的对应队列获取它未能获取的数据。一个路由器可以是第一路由器310,而另一个路由器可以是第二路由器320。为了说明的目的,以下示例使用路由器310作为第一路由器(或“请求”路由器),并使用路由器320作为第二路由器(或“响应”路由器)。
[0105]
例如,如果路由器节点310的加载器313未能从路由器节点320的队列312中获取数据集合,则路由器节点310可能希望获取这样的丢失数据。例如如果第一队列312集合中的队列中的数据的生存时间在加载器313能够获取该数据之前到期,或者如果加载器313和队列312之间的通信链路不可操作或者不可用(例如由于连接错误或断电),则这种情况可能会发生。
[0106]
在步骤610,第一路由器310确定其数据库314丢失数据。例如,第一路由器310可以审查数据库314的内容,并意识到数据库314不包含来自某个时间段的数据。
[0107]
因此,在步骤620,第一路由器节点310向第二路由器节点320发送针对丢失数据的请求。在说明性实施例中,第二路由器320的数据库324(其可以被称为“第二”数据库)包括丢失数据的副本。
[0108]
随后,在步骤630,第一路由器310从第二路由器320接收丢失数据的副本。在说明性实施例中,第二路由器320,并且特别是该路由器的第二数据库324,保留其丢失数据的副本。以这种方式,第一路由器节点310上的第一数据库314包含完整的分析图像。
[0109]
上述场景中的第二路由器320的操作如图6b中所图示。在步骤640,第二路由器节点320从第一路由器节点310接收针对丢失数据的请求。在步骤650,第二路由器320在第二数据库324中定位其丢失数据的副本(即,“被请求”数据)。随后,在步骤660,第二路由器320将被请求数据发送给第一路由器310。
[0110]
在不限制前述描述和附图的公开的一般性的情况下,操作多节点路由器装置的方法包括提供被配置为作为第一路由器进行操作的第一节点装置。第一节点装置包括第一队列集合、第一加载器和第一数据库。在操作中,这包括产生第一节点分析数据。
[0111]
该方法还包括提供与第一节点装置不同的第二节点装置。第二节点装置包括第二队列集合、第二加载器和第二数据库。在操作中,第二节点装置产生与第一节点分析数据不同的第二节点分析数据。
[0112]
该方法包括操作多节点路由器装置以发送和接收网络数据业务,该网络业务不同于第一节点分析数据和第二节点分析数据。
[0113]
在操作多节点路由器300时,该方法包括将第一节点分析数据提供给第一队列312集合,并且随后将第一节点分析数据从第一队列312集合提供给第一加载器313。在说明性实施例中,将第一节点分析数据提供给第一加载器313的动作包括将第一节点分析数据提供给第一队列,第一队列与第一节点装置310相关联,并且随后将第一节点分析数据从第一队列提供给第一加载器313。
[0114]
该方法还包括在第一加载器313处从第二节点320接收第二节点分析数据。例如,除了将第二节点分析数据提供给第二加载器323之外,第二队列集合322可以将第二节点分析数据提供给第一加载器313。
[0115]
然后使用第一节点分析数据和第二节点分析数据,同时通过以下方式在第一数据库中构建第一分析图像:将第一节点分析数据从第一加载器313写入到第一数据库314;以及将第二节点分析数据从第一加载器313写入到第一数据库314,第一节点分析数据和第二节点分析数据形成第一分析图像。
[0116]
该方法的说明性实施例还包括将第一节点分析数据提供给第二加载器323(例如,从第一队列312集合);并且同时通过以下方式在第二数据库中构建第二分析图像:将第一
节点分析数据从第二加载器323写入到第二数据库324;以及将第二节点分析数据从第二加载器323写入到第二数据库324,第一节点分析数据和第二节点分析数据在第二数据库324中形成第二分析图像。
[0117]
从上述公开可以看出,根据各个实施例的双节点路由器300比单节点路由器更稳健,甚至比并行运行的两个路由器更稳健,因为在双节点路由器300中的每个路由器节点310、320独立且动态地填充其各自的数据库314、324,使得每个数据库存储度量和/或事件数据的相同分析图像。如此,双节点路由器300提供其自身的冗余。此外,每个节点310、320具有从其对应方数据库324、314填充其数据库314、324的能力,从而提高了双节点路由器300的可靠性。仅作为一个示例,如果节点310、320在数据的生存时间到期之前未能从其自己的队列312、322获得该数据,则给定节点310、320可以从其对应方数据库324、314检索数据。
[0118]
编排器
[0119]
一些网络系统包括多个路由器,其中一些或全部路由器可以是单节点路由器,并且其中一些或全部路由器可以是多节点路由器300。在图7a中示意性地图示了具有一个单节点路由器710和两个双节点路由器721、722(例如,每个都是双节点路由器300)的说明性网络700。
[0120]
在操作中,网络700中的路由器(例如,710;721;722)迅速产生大量路由器分析数据。这样的分析数据可以被分析以监控网络700及其路由器(710;721;722)的健康和操作。如前所指出,应该理解路由器分析数据不同于通过路由器的网络业务。
[0121]
然而,在一些实施例中,优选的是不对路由器本身执行此类分析,这不仅因为这将需要将来自多个路由器的分析数据集中在其中一个路由器上进行分析,而且还因为(一个路由器的数据或多个路由器的数据的)此类分析将消耗这种路由器的处理资源,并有可能损害这种路由器执行其主要功能(即发射和接收网络业务数据)和/或其数据存储功能的能力(例如,如上所述)。
[0122]
因此,这种数据分析优选地由一个或多个集中式或通用分析系统799执行。然而,这也提出了挑战,因为路由器可用于将分析数据发送到集中式分析系统799的一个或多个时间可能取决于路由器正在处理的网络业务。如此,路由器可用于(例如,具有一些备用容量)将分析数据发送到集中式分析系统799的时间可能是先验未知的,可能是不可预测的;随着时间的推移可能是不一致的;并且可能是零星的。此外,即使当路由器可用于将分析数据发送到集中式分析系统799时,路由器的可用带宽和/或网络或通信链路的带宽(路由器在其上将分析数据发送到集中式分析系统799)可能会受到损害或以其他方式低于理想情况,甚至低于标称或指定情况。
[0123]
因此,集中式分析系统799可能无法在便于集中式分析系统799或可用于集中式分析系统799的时间和/或带宽处从路由器710、721、722检索或接收此类分析数据。
[0124]
为了减轻这些问题中的一些或全部问题,网络700还包括具有编排器数据库的编排器730。在说明性实施例中,编排器730是专用电路,其被配置为协调从多个路由器接收分析数据,并且以及时和有序的方式将该分析数据提供给集中式分析系统799。
[0125]
为此,编排器730被配置为充当并且在操作中确实充当路由器710、721、722和分析系统799之间的中间方(intermediary)。如下所述,路由器710;721;722将它们的分析数据
发射到编排器730,并且编排器730将该分析数据存储在其编排器数据库中(733;743)。这种架构和方法的实施例提供一个或多个益处。
[0126]
·
例如,其中一个益处是能够限制和控制被用于监控网络路由器的带宽消耗。
[0127]
·
此外,度量和事件,并且尤其是警报,即使从已崩溃或以其他方式操作在降级状态下的路由器或路由器节点也可用于检查。
[0128]
·
此外,(由分析系统799)从编排器730(而不是从每个个体路由器(710、721、722))检索此类度量和事件避免了去往每个个体路由器的请求以及来自每个个体路由器的响应的扇入/扇出集合。此外,与从每个个体路由器(710、721、722)检索相反,(由分析系统799)从编排器730检索此类度量和事件避免了针对相似时间窗口的相同度量的多个查询而两次检索相同数据。
[0129]
·
此外,与在路由器(710、721、722)和集中式分析系统799之间的直接通信相比,编排器730(和采用编排器730的网络700)在检索编排器730订阅的警报和/或事件时对网络分区更宽容,因为警报和/或事件在生存时间(ttl)内持续在编排器730的发布-订阅队列734集合中,因此编排器730具有该ttl持续时间来连接和检索来自每个路由器节点的分析数据(710,721、722)和/或将这样的分析数据发送到集中式分析系统799。
[0130]
在图7b中示意性地图示了编排器节点硬件750的实施例。本文描述的任何编排器节点(例如,节点731;节点732)可以在这样的编排器节点硬件750上被实现。编排器节点硬件750包括通过总线751相互通信的若干模块。编排器节点硬件750包括微处理器753和数字存储器755。微处理器753可以是电子领域中已知的半导体微处理器,例如来自英特尔公司、amd公司的微处理器,或者是作为专用集成电路的一部分来制造的微处理器,诸如根据arm公司提供的内核来实现的微处理器,仅举几例。
[0131]
数字存储器755可以是易失性存储器(例如,ram),但是优选地是非易失性存储器,并且被配置为存储指令等,指令在由微处理器753执行时使微处理器753执行如本文所述的一个或多个编排器的功能。
[0132]
数据库模块754是存储器,其可以是硬盘驱动器或固态驱动器,或者其可以在数字存储器755中被实现。
[0133]
编排器节点硬件750还包括通信接口752,该通信接口752被配置为诸如网络130之类的通信信道将硬件750可操作地耦合到包括一个或多个路由器(例如,710;721;722)或计算机在内的其他设备以及集中式分析系统799。。
[0134]
图7c示意性地图示了单节点编排器730的实施例。
[0135]
编排器730包括具有消费方应用732的编排器节点731,消费方应用732可以被认为是由网络700中的路由器710、721、722产生的分析数据的消费方。
[0136]
消费方应用732与数据库(例如,时间序列数据库)733以及一个或多个队列734集合通信地耦合。消费方应用732还与路由器集合例如710、721和722通信地耦合。更具体地,在说明性实施例中,消费方应用732从路由器的节点731中的对应的一个或多个发布-订阅队列312、322集合来订阅一个或多个路由器主题,这些主题包含由中央分析系统799处理的分析数据的子集。
[0137]
消费方应用732然后将这些度量和事件存储在编排器的数据库(例如,时间序列数据库733)中。
[0138]
在操作中,集中式分析系统799可以从编排器730请求一些或所有这样的度量和事件数据。例如,在一些实施例中,集中式分析系统799是订阅方,其订阅了编排器730的发布-订阅队列734集合。为此,消费方应用732可以将从路由器721、721、722接收的分析数据中的一些或全部分析数据提供给队列734集合,或者可以从编排器数据库733中检索分析数据中的一些或全部分析数据,然后将所检索的分析数据提供给队列734集合。该队列734集合(例如,通过通信接口752)可操作地耦合到分析系统799(例如,通过网络130)。
[0139]
图7d示意性地图示了双节点编排器的实施例,其可以被称为“高可用性”或“ha”编排器。编排器730的这个实施例具有两个编排器节点:结合图7b描述的第一编排器节点731,和第二编排器节点741。双节点编排器730比单节点编排器更稳健,因为第二节点充当第一节点的备份。如此,当第一节点不可用时,例如由于节点故障,或者当第一节点因维护或升级而离线时,第二节点被配置为并且确实接管并执行与第一节点相同的操作(发送和接收网络业务,并且产生分析数据),使得即使在第一节点不可用时编排器730的操作也是连续的。
[0140]
为此,第二编排器节点741包括第二编排器消费方应用742,其可通信地耦合到第二编排器数据库743。在图7c的实施例中,第一消费方节点731的消费方应用732还与路由器集合(例如710、721和722)通信地耦合,但是第二消费方节点741的第二消费方应用742不与那些路由器710、721和722通信地耦合。相反,第二消费方节点741的第二消费方应用742与第一消费方节点731的队列734集合通信地耦合,并且订阅来自第一消费方节点731的队列734集合的分析数据。第二消费方应用742与第二消费方数据库743进行数据通信,并且可以在第二消费方数据库743中存储它从第一消费方节点731的队列734集合接收的数据。
[0141]
因此,从前面的描述中可以理解,编排器730不仅仅是一个用于从路由器710、721、722到集中式分析系统799的度量和事件数据的管道。相反,编排器730还用于协调将度量和事件数据从路由器710、721、722传送到集中式分析系统799。例如,编排器730在多个路由器710、721、722能够发送度量和事件数据的时候来检索和接收来自那些路由器的此类度量和事件数据,即使集中式分析系统799没有准备好或不可用于接收这样的集中式分析系统799。然后,在存储度量和事件数据之后,当集中式分析系统799可用于检索和接收该数据的时候,控制器730将度量和事件数据中的一些或全部提供给集中式分析系统799,即使路由器710、721、722在那个时候不可用于发送这样的数据。因此,在及时协调路由器710、721、722和集中式分析系统799的操作时,编排器730可以被描述为有点像协调器(orchestra)的编排器。
[0142]
图8是图示了编排器实施例的操作方法800的实施例的流程图。
[0143]
步骤810包括提供与多个路由器可操作地通信的编排器(730,根据上述任何实施例),多个路由器节点中的每个路由器包括路由器节点集合。例如,多个路由器可以包括一个或多个单节点路由器710,和/或一个或多个多节点路由器(721;722)。
[0144]
步骤820包括在第一时间在编排器730处从多个路由器中的每个路由器获得分析数据。这样的分析数据可以被称为“所获取的分析数据”。为此,编排器730可操作地耦合到多个路由器中的每个路由器(即,与其可操作地通信)并且经由这种耦合而获得分析数据。在一些实施例中,编排器730可操作地耦合到每个这样的路由器的数据库(314;324),并且通过从相应的数据库中提取这样的分析数据来从每个这样的路由器获得分析数据。在一些
实施例中,编排器730可操作地耦合到每个这样的路由器的加载器(313;323),并且直接从相应的加载器获得分析数据。在一些实施例中,编排器730可操作地耦合到每个这样的路由器的队列312集合。在队列312包括发布-订阅队列集合的这种实施例中,编排器730订阅所述发布-订阅队列并且经由这样的订阅来获得分析数据。
[0145]
步骤830包括在编排器730处存储所获得的分析数据。这样存储的数据可以被称为“缓冲的分析数据”。一些实施例将缓冲的分析数据存储在控制器队列中。一些实施例将缓冲的分析数据存储在控制器数据库(733;743)中。一些实施例将缓冲的分析数据存储在控制器数据库(733;743)中,并且随后提供给控制器队列734以供稍后提供给集中式分析系统799。
[0146]
步骤840包括在第一时间之后的第二时间将缓冲的分析数据提供给集中式分析系统799。步骤840的一些实施例包括向控制器队列734提供来自多个路由器的缓冲的分析数据;并且将控制器队列734耦合到集中式分析系统799;然后将来自多个路由器的缓冲的分析数据从控制器队列734提供给集中式分析系统799。
[0147]
在一些实施例中,获得分析数据(所获取的分析数据)包括以第一速率获得分析数据;并且将缓冲的分析数据提供给集中式分析系统799包括以不同于第一数据速率的第二数据速率来提供缓冲的分析数据。例如,编排器730可以以每个这样的路由器能够提供其分析数据的速率和/或时间从路由器中提取分析数据。这样的速率和/或时间可以是编排器730不能接收这样的分析数据的速率和时间。在一些实施例中,第二数据速率比第一数据速率慢。
[0148]
在一些实施例中,控制器队列734包括发布-订阅队列,并且集中式分析系统799根据订阅来订阅控制器队列734上的主题。在这样的实施例中,将缓冲的分析数据提供给集中式分析系统799包括根据订阅将缓冲的分析数据发送到集中式分析系统799。
[0149]
以下是本文中使用的附图标记列表。
[0150]
100:环境;
[0151]
110:服务器;
[0152]
121:第一场所;
[0153]
122:第二场所;
[0154]
123:第三场所;
[0155]
130:网络;
[0156]
200:路由器硬件;
[0157]
201:总线;
[0158]
210:通信接口;
[0159]
220:微处理器;
[0160]
230:存储器;
[0161]
240:数据库模块;
[0162]
250:路由功能性;
[0163]
251:网络数据;
[0164]
252:接收的网络数据;
[0165]
253:发射的网络数据;
[0166]
260:分析数据功能性;
[0167]
261:分析数据;
[0168]
300:双节点路由器;
[0169]
301:壳体;
[0170]
302:网络接口;
[0171]
310:第一节点;
[0172]
311:第一路由器应用集合;
[0173]
312:第一队列集合;
[0174]
312-1:主题1队列;
[0175]
312-2:主题2队列;
[0176]
312-3:主题3队列;
[0177]
313:第一加载器应用;
[0178]
314:第一数据库;
[0179]
315:第一交叉耦合连接;
[0180]
320:第二节点;
[0181]
321:第二路由器应用集合;
[0182]
322:第二队列集合;
[0183]
323:第二加载器应用;
[0184]
324:第二数据库;
[0185]
325:第二交叉耦合连接;
[0186]
700:路由器、控制器和分析系统的网络;
[0187]
730:控制器;
[0188]
731:第一控制器节点;
[0189]
732:消费方应用;
[0190]
733:第一控制器数据库;
[0191]
734:控制器队列集合;
[0192]
741:第二控制器节点;
[0193]
743:第二控制器数据库;
[0194]
750:编排器硬件;
[0195]
751:编排器总线;
[0196]
752:编排器通信接口;
[0197]
753:编排器微处理器;
[0198]
754:编排器数据库;
[0199]
755:编排器存储器;
[0200]
799:分析系统。
[0201]
各种实施例的特征可以由此段落之后(并且在本技术末尾提供的实际权利要求之前)的段落中列出的潜在的权利要求来表征。这些潜在的权利要求构成本技术的撰写的说明书的一部分。因此,以下潜在的权利要求的主题可以在涉及本技术或要求基于本技术要求优先权的任何申请的后续诉讼程序中作为实际权力要求被提出。对这样的潜在的权利要
求的包括不应当被理解为意味着实际权利要求不涵盖潜在的权利要求的主题。因此,在后续诉讼程序中不提出这些潜在的权利要求的决定不应被解释为将主题捐赠给公众。
[0202]
在没有限制的情况下,可能被要求保护的潜在的主题(利用字母“p”做前缀以避免与下面呈现的实际权利要求混淆)包括:
[0203]
p1.一种编排器装置,所述编排器装置被配置为将由多个路由器产生的分析数据从所述路由器引导到中央分析分析系统,所述装置包括:
[0204]
通信接口,被配置为耦合到所述多个路由器中的每个路由器中的分析数据队列,并且被配置为耦合到所述中央分析分析系统;以及
[0205]
编排器队列,所述编排器队列与所述通信接口进行数据通信:
[0206]
(a)从所述多个路由器中的每个路由器中的所述分析数据队列接收分析数据;和
[0207]
(b)将所述分析数据传达到所述中央分析分析系统。
[0208]
p2:根据p1所述的编排器装置,其中所述装置还包括数据库,所述数据库被耦合到所述通信接口,以接收和存储从所述多个路由器中的每个路由器接收到的分析数据。
[0209]
p3:根据p2所述的编排器装置,其中所述数据库被耦合到所述通信接口,以将所述分析数据传达到所述中央分析分析系统。
[0210]
p4:根据p1至p3中任一项所述的编排器装置,其中所述通信接口和所述编排器队列被配置为:在第一时间从所述多个路由器中的每个路由器中的所述分析数据队列接收分析数据,并在第二时间将所述分析数据传达到所述中央分析分析系统,所述第二时间晚于所述第一时间。
[0211]
p5:根据p1至p4中任一项所述的编排器装置,其中所述通信接口和所述编排器队列被配置为:以第一数据速率从所述多个路由器中的每个路由器中的所述分析数据队列接收分析数据,并且以第二数据速率将所述分析数据传达到所述中央分析分析系统,所述第二数据速率不同于所述第一数据速率。
[0212]
p11:一种将路由器分析数据收集到集中式分析处理器的方法,包括:
[0213]
提供(810)与多个路由器可操作地通信的编排器(730,根据上述任一实施例),所述编排器多个路由器中的每个路由器包括路由器节点集合;
[0214]
在第一时间在所述编排器处从所述多个路由器中的每个路由器获得分析数据(所获取的分析数据)(820);
[0215]
在所述编排器处将所述所获取的分析数据存储为缓冲的分析数据(830);
[0216]
在所述第一时间之后的第二时间向集中式分析系统(799)提供(840)所述缓冲的分析数据。
[0217]
p12:根据p11所述的方法,其中所述编排器包括数据库,并且在所述编排器处存储所述所获取的分析数据包括将所述缓冲的分析数据存储在所述数据库中。
[0218]
p13:根据p11所述的方法,其中所述编排器包括控制器队列(734),并且将所述缓冲的分析数据提供(840)给所述集中式分析系统(799)包括:
[0219]
向所述控制器队列(734)提供来自多个路由器的缓冲的分析数据;以及
[0220]
将所述控制器队列(734)耦合到所述集中式分析系统(799);以及
[0221]
将来自多个路由器的所述缓冲分析数据从所述控制器队列(734)提供给所述集中式分析系统(799)。
[0222]
p14:根据p11至p13中任一项所述的方法,其中:
[0223]
获得所述分析数据(所获取的分析数据)包括以第一速率获得所述分析数据;和
[0224]
将所述缓冲的分析数据提供给所述集中式分析系统(799)包括以不同于所述第一数据速率的第二数据速率提供所述缓冲的分析数据。
[0225]
p15:根据p14所述的方法,其中所述第二速率比所述第一速率慢。
[0226]
p16:根据p11至p15中任一项所述的方法,其中:
[0227]
所述控制器队列包括发布-订阅队列;
[0228]
所述集中式分析系统(799)根据订阅来订阅所述控制器队列上的主题;和
[0229]
将所述缓冲的分析数据提供(840)给所述集中式分析系统(799)包括根据所述订阅将所述缓冲的分析数据发送到所述集中式分析系统(799)。
[0230]
p21.一种操作多节点路由器装置的方法,所述方法包括:
[0231]
提供多节点路由器装置,包括:
[0232]
第一节点装置,所述第一节点装置被配置为发送和接收网络业务,并且产生第一节点分析数据,并且用第一节点标签标记此类第一节点分析数据的项目,所述第一节点标签将所述第一节点标识为第一节点分析数据的此类项目的源,所述第一节点装置包括第一数据库和第一加载器;以及
[0233]
第二节点装置,所述第二节点装置与所述第一节点装置分离,搜第二节点装置被配置为发送和接收所述网络业务,并且产生第二节点分析数据,并且用第二节点标签来标记此类第二节点分析数据的项目,所述第二节点标签将所述第二节点标识为第二节点分析数据的此类项目的源,所述第二节点装置包括与所述第一数据库不同的第二数据库,以及与所述第一加载器不同的第二加载器;
[0234]
操作多节点路由器装置以发送和接收所述网络业务;
[0235]
将包括对应的第一节点标签的所述第一节点分析数据提供给所述第一加载器;
[0236]
在所述第一加载器处从所述第二节点接收包括对应的第二节点标签的所述第二节点分析数据;
[0237]
同时通过以下方式在所述第一数据库中构建第一分析图像:
[0238]
将所述第一节点分析数据和对应的第一节点标签从所述第一加载器写入到所述第一数据库;和
[0239]
将包括对应的第二节点标签的所述第二节点分析数据从所述第一加载器写入到所述第一数据库,所述第一节点分析数据和所述对应的第一节点标签以及所述第二节点分析数据和所述对应的第二节点标签形成所述第一分析图像。
[0240]
p22.根据p21所述的方法,还包括:
[0241]
将所述第一节点分析数据和所述对应的第一节点标签提供给所述第二加载器;
[0242]
同时通过以下方式在所述第二数据库中构建第二分析图像:
[0243]
将所述第一节点分析数据和所述对应的第一节点标签从所述第二加载器写入到所述第二数据库;和
[0244]
将所述第二节点分析数据和所述对应的第一节点标签从所述第二加载器写入到所述第二数据库,所述第一节点分析数据和所述对应的第一节点标签以及所述第二节点分析数据和所述对应的第二节点标签在所述第二数据库中形成所述第二分析图像。
[0245]
p23.根据p21至p22中任一项所述的方法,其中用第一节点标签标记第一节点分析数据的项目包括用第一节点标签标记第一节点分析数据的所有项目。
[0246]
p24.根据p21至p23中任一项所述的方法,其中用第二节点标签标记第二节点分析数据的项目包括用第二节点标签标记第二节点分析数据的所有项目。
[0247]
前述发明的各种实施例可以至少部分地以任何常规计算机编程语言来实现。例如,一些实施例可以以过程编程语言(例如,“c”)或以面向对象编程语言(例如,“c ”)来实现。本发明的其他实施例可以被实现为预编程的硬件元件(例如,专用集成电路、fpga和数字信号处理器)或其他相关组件。
[0248]
在替代的实施例中,所公开的装置和方法可以被实现为与计算机系统一起使用的计算机程序产品。这样的实现可以包括固定在诸如非暂态计算机可读介质(例如,软盘、cd-rom、rom、闪存或固定盘)之类的有形介质上的一系列计算机指令。该系列计算机指令可以体现本文中先前关于系统描述的全部或部分功能性。
[0249]
本领域技术人员应当了解,这种计算机指令可以用许多编程语言来编写,以供与许多计算机架构或操作系统一起使用。此外,这样的指令可以被存储在任何存储器设备中,诸如半导体、磁、光或其他存储器设备,并且可以使用诸如光学、红外线、微波或其他传输技术之类的任何通信技术来发送。
[0250]
此外,这样的计算机程序产品可以作为具有随附的打印文档或电子文档(例如,压缩打包软件)的可移动介质来分发、利用计算机系统来预加载(例如,在系统rom或固定磁盘上)或从服务器或网络上(例如,互联网或万维网)的电子公告板来分发。当然,本发明的一些实施例可以被实现为软件(例如,计算机程序产品)和硬件的组合。本发明的另外的实施例被实现为完全硬件或完全软件。
[0251]
实现本文中先前描述的全部或部分功能性的计算机程序逻辑可以在不同时间在单个处理器上(例如,并发地)执行,或者可以在相同或不同时间在多个处理器上执行并且可以在单个操作系统进程/线程下或在不同操作系统进程/线程下运行。因此,术语“计算机进程”通常是指对计算机程序指令集合的执行,而不管不同计算机进程是在相同处理器上还是在不同处理器上被执行,并且不管不同计算机进程是在相同操作系统进程/线程下运行还是在不同操作系统进程/线程下运行。
[0252]
上述本发明的实施例旨在仅是示例性的;对于本领域的技术人员来说,许多变型和修改将是清楚的。所有这些变型和修改都旨在落入如任何所附权利要求所限定的本发明的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献