利用元数据驱动状态转换的在服务软件升级的制作方法

文档序号:7690458阅读:121来源:国知局
专利名称:利用元数据驱动状态转换的在服务软件升级的制作方法
技术领域
本发明的实施涉及计算机网络领域,更具体涉及利用元数据状态转换来 升级网络元件。
背景技术
服务提供商网络中的网络元件通常处理来自用户访问一些不同的服务 和/或与其他用户进行通信的大量数据通信。例如,网络元件能够处理针对数 万用户的服务。网络元件操作中的中断能够引起提供给这数万用户的服务的 中断。图1示出了服务提供商网络100的一个实施方式,所述服务提供商网络 100具有通过网络来转发终端站和内容服务器之间通信的网络元件。虽然在 一个实施方式中,网络元件是路由器,但在可替换的实施方式中,网络元件 可以是本领域所知的其他网络设备(交换器、集线器、防火墙等)。此外, 虽然在一个实施方式中,网络元件转发通信,但在可替换的实施方式中,网 络能够执行相同的和/或不同的通信处理(切换通信、形成通信、平滑通信、 应用接入控制、应用防火墙策略等)。在图1,网络100包括终端站102A-C、 网络元件104、核心网络106、和内容服务器108A-B。终端站102A-C与网 络元件104相连接以及网络元件与内容服务器108A-B通过核心网络106相
连接。虽然在一个实施方式中,终端站102A-C是家庭个人电脑,但在可替 换的实施方式中,终端站可以是相同的或者不同类型的机器(例如,商务电 脑、个人数字助理、手机、游戏控制台、手持游戏系统、笔记本电脑等)。 终端站可以通过本领域所知的任何一种方式与网络元件相连(例如,以太网、 无线电、数字用户线(DSL)、电缆调制解调器、光纤等)。网络元件104通 过转发从终端站102A-C到内容服务器108A-B、从内容服务器108A-B到终 端站102A-C的数据通信,以及终端站102A-C之间的数据通信,来提供进 入核心网络106的入口点。虽然在一个实施方式中,网络元件104是转发为 终端站102A-C服务的边缘网络和核心网络106之间的通信的边缘网络元件, 但在可替换的实施方式中,网络元件104可以是不同地位于服务提供商的边 缘网络和/或核心网络中的网络元件或者交换器。核心网络106是网络提供商的中枢网络,该中枢网络通常具有处理通过 网络100传输的大量通信的强大能力。内容服务器108A-B为提供给终端站 102A-C的服务供应内容和/或控制信息。网络元件104为所述大量的用户处理数据时,网络元件104建立起状态, 该状态控制所述数据的处理。虽然在一个实施方式中,网络元件104建立的 状态是通信转发表,但在可替换的实施方式中,建立的状态具有相同的和/ 或不同的信息(配置数据、使用会话信息、防火墙信息、接入控制列表、服 务质量信息、统计数据等)。所述状态通常是运行时信息,该运行时间信息 在网络元件104重启后不再存在。网络元件周期性地接收对该网络元件的服务的软件升级。典型地,软件 升级需要网络元件的重启,从而软件升级能够生效。然而重启使服务中断并 且清除所建立的状态,因为该状态在重启后不再存在。即使网络元件的重启 能够迅速地发生,所述状态的重建通常需要更长时间。所述状态的重建包括 重新连接用户,重新建立转发表,用户会话信息等。
当网络元件有一个或者多个冗余控制器时,使用改进的软件升级方法,该方法被称为无间断(hitless)升级。例如,像网络元件104这样的具有两 个或者多个控制器卡的网络元件能够利用无间断升级。无间断升级包括首先 安装和初始化备份控制器或者备用控制器的新软件映像,将网络元件状态同 步到备份控制器,将控制切换所述备份控制器,然后向其它网络元件部件驱 动软件升级和状态恢复。在该算法中,备份控制器变成了网络元件的活动控 制器,以前的活动控制器变成了备份控制器。图2是包括有冗余控制器卡的网络元件200的框图。在图2中,底板206 与线卡202A-N和控制器卡204A-B相连接。虽然在一个实施方式中,控制 器卡204A-B通过线卡202A-N控制通信处理过程,但在可替换的实施方式 中,控制器卡204A-B执行同样的和/或不同的功能(升级软件、处理操作请 求、收集统计数据等)。线卡202A-N根据从控制器卡204A-B接收到的策略 来处理和转发通信。图3是活动控制卡向备份控制卡传递活动状态信息的框图。虽然在一个 实施方式中,活动状态信息是如参考图1中所述的被网络元件104使用的状 态,但在可替换的实施方式中,活动状态信息是被用来操作网络元件104的 相同的和/或不同的信息。在图3中,活动控制卡302A向备份控制卡302B 发送活动状态信息304。所述无间断升级算法使用活动状态信息来执行不中 断通信处理的网络元件升级。所述无间断升级的缺点是升级需要以期望的格式说明旧的映像和新的 映像之间的不同,以及说明所述状态的语义内容。所述无间断升级算法要求 所述新的软件映像包括精确格式的显性知识(explicit knowledge)和与运行 所述旧的映像的控制器同步的状态数据的内容,或者要求数据以例如标签-长度-内容(TLV)这样的版本无关(version-independent)的格式传输
发明内容
描述了一种用于网络元件的元数据驱动更新的方法和设备。网络元件包 括活动控制器卡和备份控制器卡,并且接收将被安装在所述网络元件上的新 软件。另外,所述网络元件将所述软件安装在备份控制器卡上并且同步该备 份控制器卡上的网络元件的活动状态。此外,所述网络元件使用一套与所述 新软件相关的元数据将所述活动状态转换成与所述新软件相关的新的活动 状态。


