一种向订购者提供服务的方法和系统转让专利

申请号 : CN200680040526.6

文献号 : CN101300779B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马格努斯·伦德斯特伦安德烈亚斯·厄曼托马斯·谢勒

申请人 : 瑞典富拓国际有限公司

摘要 :

一种配置网络的方法,其包括:在配置系统核心产生全局配置树,该全局配置树描述订购者所有可用服务;和网络中每个单独订购者的位置以及其订购的特定服务;向各个单元提供本地配置树,该本地配置树包含全局配置树的一部分,该全局配置树描述单元中连接到网络元件的订购者可用的所有服务;和根据各个单元中的本地配置树配置每个网络元件。

权利要求 :

1.一种配置网络以向订购者提供电话、互联网和电视/视频服务的方法,该网络包括配置系统,该配置系统包括:-能够控制整个网络的核心(22),其包括文件系统(30),数据库(32),核心模块元件管理器(33)和一系列应用程序模块(34a-h),该一系列应用程序模块向网络提供核心服务;

-至少一个能够控制与核心连接的网络特定部分的单元(24),所述至少一个能够控制与核心连接的网络特定部分的单元(24)包括连接到核心(22)的配置提供引擎模块(36)和元件管理模块(38);和-连接到单元(24)的至少一个网络元件(26),每个网络元件(26)支持向许多订购者提供服务;

该方法包括:

-在配置系统核心(22)产生全局配置树,该全局配置树包含描述订购者所有可用服务的整个网络的拓扑结构;和网络中每个单独订购者的位置以及其订购的特定服务;

-向各个单元(24)提供本地配置树,该本地配置树包括由该单元控制的网络部分的拓扑结构并且包含全局配置树的一部分,该全局配置树的这一部分描述单元(24)中连接到网络元件(26)的订购者可用的所有服务,和单元中每个单独的订购者的位置和其所订购的特定服务;和-根据各个单元(24)中的本地配置树配置每个网络元件(26)。

2.如权利要求1所述的方法,其中配置树包括位于不同层次的一系列对象,每个对象包含函数以及实现该函数所需的参数。

3.如权利要求2所述的方法,其中对象包含IP地址池,该方法包括将IP地址池指定给对象,该对象是其直接祖先的子网,从而IP地址池的指定与网络拓扑结构相对应。

4.如前述任一权利要求所述的方法,包括将本地配置树提供给单元(24)中的配置命令和数据,并且将来自单元(24)的配置命令和数据部署到网络元件(26)和订购者中。

5.如权利要求4所述的方法,其中本地配置树的任何改变在单元(24)中能够得到校验,并且一旦校验正确,该本地配置树就仅仅部署在网络元件(26)和订购者中。

6.如权利要求5所述的方法,包括以通用格式向单元(24)提供本地配置树,以及以设备特定格式部署配置命令。

7.如权利要求6所述的方法,包括响应核心(22)从单元(24)接收到的通信信息,改变全局配置树;向单元(24)提供具有改变的本地配置树,并且将改变的配置部署到网络元件(26)中。

8.如权利要求7所述的方法,进一步包括将信息从网络元件(26)发送到单元(24)。

9.如权利要求8所述的方法,其中由外部服务提供者提供服务,该方法进一步包括外部服务提供者借助与控制系统核心(22)的外部链路,改变控制系统核心(22)中的整个配置树。

10.如权利要求9所述的方法,其中配置系统包括多个不同类型的网络元件(26),并且每个单元(24)包含每个类型的网络元件(26)的元件管理器(38),该方法包括向与该类型的网络元件(26)相关的元件管理器(38)提供与某网络元件(26)类型相关的本地配置树部分。

11.如权利要求10所述的方法,其中本地配置树包括条件控制语句,该方法包括在控制系统中监测现存条件并且选择合适的配置语句以便于部署。

12.如权利要求11所述的方法,其包括根据现有条件的改变选择不同的配置语句。

13.一种用于向订购者提供电话、互联网和电视/视频服务的系统,包含配置系统的网络包括:-能够控制整个网络的核心(22),其包括文件系统(30),数据库(32),核心模块元件管理器(33)和一系列应用程序模块(34a-h),该一系列应用程序模块向网络提供核心服务;

-至少一个能够控制连接到核心的网络特定部分的单元(24),所述至少一个能够控制连接到核心的网络特定部分的单元(24)包括连接到核心(22)的配置提供引擎模块(36)和元件管理模块(38);和-至少一个连接到单元(24)的网络元件(26),每个网络元件(26)支持许多用于提供服务的订购者;

