CN101719920A - 路由协议软件中基于构件的组件生成方法 - Google Patents

路由协议软件中基于构件的组件生成方法 Download PDF

Info

Publication number
CN101719920A
CN101719920A CN200910250488A CN200910250488A CN101719920A CN 101719920 A CN101719920 A CN 101719920A CN 200910250488 A CN200910250488 A CN 200910250488A CN 200910250488 A CN200910250488 A CN 200910250488A CN 101719920 A CN101719920 A CN 101719920A
Authority
CN
China
Prior art keywords
routing
component
routing protocol
assembly
route
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910250488A
Other languages
English (en)
Other versions
CN101719920B (zh
Inventor
徐恪
马东超
贾鸳鸳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN2009102504882A priority Critical patent/CN101719920B/zh
Publication of CN101719920A publication Critical patent/CN101719920A/zh
Application granted granted Critical
Publication of CN101719920B publication Critical patent/CN101719920B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

路由协议软件中基于构件的组件生成方法,属于可重构网络技术的领域,其特征在于,是一种路由转发组件的生成方法,含有以下的步骤:根据所生成组件的功能从构件库中选择路由协议构件,路由管理构件,以及数据转发构件;确定所述三个构件之间的交互次序及方式,以及根据路由器的实际需要整合各个构件。本发明具有软件耦合程度低,集成性好,代码重用度高的优点。

Description

路由协议软件中基于构件的组件生成方法
技术领域
路由协议软件的基于构件交互的组件生成方法,属于可重构网络研究领域。
背景技术
面向服务提供的新型网络技术体系是未来互联网发展的可行思路,实现面向服务提供的新型网络技术体系的关键是研究开放式可重构路由交换节点的技术。可重构路由交换开发环境的体系结构如图2所示。
组件是路由交换系统中的一个逻辑模块,它由一个或多个构件组成。路由交换组件架构是对系统层次结构设计的刻画,包括组件层次组织与控制结构,构件间消息通信、行为同步和数据访问的协议。设计构件单元间的功能分配,逻辑分布,设计构件单元集成,设计构件功能、性能可扩展等.
基于构件相互关系的组件生成框架。不仅能适用于组件生成阶段,还能通过构件更换、构件升级实时对组件进行功能重整及优化。在具体实现中,如何依据层次、顺序关系链接各构件以及如何确定并提供组件内构件间的交互方式也是要解决的关键问题。
基于构件的组件组装,如图1所示,首先要明确组件在路由交换平台中的位置、层次关系、总体功能需求及其行为刻画。以此为基本思想,从构件库选取构件;需要说明的是,组件划分及功能的确定反过来影响着底层构件的开发。构件摘选的同时,构件实体之间的关系也得到认定。接着,组件具体的内部交互方式及外部的行为特征也需进行详细的分析并确定。最后,基于软总线进行构件组装。后续运行过程中,可重构路由交换平台提供动态的构件替换和升级,以及构件插入和摘除.
基于构件的组件装载过程中,默认情况下不指定链接顺序,按链接次序自动产生构件链接顺序。当然,也可直接指定链接顺序将构件在组件架构中任意位置装载。在组件装载完成后,仍然以链接顺序标识为依据,通过新构件插入和无用构件的拆卸达到组件功能可实时更换。
本文提出基于构件的组件生成方法是应用于路由器软件的,主要是为了解决路由器的软件可剪裁与可重用的问题。由于当前的路由器厂家的路由器产品都是分系列的,高端路由器使用的是高成本的高端硬件,性能好,处理能力强;低端路由器反之。这样就使得高端路由器能够有能力运行功能完善但复杂度稍高的软件版本,但低端路由器就只能运行功能相对较少同时复杂度低的软件。但是,路由器开发者针对不同的路由器硬件平台重新开发不同的路由器软件会耗费大量的人力物力。因此迫切的需要有一种方法能够使得软件的耦合度低,剪裁性好,代码的重用度高。因此,本专利提出的基于构件组成组件的方法就可以达到本目的。下文的发明内容部分就是本方法的详细描述,最后的实施例部分就是一个高端路由器和低端路由器使用本方法低成本的获得了适合各自的软件版本的例子。
发明内容
专利的目的在于:
提出基于构件的组件生成方法,主要是为了解决路由器软件可剪裁与可重用的问题,减少大量重复代码的编写工作。
专利的特征在于:
1.路由协议软件中基于构件的组件生成方法,其特征在于,所述方法是一种路由转发组件生成方法,是在vxworks平台为可重构路由交换平台中依照以下步骤实现的:
步骤(1),根据所述路由转发组件的功能,从构件库中筛选出下述三种构件:路由协议构件,路由管理构件,以及路由转发构件,其中:路由协议构件,产生按照IETF的路由协议来与其他路由器交互路由的信息;路由管理构件,输入由所述路由协议构件输出的路由交互信息,予以保存,并根据所述的按照IETF的路由协议提供的包括优先级在内的参数选择最优路由送入到所述数据转发构件;数据转发构件,把所述路由管理构件发送来的最优路由保存到内设的转发表中,并根据此转发表转发报文;
步骤(2),确定步骤(1)中所述三个构件之间交互的信息为路由表项,该路由表项的消息结构含有各为4个字节的路由的目的地址,掩码,下一跳,以及出接口;
步骤(3),确定构件交互方式为;
第一步,所述路由协议构件按IETF学习路由信息,
第二步,通过socket消息传送方式把所述学习到的路由信息传递给所述路由管理构件,
第三步,所述路由管理构件依所保存的路由信息中的各个路由表项,转发到所述数据转发构件;
步骤(4),对所述路由表项产生的代码部分进行调整,其中包括:文件的整合,代码的编译,编译错误的修改,以及工程文件makefile的修改,最后产生所述的路由转发组件。
2.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为高端路由器时,所述路由协议构件采用OSPF和BGP两个构件。
3.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为低端路由器时,所述路由协议构件采用OSPF构件。
4.根据权利有求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为高端路由器时,所述数据转发构件由硬件完成。
5.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为低端路由器时,所述数据转发构件为IP转发构件专利的优点在于:
此专利中方法在由构件生成组件的过程中,具有耦合程度低,集成性好,代码重用度高的优点。开发组件的周期比较短。
附图说明
图1.基于构件的组件生成过程;
图2.可重构路由交换开发环境体系结构;
图3.组件组装特性;
图4.路由表项的数据结构
图5.高端路由器实例中的路由转发组件
图6.低端路由器实例中的路由转发组件
具体实施方式
基于构件交互的组件生成方法,在可重构路由器软件开发环境下,依据以下步骤实现(具体操作步骤参考图1):
步骤(1):组件的描述;
基于构件的组件生成,需要对组件的环境,组件的功能,组件的接口进行描述。
步骤(1.1):组件环境的描述;
此处环境指组件所处的大的软件环境。描述出组件具体对应于软件的哪个位置,需要在所处的软件环境中发挥怎样的作用。
路由软件中重要的组件就是路由转发组件。
本专利提出的路由转发组件处在网络层和应用层,基于操作系统平台为vxworks平台,完成了基本的学习路由并转发数据的功能。
步骤(1.2):组件功能的描述;
组件的功能描述为描述组件中所需要包含的功能。功能描述需要细分到构件级别,为选择构件提供基础。
本文提出的路由转发组件的功能包括:
◆按照IETF的相关路由协议与其他路由器交互路由信息,将产生的路由信息传递给路由管理构件。
◆路由管理构件将路由协议构件学得的路由保存下来,并根据众多路由协议构件的优先级等参数来选择最优路由发送给数据转发构件。
◆数据转发构件将路由管理构件发来的路由保存到转发表中,并以此转发数据报文。
步骤(1.3.):组件中的构件之间的接口的描述;
组件中的构件接口描述需要描述所构造的组件内部所包含的构件间的接口。以便构件灵活组成组件,实现构件的可替换与可重构。
路由转发组件所完成的功能为基本的路由功能。它包含三个构件,分别为路由协议构件,路由管理构件和数据转发构件。这三个构件之间交互的信息为路由表项。采用的数据传递方式为消息传递方式(socket方式传递消息)。具体的路由表项的消息结构中包涵四个字段,分别为:
路由的目的地址(4字节)
掩码(4字节)
下一跳(4字节)
出接口(4字节)
具体路由表项的消息结构参考图5
步骤(2):筛选,组织构件;
在完成对组件的描述后,需要从构建库中选择合适的构件,组织,整合,形成完成需求的组件。在这一步中,包括选择构件,构件交互的描述,组织构件,整合构件
步骤(2.1):选择构件;
在对组件的描述后,需要根据组件的功能从构件库中选择能够完成组件功能的构件,这里需要对构件的接口进行检查,以确定是否合适。这一步的期望为:从构建库中选择出可以完成组件功能的最合适的构件。
针对路由转发组件的构件选择,方法如下:
◆由于路由转发组件需要用到路由表项,所以选择可以学到路由表项的构件(构件1:路由协议构件)。
◆由于路由转发组件需要对路由信息进行筛选和维护,所以选择路由管理构件(构件2:路由管理构件)。
◆由于路由转发组件需要针对收到的数据报文的目的地址查找路由表并且按照匹配到的表项转发该数据报文,所以选择IP转发构件(构件3)。
步骤(2.2):确定构件交互方式;
此步骤需要描述各构件关系,及明确构件间的交互方式:
1)明确各构件间的交互方式:是函数调用还是消息传递
2)如果是消息传递方式,需要确定构件间传递的信息的格式;如果是函数调用方式,需要确定函数的参数类型和参数个数,以及参数的具体涵义。
3)指明构件间传递信息的时机或函数调用的时机。
针对路由转发组件,具体如下:
一方面,在路由转发组件中,首先由学习路由表项的构件(构件1)学习到路由信息,然后通过消息传递给路由管理构件,路由管理构件存储该路由信息后,立刻用同样格式的消息传递给IP转发构件。IP转发构件接受到消息后将其中的路由表项存储下来,作为今后的转发时使用。
步骤(2.3):组织构件;
针对已选择出的构件,根据组件需要完成的功能与构件交互的描述,组织构件。构件在组织的过程中,需要满足如下特性:
1)构件可增删:两个构件中可以增加一个构件
2)构件可跳跃:可以绕过一个已有构件,直接连接它的前后两个构件
3)构件可并行:可用另一个构件替代一个现存构件,并完成同样的功能
4)构件可逆转:可在构件原有路径上逆转数据传递的方向
具体图解如图3.
针对路由转发组件为例进行说明:
1)由路由协议构件学到了具有目的地址,掩码,下一跳,出接口的路由表项,通过消息的方式传递给路由管理构件
2)路由管理构件将路由保存下来并通过消息形式传递给IP转发构件。
3)路由转发构件将路由保存下来并以此转发。
在步骤1可以跳过步骤2直接连接步骤3,体现了构件的可跳跃特性,即路由信息从路由协议学得以后,直接发给路由转发构件而不经过路由管理构件。此处可以将路由管理构件直接从组件中摘除不用。
步骤(2.4):整合构件;
对已进行选定的构件进行整合,真正形成组件。
针对路由转发组件:
对已选出的路由协议构件,路由管理构件和IP转发构件进行组织。指定数据的传递方向为从路由协议构件到路由管理构件,再由路由管理构件至IP转发构件,最终按照匹配到的路由表项来转发报文。由于路由协议构件的出接口与路由管理构件的入接口,路由管理构件的出接口与IP转发构件的入接口是匹配的。所以并不需要编写中间结构来重新组织构件的输入输出数据。编写入口函数,并定义用到的数据结构。编写makefile文件,编译生成组件程序。
步骤(3):组件测试;
在形成组件后,需要提供对组件的测试功能。
步骤(3.1):构件间传递数据与接收数据测试;
在整合构件后,对组件进行模拟的运行,即对整合的各个构件间进行的数据传递与接收进行测试,保证数据有被正确的传递与接收以及在正确接收到数据后,对数据的处理与最终产生的结果数据符合预期。
针对路由转发组件,具体如下:
构件1是否成功学得路由,并是否通过套接字链接方式将正确的路由信息传递给了构件2。构件2是否正确接收到了由构件1传递过来的数据,经过筛选和维护后,是否将正确的数据传递给了构件3。构件3是否正确接收到了由构件2传递过来的信息,并是否根据要求向匹配到的表项转发报文
步骤(3.2):组件功能测试;
对于整合起来的构件构成组件后,对本组件应有的功能进行测试。保证组件的功能符合对组件功能的描述。
针对路由转发组件,具体的组件功能测试为:测试在IP转发构件的出口端,是否根据构件1学得的路由信息,正确的转发了报文
步骤(3.3):组件性能测试;
对于能够正确完成功能的组件,需要对组件的运行时间,占用内存,处理器等情况进行测试。如果测试结果符合预期,则通过。
针对路由转发组件,可以进行压力测试:在向构件1压入100000条路由信息的时候,查看在路由转发组件出口,即构件3的出口处,是否能向正确的地址转发报文,是否存在丢包情况及组件的运行时间是否在可接受范围内。
传统的路由器软件开发在适应新需求的时候,都要进行大量的重复代码编写的工作。而且对于现有的代码的重用方面,做的并不十分理想。采用由构件交互的方法生成组件,可以一定程度上提高代码重用度及提高效率。
具体由构件交互生成组件的过程可以概括为:组件层次及功能确定,组件工作流程的确定;构件的筛选与组织,整合;组件功能测试;及形成文档。具体化后的可总结为步骤1,2,3,4.在按照步骤执行的过程中,需要在确定构件关系,及明确构件交互方式上重点设计。这决定了最终生成组件的成败与否。
在严格按步骤1,2,3,4执行后,就可以得到一个组件。