参考下面的描述和说明这些实施方式的附图,可以最好的理解本发明的 实施方式。这里所包括的附图的编号安排是这样的,附图中所给出的元件的 首位数字与该附图编号相关联。然而,不同附图中相同元件的元件编号相同。 在附图中-图1 (现有技术)显示了网络元件通过网络来处理终端站和内容服务器之间通信的一个实施方式;图2 (现有技术)是具有有冗余控制器卡的网络元件的框图; 图3 (现有技术)是活动控制卡向备份控制卡传送活动状态信息的框图; 图4是根据本系统的一个实施方式的显示点探测和处理系统的框图; 图5是根据本系统的一个实施方式的使用元数据状态转换来执行在服务升级的示例性流程图;图6是根据本系统的一个实施方式的创建元数据的示例性流程图; 图7是根据本系统的一个实施方式的显示控制卡的框图。
具体实施例方式
节,如网络元件、元数据、数据定义语言、活动状态信息、信息包、处理器 卡、线卡、控制器卡、和系统元件的相互关系。然而,本领域的熟练技术人 员会理解,不需要这些特定细节本发明也可以被实施。在其它实例中,为了 不使本发明模糊难懂,没有详细显示控制结构、门级电路和全部的软件指令 序列。根据所包括的描述,这些本领域的普通技术人员将能够在不存在不当 过度实验的情况下实现适当的功能。在说明书中对"一个实施方式"、"实施方式"、"示例性实施方式"等的 参考,表示所述实施方式可以包括特定的特征、结构、或者特性,但是每个 实施方式没有必要一定包括所述特定的特征、结构、或者特性。而且,这样 的词语并非必须指同一个实施方式。更进一步地,当特定的特征、结构、或 者特性和实施方式关联起来描述时,认为不论是否做出清楚的描述,在本领 域技术人员的知识范围内能够将这些特征、结构、或者特性与其它实施方式 联系起来。在下面的描述和权利要求中,使用了术语"连接"和它的派生词。"连 接"可以表示两个或者多个元件直接物理接触或者电接触,然而,"连接" 还可以表示两个或者多个元件不是直接相互接触,但是仍然相互合作或者相互影响。现在参考图4-7对本发明的示例性实施方式进行描述。更具体地, 将参考图4和图7的示例性实施方式对图5和图6中的流程图的操作进行描 述。然而,应该理解,除了参考图4和图7所描述的实施方式外,本发明的 其它实施方式也可以执行这些流程图的操作,并且参考图4和图7所描述的 实施方式可以执行与参考这些流程图所讨论的这些操作不同的操作。描述了使用元数据来升级网络元件的方法和设备。根据本发明的实施方 式,所述网络元件使用了元数据,该元数据描述了由网络元件所维持的活动 状态的域和结构。所述活动状态是由处于通信状态的网络元件所维持的信 息,所述信息已经或者将要被网络元件处理。此外,所述活动状态是在网络
元件重启后不再存在的信息。所述网络元件使用元数据将当前活动状态转换 为支持与升级相关的新软件的活动状态。图4是显示根据本系统的一个实施方式的网络元件软件升级系统的框 图。虽然在一个实施方式中,所述软件是新的或者升级的网络元件操作系统。 但在可替换的实施方式中,所述软件是一个或者多个新的和/或升级的网络元 件所使用的服务。在图4中,活动控制卡418A向备份控制卡418B发送活 动状态信息416。在一个实施方式中,活动控制卡418A和备份控制卡418B 运行不同版本的软件。虽然在一个实施方式中,运行在备份控制卡418B上 的软件是运行在活动控制卡418A上的软件的升级版,但在可替换的实施方 式中,运行在控制卡418A-B上的软件版本可以是相同的和/或不同的软件。 如图1中所述,活动状态信息416可以包括在运行时建立的动态状态。在一 个实施方式中,活动状态信息是如上所述建立的状态。备份控制卡418B包 括转换模块420,该转换模块420将来自运行在活动控制卡418A上的软件 映像的活动状态信息416转换成用于运行在备份控制卡418B上的升级的软 件映像的格式。在一个实施方式中,转换模块420使用元数据404来进行活 动状态信息416的转换,在可替换的实施方式中,转换模块使用相同的和/ 或不同的信息来进行活动状态的转换。另外,在图4中,元数据404从数据定义语言(DDL)数据402中产生。 虽然在一个实施方式中,元数据404以可扩展标记语言(XML)来定义,但 是在可替换的实施方式中,元数据404以可替换的格式中(纯文本、专用格 式等)来定义。此外,在一个实施方式中,元数据404是可扩展的和不依赖 于版本的。在一个实施方式中,元数据404描述了活动状态信息416的结构 和域。在该实施方式中,元数据404描述了每个活动状态信息416数据结构 的构成域,包括该数据结构中的名称、类别、大小、和偏移量。在一个实施 方式中,元数据404支持例如字符串、整数、实数、布尔值这样的数据类型,
在可替换的实施方式中,元数据404支持相同的和/或其它的数据类型(枚举、 常数、位掩码、类型定义等)。此外,可以使用所述数据类型在元数据404 中定义数据结构。虽然在一个实施方式中,所述DDL类似于编程语言C的数据定义,带 有用于定义对数据变换和转换有用的信息的附加域和特征,但在可替换的实 施方式中,所述DDL可以是支持定义数据类型和结构的其它语言(其它编 程语言、XML、纯文本等)。在一个实施方式中,DDL数据402数据,该数据包括描述了DDL格式 的活动状态信息416的结构和域。在一个实施方式中,DDL数据被处理成 源码头文件406。虽然在一个实施方式中,源码头文件406是C语言头文件, 但在可替换的实施方式中,源码头文件406可以在不同的语言头文件中 (C++、 Pascal等)。在一个实施方式中,编译器410把源码408和源码头文 件406编译到网络元件操作系统412中。虽然在一个实施方式中,软件412 是操作网络元件的网络元件操作系统,包括控制网络元件的通信转发、处理、 制作等功能的软件,但在另一个实施方式中,软件412是一个或者多个被网 络元件使用的服务。如上所述,把软件412发送到备份控制卡418B来更新 所述网络元件。图5是根据本系统的一个实施方式使用元数据状态转换来执行在服务升 级的方法500的示例性流程图。在图5中,在方框502中,方法500接收新 软件映像。在一个实施方式中,所述网络元件接收所述新软件映像。在方框504中,方法500在活动控制器卡上安装软件。在方框506中, 方法500在备份控制器卡上安装软件。在方框508中,方法500接收来自于所述活动控制器卡的新软件元数据。 在一个实施方式中,如上面参考图4所描述的,所述接收的元数据是与新软 件相关的活动状态信息416的结构和域,并且产生于DDL数据402。
在方框510中,方法500将备份控制器活动状态信息同步到活动控制器 活动状态信息。在一个实施方式中,如上面参考图4所述的,方法500把来 自于活动控制器卡418A的活动状态信息416发送到备份控制器卡418B。在方框512中,方法500使用所述元数据自动地把与旧软件映像相关的 活动状态转换成与新软件映像相关的新活动状态。在一个实施方式中,方法 500将与旧软件相关的元数据和接收到的元数据进行比较,以形成两套元数 据之间的差别。利用这些差别,方法500识别兼容于自动转换的域变化。方 法500从当前活动状态向所述新活动状态传播己知域。通过图例举例说明, 方法500通过将无符号整数域偏移合适数量的字节来存储新的字符串域,将 包括一个无符号整数域的旧的活动状态数据结构A转换成包括十六位字符 串域和相同的无符号整数域的新的活动状态数据结构A。方法500使用通用 的元数据驱动转换程序,通过增加、删除、或重新安排数据结构中的域来处 理新的元数据的数据结构中的域。另外,方法500可以给域分配默认值、增 加域的大小、改变枚举定义、将域划分成子域等。这些减少了特定转换程序 的数量,例如下面方框514中使用的类型。在方框514中,方法500随意地手动转换在方框512中没有自动转换的 旧的活动状态信息的部分。在一个实施方式中,方法500使用旧的元数据作 输入来确定和执行任何所需的附加步骤以将旧的数据结构转换成新的数据 结构。在方框516中,方法500在转换过程中对变化的活动状态的检査点进行 同步。在一个实施方式中,方法500通过检查点机制来监控转换过程。在该 实施方式中,当所述数据被成功转换后,转换数据的方法500的每个部分会 进行报告。在一个实施方式中,方法500等待,直到每个部分报告所述数据 被成功传递和转换。在方框518中,方法500将所述网络元件的控制从活动控制卡切换到备
份控制卡。在该实施方式中,所述备份控制卡变成活动卡而以前的活动控制卡变成备份。在该实施方式中,方法500重启以前的活动控制卡,从而使以 前的活动控制卡运行新的软件映像。另外,方法500对新的活动控制卡和新 的备份控制卡之间的状态进行同步。通过图例举例说明,方法500把控制从 控制器卡418A切换到控制器卡418B (如参考图4进行的描述)。方法500 重启控制器卡418A从而使控制器卡418A运行新的映像。而且,方法500 将控制器卡418B中的活动状态同步到控制器卡418A。在方框520中,方法500升级线卡。在一个实施方式中,方法500使用 新的软件映像来更新在每个线卡上的信息包处理器。方法500重新设定信息 包处理器从而使信息包处理器使用与该信息包处理器相关的新软件。图6是根据本系统的一个实施方式的用于创建元数据的方法600的示例 性流程图。图6中,在方框602中,方法600以DDL来定义活动状态数据。 在一个实施方式中,方法600定义如在上面图4中在方框402所描述的活动 状态。在方框604中,方法600从所定义的状态数据创建元数据。在一个实 施方式中,如参考图4进一步所述的,方法600通过解析以DDL所定义的 状态来创建元数据。在方框606中,方法600为所定义的状态数据创建头文件。在一个实施 方式中,方法600创建如图4中所述的头文件。在方框608中,方法600根 据头文件和软件代码来编译新软件。在一个实施方式中,如参考图4所述的, 方法600根据头文件和软件代码来编译新软件。图7是根据本发明的一个实施方式的显示控制器卡702的框图。在图7 中,控制器卡702包括控制模块704、升级模块706、状态接收模块708、状 态转换模块710、同步状态模块712、同步检査点模块714、新软件模块716、 和线卡升级模块718。虽然在一个实施方式中,控制器卡702是控制器卡 418A-B,但在可替换的实施方式中,控制器卡是控制器卡418A-B中的一者。
控制模块704执行对控制器卡702的控制。升级模块706控制控制器卡702 的网络元件软件升级过程。如图5的方框510中所述,状态元数据接收模块 708接收新的元数据。如图的方框512中所述,状态转换模块710转换所接 收的活动状态来支持所述新软件。在一个实施方式中,状态转换模块710是 转换模块420。如图5的方框510中所述,同步状态模块712同步活动控制 器卡和备份控制器卡之间的活动信息。如图5的方框516中所述,同步检査 点模块714在活动状态转换过程中同步检查点。如图5的方框504和506中 所述,新软件模块716为控制器卡接收和存储新软件。如图5的方框520中 所述,线卡升级模块718升级线卡。所述元数据驱动升级的执行是一个示例,而不作为限制。因而,具有其 它体系结构配置的网络元件可以整合本发明的实施方式。可以整合本发明的 实施方式的其它网络元件的实施例可以具有多个控制器卡或者具有单独一 个整合元数据驱动在服务升级的功能的控制器卡。此外,分布于通信卡上的 具有启发式和/或DPI点探测功能的网络元件可以整合本发明的实施方式。包括在不同网络元件中的控制器卡204A-B和线卡202A-N包含有存储 器、处理器和/或特定用途集成电路(ASIC)。所述存储器包括机器可读媒介, 在所述机器可读媒介上存储了一套具有这里所述的一个或者全部方法的指 令(例如软件)。软件可以完全地或者至少部分地位于所述存储器和/或所述 处理器和/或ASIC内。出于本说明的目的,术语"机器可读媒介"应该指包 括提供(例如,存储和/或发送)机器(例如计算机)可读的形式的信息的任 何装置。例如,机器可读媒介包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒介;光存储媒介;闪存装置;电、光、声或者其它形 式的传播信号(例如载波、红外信号、数字信号等);等等。可替换实施方式
例如,虽然附图中的流程图显示了本发明的某些实施方式执行的操作的 特定顺序,但应该理解所述顺序是示例性的(例如,可替换的实施方式可以 以不同的顺序执行操作、合并某些操作、重复某些操作等)。虽然根据一些实施方式描述了本发明,但本领域的技术人员可以认识到 本发明并不局限于所述的实施方式,并且可以在所附的权利要求的精神和范 围内进行修改和变换来实行。因而,所述描述被认为是举例说明性的而非限 制性的。
权利要求
1. 一种计算机化的方法,该方法包括接收用来安装在具有活动控制器卡和备份控制器卡的网络元件上的新软件,其中所述新软件包括新的一套元数据;将所述新软件安装在所述备份控制卡上;同步所述备份控制器卡上的网络元件的活动状态,其中所述活动状态与运行在所述网络元件上的当前软件相关;以及使用所述新的一套元数据将所述活动状态转换成与所述新软件相关的新的活动状态。
2. 根据权利要求1所述的计算机化的方法,其中所述新的一套元数据 表示与所述新软件相关的所述新的活动状态的结构和域。
3. 根据权利要求1所述的计算机化的方法,其中所述新软件是网络元 件操作系统和运行在所述网络元件上的服务中的一者。
4. 根据权利要求1所述的计算机化的方法,其中所述转换进一步使用 与运行在所述活动控制卡上的旧的一套软件相关的旧的一套元数据。
5. 根据权利要求1所述的计算机化的方法,该方法进一步包括-将控制从所述活动控制器卡切换到所述备份控制器卡,其中所述备份控制器卡运行所述新软件;以及在所述活动控制器卡上运行所述新软件。
6. 根据权利要求1所述的计算机化的方法,其中所述新的一套元数据 表示所述新的活动状态的结构和域。
7.根据权利要求1所述的计算机化的方法,其中所述转换支持向活动 状态数据结构添加域、删除域、修改域、重排域、指定默认值、和改变枚举 定义中的一者或者多者。
全文摘要
描述了一种用于网络元件的元数据驱动升级的方法和设备。网络元件包括活动控制器卡和备份控制器卡,并且接收用来安装在所述网络元件上的新软件。另外,所述网络元件将所述软件安装在备份控制器卡上,并且同步所述备份控制器上的网络元件的活动状态。更进一步,所述网络元件使用一套与所述新软件相关的元数据将所述活动状态转换成与新软件相关的新的活动状态。
文档编号H04L12/24GK101399701SQ20081008778
公开日2009年4月1日 申请日期2008年3月31日 优先权日2007年9月27日
发明者C·S·道特, S·R·莫尔多克, T·J·林奇 申请人:力博通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1