其中配置系统核心(22)包括数据库(32),以及管理配置系统核心(22)与外部应用程序、单元(24)和网络元件(26)之间相互作用的一系列应用程序模块(34a-h),其中一个模块包含具有配置树的配置模块,该配置树包含整个网络的拓扑结构,并且其描述了订购者可用的所有服务;以及网络中每个单独订购者的位置以及其订购的特定服务,配置模块能够将配置树的一部分部署到每个单元中,配置树的这一部分包含该单元所控制的网络部分的拓扑结构并且包含该单元(24)和所有从属网络元件(26)。

14.如权利要求13所述的系统,其中配置模块包含网络元件的配置。

15.如权利要求13或者14所述的系统,其中配置模块能够解析外部程序对配置树做出的改变。

16.如权利要求15所述的系统,其中每个单元(24)包括配置提供引擎模块(36)和元件管理模块(38),该配置提供引擎模块(36)包含覆盖该配置提供模块所驻留的单元(24)的配置树部分,且被设置为将相关网络元件(26)的配置信息传送至元件管理模块(38),元件管理模块(38)被设置用于将最终的配置部署到网络元件(26)中。

17.如权利要求16所述的系统,其中为每个类型的网络元件(26)提供元件管理模块(38)。

18.如权利要求17所述的系统,进一步包括连接到各种应用程序模块的应用程序间消息总线(35)。

19.如权利要求18所述的系统,其中配置系统核心(22)还包括用于提供配置系统核心(22)的其他模块和数据库(32)之间的数据库存储和访问的数据库应用接口模块(34d)。

20.如权利要求19所述的系统,其中配置系统核心(22)还包括向外部应用程序提供系统数据的外部应用程序模块(37)。

21.如权利要求20所述的系统,进一步包括用于在核心(22)自动执行脚本的脚本引擎(34g)。

22.如权利要求21所述的系统,进一步包括至少一个用于记载系统行为的日志模块(34b,c)。

说明书 :

一种向订购者提供服务的方法和系统

技术领域

[0001] 本发明涉及配置网络的方法,该网络例如宽带通信网络。

背景技术

[0002] 附图1显示了向位于很多位置上的订购者提供电话、互联网和电视/视频服务的宽带网络的总体描述。借助通常的接入点12,一系列服务提供者向网络10提供各种服务(SP1,SP2,SP3)。借助位于与订购者较近的位置上的路由器14,网络10提供服务提供者与订购者之间的连接。这些位置包含可以在商业区16内具有路由器的商业位置,和在中心办公室18或者单独建筑物19内具有路由器的内部订购者,该中心办公室18用作单独住房(房屋17)的邻居,该单独建筑物19例如公寓楼。
[0003] 网络的运行由控制与供应系统20加以控制,该控制与供应系统对网络中的各种元件加以配置,以使其按照预定的模式运行。
[0004] 对于控制与供应系统20的功能而言,以抽象的方式,网络可以被认为包含具有一个或者多个单元24的核心22,如附图2所示,每个单元具有一个或者多个网络元件26。订购者28连接到网络元件26。该结构不能与组成网络的物理元件混淆。根据所讨论的网络的精确尺寸和结构,尽管在典型的情况下每个网络元件26包含路由器,但是功能模块22、24、26可以全部地或者部分地驻留于相同的或者不同的物理元件中。
[0005] 借助控制与供应系统20的使用,操作者管理网络的功能,该控制与供应系统具有下述功能:确定每个网络元件26的功能,和确定以及管理用户的功能和操作。主要的控制在核心22的层次上起作用,该核心定义了网络的拓扑结构和配置情况,该作用包括配置物理或者逻辑链路,指定IP地址和使得连接到网络的用户可以使用特定服务。在现有系统中,网络的配置数据存储于可以借助应用编程接口(API)访问的核心数据库中。在启动中,网络模块不包含任何配置数据。当需要的时候,例如在新的装置连接到网络模块的时候,网络模块访问数据库并且将必要的配置数据本地缓存,其保存在该位置直到发生改变。当网络配置发生改变的时候,数据库发生改变并且警告信号通过网络传送到网络模块,该网络模块接着查询数据库以发现改变的信息,该改变的信息接着加载到网络模块中的相应数据库中,在该网络模块中该改变的数据得以缓存(网络模块数据库具有与核心数据库相同的结构,但是仅仅具有配置网络模块及其从属的网络元件所需要的数据)。
[0006] 现有系统存在的问题是,配置必须是手工操作,每个改变均需要操作者参与。另外,将配置改变为包含无法生效的改变(错误)也是可能的,上述改变反过来需要手工校正。本发明的目标在于,提供一种相对易于配置和管理的系统。

发明内容