Claims (5)

1.路由协议软件中基于构件的组件生成方法,其特征在于,所述方法是一种路由转发组件生成方法,是在vxworks平台为可重构路由交换平台中依照以下步骤实现的:
步骤(1),根据所述路由转发组件的功能,从构件库中筛选出下述三种构件:路由协议构件,路由管理构件,以及路由转发构件,其中:
路由协议构件,产生按照IETF的路由协议来与其他路由器交互路由的信息,
路由管理构件,输入由所述路由协议构件输出的路由交互信息,予以保存,并根据所述的按照IETF的路由协议提供的包括优先级在内的参数选择最优路由送入到所述数据转发构件,
数据转发构件,把所述路由管理构件发送来的最优路由保存到内设的转发表中,并根据此转发表转发报文;
步骤(2),确定步骤(1)中所述三个构件之间交互的信息为路由表项,该路由表项的消息结构含有各为4个字节的路由的目的地址,掩码,下一跳,以及出接口;
步骤(3),确定构件交互方式为;
第一步,所述路由协议按IETF构件学习路由信息,
第二步,通过socket消息传送方式把所述学习到的路由信息传递给所述路由管理构件,
第三步,所述路由管理构件依所保存的路由信息中的各个路由表项,转发到所述数据转发构件;
步骤(4),对所述路由表项产生的代码部分进行调整,其中包括:文件的整合,代码的编译,编译错误的修改,以及工程文件makefile的修改,最后产生所述的路由转发组件。
2.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为高端路由器时,所述路由协议构件采用OSPF和BGP两个构件。
3.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为低端路由器时,所述路由协议构件采用OSPF构件。
4.根据权利有求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为高端路由器时,所述数据转发构件由硬件完成。
5.根据权利要求1所述的路由协议软件中基于构件的组件生成方法,其特征在于,当所述路由器为低端路由器时,所述数据转发构件为IP转发构件。
CN2009102504882A 2009-12-10 2009-12-10 路由协议软件中基于构件的组件生成方法 Expired - Fee Related CN101719920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102504882A CN101719920B (zh) 2009-12-10 2009-12-10 路由协议软件中基于构件的组件生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102504882A CN101719920B (zh) 2009-12-10 2009-12-10 路由协议软件中基于构件的组件生成方法

Publications (2)

Publication Number Publication Date
CN101719920A true CN101719920A (zh) 2010-06-02
CN101719920B CN101719920B (zh) 2012-06-27

Family

ID=42434435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102504882A Expired - Fee Related CN101719920B (zh) 2009-12-10 2009-12-10 路由协议软件中基于构件的组件生成方法

Country Status (1)

Country Link
CN (1) CN101719920B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950269A (zh) * 2010-08-30 2011-01-19 清华大学 针对软件构件的自动化测试方法
CN103138987A (zh) * 2013-02-04 2013-06-05 迈普通信技术股份有限公司 一种路由管理的方法及装置
CN104539506A (zh) * 2015-01-27 2015-04-22 浪潮集团有限公司 一种网络传输服务构件及网络传输系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785843B1 (en) * 2001-02-23 2004-08-31 Mcrae Andrew Data plane restart without state change in a control plane of an intermediate network node
CN1130628C (zh) * 2001-10-12 2003-12-10 北京大学 构件化软件的在线演化方法
CN101135971A (zh) * 2006-09-01 2008-03-05 环达电脑(上海)有限公司 基于个人计算机硬件设备的接入路由器安装配置方法
CN100493042C (zh) * 2006-10-20 2009-05-27 清华大学 可扩展路由器系统控制平面中高性能的节点间通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101950269A (zh) * 2010-08-30 2011-01-19 清华大学 针对软件构件的自动化测试方法
CN101950269B (zh) * 2010-08-30 2012-09-05 清华大学 针对软件构件的自动化测试方法
CN103138987A (zh) * 2013-02-04 2013-06-05 迈普通信技术股份有限公司 一种路由管理的方法及装置
CN104539506A (zh) * 2015-01-27 2015-04-22 浪潮集团有限公司 一种网络传输服务构件及网络传输系统