[0007] 本发明涉及一种向订购者提供电话、互联网和电视/视频服务的网络,该网络包括配置系统,该配置系统包括:能够控制整个网络的核心;至少一个能够控制与核心连接的网络特定部分的单元;和连接到单元的至少一个网络元件,每个网络元件(例如路由器)向订购者提供服务。
[0008] 本发明的一个方面包含一种配置上述类型的网络的方法,该方法包括:在配置系统核心产生全局配置树,该全局配置树包含描述订购者所有可用服务的整个网络的拓扑结构,和网络中每个单独订购者的位置以及其订购的特定服务;向各个单元提供本地配置树,该本地配置树包括由该单元控制的网络部分的拓扑结构并且包含全局配置树的一部分,该全局配置树的这一部分描述单元中连接到网络元件的订购者可用的所有服务;和单元中每个单独的订购者的位置和其所订购的特定服务;和根据各个单元中的本地配置树配置每个网络元件。
[0009] 配置树典型地包括位于不同层次的一系列对象,每个对象包含函数以及实现该函数所需的参数。
[0010] 优选地,该方法还包括将本地配置树提供给单元中的配置命令和数据进行处理,并且将来自单元的配置命令和数据部署到网络元件和订购者中。
[0011] 本地配置树的任何改变在单元中能够得到校验,并且一旦校验正确,该本地配置数就仅仅部署在网络元件和订购者中。
[0012] 典型地,以通用格式向单元提供本地配置树,以及以设备特定格式部署配置命令。
[0013] 在一个实施例中,该方法可以包括响应核心从单元接收到的通信信息,改变全局配置树;向单元提供具有改变的本地配置树,并且将改变的配置部署到网络元件中。其可以进一步包括将信息从网络元件发送到单元。
[0014] 外部服务提供者还可以借助与控制系统核心的外部链路,改变控制系统核心中的整个配置树。
[0015] 配置系统能够包括多个不同类型的网路元件,每个单元包含每个类型的网络元件的元件管理器,该方法包括向与该类型的网络元件相关的元件管理器提供与某网络元件类型相关的本地配置树部分。
[0016] 本地配置树能够包括条件控制语句,该方法包括在控制系统中监测现存条件并且选择合适的配置语句以便于部署。可以根据现有条件的改变选择不同的配置语句。
[0017] 本发明的另外一个方面包括,一种用于向订购者提供电话、互联网和电视/视频服务的系统,包含配置系统的网络包括:
[0018] -能够控制整个网络的核心;
[0019] -至少一个能够控制连接到核心的网络特定部分的单元;和
[0020] -至少一个连接到单元的网络元件,每个网络元件支持许多用于提供服务的订购者;其中配置系统核心包括数据库,以及管理配置系统核心与外部应用程序、单元和网络元件之间相互作用的一系列应用程序模块,其中一个模块包含具有配置树的配置模块,该配置树包含整个网络的拓扑结构,并且其描述了订购者可用的所有服务;以及网络中每个单独订购者的位置以及其订购的特定服务,配置模块能够将配置树的一部分部署到每个单元中,配置树的一部分包含单元所控制的网络部分的拓扑结构并且包含该单元和所有从属网络元件。
[0021] 在一个实施例中,配置模块能够解析外部程序对配置树做出的改变。
[0022] 典型地,每个单元包括配置提供模块和元件管理器,该配置提供模块包含覆盖该配置提供模块所驻留的单元的配置树部分,且被设置为将相关网络元件的配置信息传送至元件管理器,元件管理器被设置用于将最终的配置部署到网络元件中。
[0023] 优选地,为每个类型的网络元件提供元件管理器。
[0024] 一种系统,其能够进一步包括下述一个或者多个:连接到各种应用模块的应用程序间消息总线;用于提供配置系统核心的其他模块和数据库之间的数据库存储和访问的数据库应用接口模块;向外部应用程序提供系统数据的外部应用程序模块;用于在核心自动执行脚本的脚本引擎;和至少一个用于记载系统行为的日志模块。

附图说明

[0025] 现在,结合附图,对本发明进行描述。
[0026] 附图1显示了本发明相关的宽带网络的示意图;
[0027] 附图2显示了示例的功能性网络控制系统;
[0028] 附图3显示了用于实现本发明的方法的系统;和
[0029] 附图4显示了根据本发明的方法形成的配置树。

具体实施方式