Also Published As

Publication number Publication date
CN101719920B (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
Henzinger et al. The embedded systems design challenge
CN104012063A (zh) 用于软件定义网络中的灵活和可扩展流处理的控制器
CN104156313A (zh) 一种Web服务测试用例自动生成方法
Crnkovic et al. On the use of component-based principles and practices for architecting cyber-physical systems
Wang et al. A hierarchical reliability model of service-based software system
CN101309178B (zh) 一种自动交换光网络系统日志信息的解析方法及装置
Mangharam et al. Distributed control for cyber-physical systems
CN112565336A (zh) 智能物联网集中化控制方法、系统、介质、设备及应用
CN100414888C (zh) 不中断业务对处理系统的程序版本进行升级的方法
Pajic et al. Robust architectures for embedded wireless network control and actuation
CN101719921A (zh) 可重构路由器软件开发中的路由协议构件的生成方法
CN101719920B (zh) 路由协议软件中基于构件的组件生成方法
CN112330519A (zh) 一种数据处理的方法和装置
Gui et al. Transformer: an adaptation framework supporting contextual adaptation behavior composition
Bureš Generating Connectors for Homogenous and Heterogenous deployment
Walkerdine et al. A faceted approach to service specification
Belotti et al. Multicommodity network design with discrete node costs
Salehi et al. A model driven approach for AMF configuration generation
Arbab et al. Synthesis of connectors from scenario-based interaction specifications
Roman et al. Multifaceted distributed systems specification using processes and event synchronization
Kokash et al. A semantic model for service composition with coordination time delays
Kreitz Automated fast-track reconfiguration of group communication systems
Broodney et al. Leveraging Domain Expertise 1in Architectural Exploration
CN109862105B (zh) 一种多域环境中基于bpel的按需动态高性能服务组合方法
Murillo et al. Semi-automated Hw/Sw Co-design for embedded systems: from MARTE models to SystemC simulators

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120627

Termination date: 20181210