[0030] 附图3显示了适于实现本发明的系统。核心22包含文件系统30、数据库32、核心模块元件管理器22和向网络提供核心服务的一系列模块34a-h。尽管各种元件能够分布在多个服务器中,但是文件系统30、数据库32和模块33、34都位于中心服务器。核心模块34间相互进行交互,核心模块34与核心24以及网络元件26之间进行交互。借助外部应用程序接口37,核心22还与例如服务提供系统的外部应用程序交互。核心模块34包括系统管理器模块34a、网络日志模块34b、日志管理器模块34c、数据库应用程序接口34d、订购者管理工具桥34e、外部应用程序接口34f、脚本引擎34g和配置工作管理器34h。借助应用程序间消息总线35,各个核心模块34相互通信。每个核心24包括处理单元中部分网络拓扑结构的模块。单元24与核心22位于相同的服务器中,但是在大型网络的情况下,单元24可以与核心服务器分离并且部署于网络中。每个单元包括配置提供引擎模块36和元件管理模块38。典型地,每个网络元件26包括可编程的路由器40。
[0031] 靠近核心22的模块实现了核心各种功能的高效运行。模块34a-h的详细描述如下。
[0032] 系统管理器模块34a维护中心文件库,在该中心文件库中各种类型的文件得以存储。系统管理器34a根据需要将文件分布到系统的不同部分并且作为来自系统其他部分的文件的集中点。
[0033] 当系统管理器34a启动的时候,其在文件库路径中展现文件的详细目录。系统管理器接着连接到应用程序间消息总线(IAMB)35并且开始监听请求。例如单元24中的元件管理器模块38的其他模块可以接着连接到系统管理器34a并且报告对于特定类型文件的兴趣(订购)。系统管理器34a同样从连接模块订购文件。
[0034] 内部文件转送子系统(表现为应用程序间消息总线35上面一层)处理与订购模块的订购相匹配的文件的转送。文件转送由内部文件转送子系统自动完成。添加到文件库路径中的文件由子系统自动探测,该子系统将新文件可用的情况通知到模块。模块接着使用子系统请求文件转送。该子系统由与系统管理器34a一起执行文件转送的所有模块使用。
[0035] 基于配置线对象的内容(下面与配置树一起详细讨论),元件管理器模块38需要操作系统图像,该配置线对象指定哪个操作系统图像在任何网络元件26上运行。如果给定网络元件的所需操作系统图像在本地或者在系统管理器文件库34a中不可用,那么由于不可能确保正确的配置部署到网络元件26中,作为安全措施,网络元件将被阻塞。操作系统图像包从图形用户接口上载到系统管理器34a。
[0036] 两个模块具有系统日志功能,这两个模块是网络日志模块34b和日志管理器模块34c。虽然在该实施例中这些部分得以分离,但是特定情况下其可以结合在同一模块中。网络日志模块34b保存与IP地址相关的地址历史日志和其他重要信息,该IP地址是分配给网络中订购者的。
[0037] 网络日志34b所生成的数据库文件基于大小和生成时间得以轮转。当达到日志文件的最大文件大小或者最长存续时间的任何时候,日志文件得以轮转。网络日志34b的日志循环与日志管理器模块34c(参见下面的论述)采用的工作方式相同。
[0038] 日志管理器模块34c保存系统日志。该信息与系统操作相关并且包含有关系统操作的重要事件的信息,该重要事件包括与网络元件相关的行为。日志管理器模块34c也接受网络行为请求(NAR)消息,并且触发被设计用以处理该事件的脚本引擎中的自动脚本。日志管理器模块34c还将系统日志存储到简单的数据库34c中并且负责网络行为请求事件的处理,包括调用脚本引擎模块34g执行处理特定事件的脚本。
[0039] 系统模块能够生成与系统中发生的事件和状态相关的日志消息。日志消息在应用程序间消息总线35得以传送。日志管理器监听日志频道并且将接收到的系统消息存储到数据库34c’中。
[0040] 如果日志管理器模块34c充塞了日志信息,那么其自动开始把日志消息区分优先次序。如果队列超过特定阈值,较低优先级的日志消息被丢弃。在压力降低的时候,日志管理器34c重新开始较低优先级的消息的存储。
[0041] 由日志管理器34c生成的数据库文件基于大小和生成时间得以轮转。当达到最大文件大小或者最长存续时间的任何时候,日志文件得以轮转。
[0042] 网络行为请求(NARs)是由系统模块触发的特定事件。网络形为请求事件标识需要外部交互加以解决的例外状态。网络行为请求的示例包括IP地址池耗竭和与未知网络元件的连接。如果系统本身不能解决该情况,那么需要得到帮助,该帮助借助图形用户接口从操作者获得,或者从脚本引擎模块34g执行的自动引擎获得。日志管理器34c监听网络行为请求的频道,这意味着其接收所有的网络行为请求事件。该事件接着与已知脚本列表匹配,并且如果得到匹配脚本,那么事件与执行脚本的指令一起被传送到脚本引擎34g。当脚本引擎34g报告其成功处理脚本的时候,网络行为请求事件从网络行为请求事件库中删除。
[0043] 数据库应用接口(DB-API)模块34d为其他核心模块提供数据库存储和访问工具。ODBC被用于与保存配置树和系统运行的其他重要数据的外部数据库32之间进行通信。
[0044] 数据库应用程序接口34d提供系统模块与外部数据库32之间的抽象层。其目的在于,在与其他模块操作的数据库无关的外部数据库中做出选择。需要访问数据库的模块通过数据库应用程序接口34d建立连接。将用于数据库表的插入、更新和选择的普通函数的调用从内部系统应用程序接口传送到数据库的ODBC请求。
[0045] 订购者管理工具桥34e与外部应用程序接口关联,从而实现与外部订购者管理工具应用程序(未示出)之间的相互作用。可以根据需要使用其他桥模块,或者完全不使用桥模块。
[0046] 外部应用程序接口模块34f使得外部应用程序能够访问系统数据,该外部应用程序例如图形用户接口、自注册入口和订购者管理工具。当与系统进行通信的时候,外部应用程序接口模块34f提供外部应用程序的应用程序接口。使用外部应用程序接口34f的外部应用程序的示例是图形用户接口。
[0047] 具有外部应用程序接口34f的出口函数的其他系统模块可以由外部应用程序调用。外部应用程序接口34f处理被调用的函数和任何参数,验证所有提供的且具有适宜的类型的所需参数,并且接着创建调用该函数的函数。函数可以位于外部应用程序34f的内部,或者其可以位于一个系统模块中。如果函数位于一个系统模块中,该函数由应用程序间消息总线35调用。
[0048] 外部应用程序接口34f的主要前端是SOAP/XML前端。
[0049] 外部应用程序接口34f包含用户验证机制,通过外部应用程序加以连接的用户必须在对数据和函数加以访问之前得以验证。当验证成功时,会话得以建立,在该会话中用户能够访问与该用户所述的命名空间相关的所有数据和函数。
[0050] 脚本引擎模块34g提供自动脚本执行的功能。在正常运行中,下述情况发生:系统需要外部逻辑处理该情况。上述情况的示例是,当未知网络元件企图连接到系统的时候。该元件可能是正常部署的一部分,并且当元件连接的时候,自动脚本能够在数据库中创建必要的对象。脚本引擎模块34g还能够提供帮助通过图形用户接口对网络加以管理的向导框架。
[0051] 配置工作管理器(CJM)模块34h保存描述订购者可以使用的服务的配置树,其中网络订购者得以展现并且得到订阅的服务。以文本文件形式表达的配置树示例显示在附图4中。配置树还包含具有网络元件26的配置的网络拓扑信息。配置工作管理器34h维护配置树,并且外部应用程序对于树做出的改变在部署到单元24中之前得以解析。
[0052] 配置工作管理器34h负责所有对象的创建、删除和更新操作,并且包含负责系统中IP地址管理的资源管理子系统。
[0053] 配置工作管理器34h在启动阶段连接到数据库应用程序接口34d。接着其将完整的配置树读入内存中。一旦完成,配置工作管理器34h等待来自系统中其他模块的连接。用户借助图形用户接口在配置树中查看、创建、删除或者改变对象时,调用被转发到配置工作管理器34h,该调用被发送至外部应用程序接口34f用于对象处理。除了外部应用程序接口34f,单元24中的配置提供引擎(CRE)36也与配置工作管理器34h相互通信。
[0054] 当配置提供引擎36连接到配置工作管理器34h的时候,两个模块之间的会话得以建立。配置提供引擎36具有与网络位置相关的配置树本地复制本。当两个模块得以连接的时候,两个模块比较配置树的配置提供引擎本地复制本的版本与配置工作管理器存储的当前版本。如果二者不同,配置提供引擎36冲洗其复制本,并且从配置工作管理器34h接收新的复制本。这就确保配置提供引擎36具有与配置工作管理器34h完全相同的配置树复制本。
[0055] 当配置工作管理器34h接收并且处理配置树的改变的时候,配置工作管理器34h确定,哪个配置提供引擎36需要得以更新(如果有的话)。接着,更新被传送到相关的配置提供引擎36。
[0056] 配置工作管理器34h要求,配置树的改变必须正确并且可以得到配置以便于得到许可。这通过验证-提交过程加以控制。在被永久提交到配置树之前,配置树的改变必须由系统模块加以验证,该改变包含创建、删除和改变对象的操作。当验证操作得以调用时,配置工作管理器34h对配置树加以调整,包含对象的改变。这触发了单元模块中配置的提供和配置的验证,但是该配置并不实际部署到网络中。一旦验证得以完成,出现的任何错误都得以回报并且先前配置树的有效回滚开始。如果没有探测到错误,那么准备好开始提交。否则,错误必须得以纠正并且新的验证操作必须发生。
[0057] 在提交的时候,改变永久地提交给配置树(除非该工作未来发生,参见下文)并且该变化立即生效。按照需要,配置得以提供并且部署到网络中。
[0058] 配置工作管理器34h的资源管理器子系统负责管理系统中的资源。典型的资源是用作接口地址以及用于网路中订购者分配的IPv4地址空间。系统具有用于IP地址资源管理的特定对象,IPv4资源对象。该对象表示一块IPv4地址空间,并且被指定为地址池。对象的名称被用于将多个对象连接到一起,从而一个对象——与树的根节点最近的对象——代表地址池的100%。配置树的分支下的其他对象具有代表主池的较小部分的相同名称——达到其直接祖先的100%的地址池。
[0059] 当IPv4资源对象得以创建并且提交给配置树的时候,其所代表的池中的地址从其祖先上得以分配。存在根节点上代表整个IPv4地址池的不可见的祖先,从而实际上甚至在直接从根节点创建资源对象的时候,分配仍然得以执行。
[0060] 如果对象没有祖先(另一个IPv4资源对象与树的根节点更近),从“全部”IPv4空间获得的子网和前缀的长度必须得以指定。如果存在祖先对象,在对象得以创建的时候子网可以指定。如果子网得以指定,系统将试图从祖先资源对象池中分配子网。如果子网已经得以分配,新资源对象的验证步骤将失败。如果存在祖先资源对象,完全可以指定新的资源对象所需要的前缀长度。在新对象提交给配置树的时候,系统将接着从祖先池中分配该大小的子网。
[0061] 该机制实现了下述内容,如果需要,池中特定子网得以指定,但是当使用的实际子网并不重要的时候(正是系统需要分配所需大小的下一个可用子网),仅仅允许需要加以指定的子网的大小。
[0062] 在两个或者多个网络元件之间的链路得以连接。对于IP网络而言,该链路需要子网并且连接到链路的每个网络元件的每个接口也需要具有地址。地址池系统使得链路动态分配,并且如果需要,指定每个接口使用的精确地址成为可能。
[0063] 下面的示例描述了地址池如何配置并且使用链路地址。
[0064] 针对子网10.0.0.0/16,IPv4资源对象在树的根节点上得以创建。对象的名称被设置为“链路”。因为不存在祖先,并且子网得以指定,所以具有10.0.0.0/16子网的地址池“链路”得以创建(实际上从不可见的0/0地址池中分配,该地址池代表整个IPv4地址空间)。
[0065] 允许在区域边界上聚集前缀以降低路由区域和骨干网之间承载的路由信息的数量是重要的。由于该原因,被称为a/24子网的“链路”的IPv4对象资源在拓扑结构的区域边界层次上得以创建。当对象得以提交的时候,来自/16的a/24得以分配。
[0066] 网络元件接着添加到拓扑结构中,并且其间的链路得以创建。在环形拓扑结构中,链路仅仅需要小的/30子网,以向每个网络元件提供接口。被称为a/30子网的“链路”的IPv4资源对象作为链路的子节点得以创建。每个对象将从在先创建的/24地址池中接收a/30。最终,为了向每个接口分配IP地址,在每个链路的每个接口上,子IPv4资源对象得以创建。因为每个接口需要单独的地址,前缀长度总是接口的/32,单独的IP地址从链路/30处得以分配。如果接口需要特定IP地址(例如其已经得以配置),链路池中指定所期望的地址成为可能,并且如果还没有得以分配,一旦接口的子资源对象被提交给配置树时,其也是如此。
[0067] 为了向客户端指派IP地址,客户端使用服务的服务名被用于定位该服务的IPv4参数对象。最适合的参数IPv4(由树中位置和权重决定)得以应用。IPv4参数对象具有子IPv4资源对象。该客户端从地址池接收地址。如果没有地址可用,网络行为请求事件得以产生以允许自动脚本或者网络管理员将另一个子资源添加到IPv4参数对象中。
[0068] 在单元24中,配置提供引擎36具有配置树的本地复制本,该配置树覆盖了由该单元24覆盖的网络部分。配置提供引擎36从配置树中装配对象,以形成部署到各个网络元件40中的最终配置。该过程包括将配置线对象和参数加以连接,分配IP地址和确定预处理条件,以形成传送到元件管理器模块38的最终网络元件配置。
[0069] 配置提供引擎36是单元24的一部分。其基本目的在于,在其控制下,生成每种类型的网络元件40的完整配置。该配置接着传送到网络元件管理器38以便于验证和部署。配置提供引擎36负责地址分配并且维护所有已知客户端的列表。
[0070] 配置提供引擎36与核心中的配置工作管理器34h相互通信。配置工作管理器34H维护整个网络的完整配置树。每个配置提供引擎36接收描述单元24所覆盖的网络部分的配置树(除非其为仅有的运行中的单元24,配置提供引擎36不具有配置树的完整复制本)。当配置提供引擎36启动的时候,其建立与配置工作管理器34H的工作会话并且接收工作序号。配置工作管理器34H持续验证工作序号数据库版本,该工作序号数据库版本与每个连接的配置提供引擎36一起使用。如果工作序号改变(会话重新开始的标识,例如由于网络问题),配置工作管理器34h将指示配置提供引擎36清除其配置树,并且重新将配置树发送到配置提供引擎36。这使得配置提供引擎36总是具有配置树的最新复制本和精确复制本。
[0071] 在正常运行中,配置工作管理器34h将向配置树传送具有网络拓扑结构的变化、配置变化等的更新。配置提供引擎36解析其所接收到的变化并且开始内部工作以加以配置。
[0072] 一些工作是时控的——被设置为在精确的时间或者是在固定的时间间隔发生。由于该原因,配置提供引擎36操作内部定时器运行,该定时器能够开始内部工作以提供配置更新。
[0073] 除了由配置工作管理器34h启动的内部工作之外,该工作还可以作为网络中行为的结果加以启动。典型的示例是,当网络中的客户端请求并且根据动态主机配置协议进行寻址的时候。适宜的消息触发元件管理器38以向配置提供引擎36开放客户端内容,并且这相应地意味着,配置提供引擎36必须向分配了IP地址的客户端提供适宜的配置,为客户端生成网络日志以及可能的动态DNS更新,并且当然将提供的配置传送到元件管理器38以便于部署。
[0074] 配置提供引擎36的重要功能在于地址分配。在服务通过配置提供引擎加以传送的任何时候,该服务请求指派给客户端、链路或者网络元件的IP地址,其将从地址池中分配所使用的地址,如同由配置树中的资源网络对象加以定义一样。配置提供引擎36分配最小块,例如给每个网络元件的a/30地址块。因为客户端内容得以公开,所以来自块的各个地址得以分配并且插入到提供配置中。
[0075] 通过外部应用程序接口34f,配置提供引擎36提供发行和收回标签的功能。简单而言,标签是依附于变量的命名值。因为标签依附于其所创建的客户端,当提供服务配置的时候,其可以根据配置线对象(未示出)中的条件语句一起使用。举例而言,假定叫做登陆网络的标签或者由外部入口应用程序对客户端加以设置,或者没有由外部入口应用程序对客户端加以设置。当客户端连接到网络的时候,很明显没有可用的标签。在相关的配置线对象中,条件可以使用以提供访问列表,该访问列表防止对除了客户端入口之外的其他入口的访问。当客户端访问入口并且登陆到网络的时候,入口应用程序为客户端创建$客户端.标签.网络登陆(基于其IP地址)。通过外部应用程序接口34f到配置提供引擎36的创建调用创建工作更新,该工作更新使得配置提供引擎36再次提供客户端的配置。因为以前的条件现在是错误的,访问列表不再为客户端生成并且客户端接着能够访问整个网络。
[0076] 元件管理器模块38对于每个类型的网络元件而言是特定的。典型地,其包括在所讨论的特定硬件上运行的操作系统。模块38从配置提供引擎36接收配置,并且验证所有配置状态对于操作系统而言是精确的并且有效的,模块38运行在该操作系统之上。借助适宜的协议,网络元件40连接到元件管理器38以接收配置。
[0077] 系统针对不同类型的网络元件40使用多个元件管理器38,EM与网络元件40所使用的每个类型的操作系统相关联。元件管理器38使用适宜的协议维护与网络元件之间的通信。元件管理器38是单元24的一部分。其从配置提供引擎36接收配置信息以部署到网络中。
[0078] 核心中的系统管理器34a具有包含所有操作系统图像的中心文件库。当用户从图形用户接口上载操作系统图像的时候,系统管理器34a将其切分为实际图像文件和验证库文件,并且将其存储在库中。系统管理器34a接着通知所有元件管理器38新图像的情况,元件管理器38接着可以请求(如果其具有被指定使用该图像的元件40)。从系统管理器34a请求得到的图像存储在单元服务器的元件管理器本地文件库中。只有存在于本地文件库中的图像才能够提供给网络元件40。这也就意味着对于任何要发生更新的操作系统图像而言,在网络元件40能够下载图像之前,该图像必须首先上传到系统中。
[0079] 当描述配置树的时候,使用下列术语。
[0080] 表1
[0081]
[0082] 下表简要地描述了配置树中发现的对象类。配置树的简写在附图4所示的示例中得以使用。
[0083] 表2
[0084]
[0085]
[0086] 配置树中的每个对象都具有许多字段。一些字段描述对象和其在配置树中的位置,同时其他字段影响在配置提供过程中对象如何得以使用。上面列出的对象的总结如下。
[0087] 依附元件对象代表网络元件或者装置。典型地,其是一种具有大量接口的物理装置。在网络的示例中,为网络中的每个路由器创建一个依附元件对象。依附元件对象也可以被创建以代表网络中其他类型的装置。这使得配置树能够包含网络拓扑结构的精确图,该拓扑结构包含核心和分布式路由器、第二层交换机、DSLAM或者其他设备。
[0088] 节点对象能够包含其他对象,类似于文件系统目录或者组。典型地,节点对象代表其他对象的逻辑组或者物理组,例如地理区域。节点对象生成配置树的新分支。节点对象可以创建配置树中的新层次。根的层次是第一层。根节点层次中的节点创建第二层次。该结点中的任何对象属于第二层次。第二层次的节点创建第三层次,依次类推。每个节点并不创建新的层次,同一层次上节点中的对象属于相同层次,但是属于配置树的不同分支。
[0089] 库对象是一种能够容纳其他对象的对象。库类似于节点对象,但是并不在树中创建新的层次。库对象不会被嵌入。库指的是可见配置组和与对象相关的配置,例如配置线对象和参数,上述参数使得配置树看起来较少地被对象所阻塞。库对象用于保存配置、参数和服务对象。一些该对象得以存在,典型地存在于树的根节点。通过将其分组到库对象中,图形用户接口用户观察到的配置树得以增强。
[0090] 配置线对象保存服务相关的配置语句。部署在网络元件上的任何配置被看做服务,其包含静态缺省配置,该静态缺省配置被传送到装置以使得,无论任何客户端连接到网络元件上,该装置都能够正常运行。配置线对象保存数行配置语句。配置可以和参考名称一起嵌入到其他对象的字段以及参数中。在配置提供过程中,在配置传送到网络装置之前,该参考名称由其真值加以代替。
[0091] 配置预处理语言是宏语言,该宏语言根据条件和表达确定提供过程中,对象的哪些部分的配置行得以使用。
[0092] 参数对象仅仅包含参数。由参数对象定义的参数可以直接引用。一些对象类具有参数字段。在该参数字段中定义的参数精确地作为参数对象中定义的参数加以使用——其能够以相同的方式加以参考。
[0093] IPv4地址的参数对象仅仅包含参数。IPv4参数对象具有特定目的和参数字段的一系列预定条目。将其他条目添加到参数字段是可能的,并且如果这样做,其将作为正常参数对象的条目。在配置提供过程中,IPv4参数对象用于从IPv4地址池中分配IP地址。
[0094] 依附单元对象是单元的逻辑连接点。依附单元的位置的相同层次或者较低层次(分支)上的所有对象由该单元加以处理。
[0095] 配置工作管理器保存配置树。基于依附的单元,其将树的子部分传送到每个单元,从而每个单元仅仅接收和了解树的一部分。
[0096] 链路对象代表接口对象之间的逻辑或者物理链路。典型地,该链路对象代表第三层广播域,该广播域的最简单形式是网络元件之间的点对点连接。链路对象保存与链路相关的参数,例如所使用的IP子网。
[0097] IP地址是任何IP网络中的关键性资源。IP地址池与IPv4地址资源对象一起得以定义。IP地址池是IP地址的子网,其能够由配置树中的服务和链路加以使用。地址可以动态分配或者静态指定。动态地址在请求的时候加以分配,而静态地址通常得以指定。
[0098] 资源等级对象用于代表任何有限等级值,其意味着仅有特地数量或者最大数目的资源是可用的。等级资源的示例是OSPF区域或者vlans,在该区域,其中资源的最大值存在于网络中。
[0099] 接口对象是网络元件上的逻辑或者物理接口。接口具有两个主要目的。第一个主要目的是,将一个网络元件连接到另一个网络元件,在这种情况下接口对象连接到普通链路对象。第二个应用是,当接口对象代表订购者的连接点的时候。在这种场景下,接口对象是与订购者具有的服务相关的服务依附对象的母对象。
[0100] 静态服务代表相关网络元件一旦与系统接触就自动得以部署的服务。当系统遇到服务的任何时候,该服务依附于静态服务,那么该服务的配置得以提供并且部署到网络元件中。
[0101] 动态服务代表基于来自网络元件的信号加以部署的服务(例如当客户端装置得知动态主机配置协议请求的时候)。
[0102] 在系统遇到服务的任何时候,该服务依附于动态服务,那么在该服务的配置得以提供之前,其将等待触发事件发生。
[0103] 触发事件由网络元件的元件管理器加以通知。典型地,触发事件来自客户端发送的DHCP DISCOVER报文。如何将原始事件转化为动态服务的触发事件,依赖于网络元件和元件管理器。在一个实施例中,网络元件通知操作系统管理器,并且元件管理器接着在内部生成触发事件。
[0104] 典型地,动态服务对象位于与树根层次较近的位置或者位于树根层次上,从而定义网络的何种服务是动态的。这也使得下述内容较为容易,该内容就是在不使用单独的服务依附对象的情况下改变网络服务的行为。
[0105] 依附服务对象界定了网络中特定服务的部署。如果与一个或者多个网络元件位于相同层次上,所有网络元件(以及来自该位置的较低层次上的任何元件)接收该服务。如果位于接口对象下面,该接口接收服务。
[0106] 部署到网络中的任何配置,包括基本系统配置,都被认为是服务。基于该原因,服务依附对象必须在配置树中得以创建,并且为了网络元件的基本系统配置加以创建,甚至在配置与订阅者无关的情况下加以创建。