基于分布式设备的调试系统和方法与流程

文档序号:23175003发布日期:2020-12-04 14:05阅读:141来源:国知局
基于分布式设备的调试系统和方法与流程

本申请涉及计算机通信技术领域,尤其涉及一种基于分布式设备的调试系统和方法。



背景技术:

在通信、计算机和存储等众多领域中,大型设备都采用分布式架构,以此来提高整套设备的业务能力,如图1a中所示,为设备的一种典型分布式架构。在该分布式架构中,有两种不同功能的板,分别是控制板和线卡板(也称业务板)。其中,控制板有两张,分别是主控板(mainboard)和备用控制板(backupboard),用于对设备进行控制和管理;而线卡板(lineboard)的数量较多,主要用于业务处理。

对于采用分布式架构的设备,也称分布式设备,所有的管理均需要通过主控板来完成,主控板中的管理模块需要和线卡板中具体的业务模块进行交互,如图1b中虚线部分所示。但是主控板中的管理模块无法直接和线卡板中的业务模块进行通信,需要借助其他的功能模块,如图1b中的实线箭头的部分所示,即需要通过主控板中的卡间通信模块、线卡板中卡间通信模块和管理模块才能与线卡板中的业务模块进行交互。这样,当基于该分布式设备对第三方的软件开发包(sdk)的功能进行调试时,需要将sdk添加到分布式设备中才能够进行功能的开发和调试,而搭建的调试环境如图1c所示。在调试过程中需要添加驱动模块,其功能是能够调用sdk中对应的api接口完成相应的功能,同时还需要修改主控板和线卡板中的管理模块,才能通过主控板对第三方sdk提供的功能进行调试,即,在搭建图1c所示的调试环境时所涉及修改的模块较多,调试复杂度较高。

因此,如何在基于分布式设备进行sdk等功能调试时,尽可能少修改分布式设备中的模块,降低调试复杂度是值得考虑的技术问题之一。



技术实现要素:

有鉴于此,本申请提供一种基于分布式设备的调试系统和方法,用以在基于分布式设备进行sdk等功能调试时,尽可能少修改分布式设备中的模块,降低调试复杂度。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种基于分布式设备的调试系统,包括:分布式设备和调试协助设备,所述分布式设备包括主控板和线卡板,所述主控板包括通信模块和卡间通信模块,所述线卡板包括卡间通信模块和业务模块,所述业务模块包括待调试功能模块,其中:

所述调试协助设备,用于向所述主控板的通信模块发送调试控制信息;

所述分布式设备的主控板,用于通过所述通信模块接收所述调试控制信息,并通过其内的卡间通信模块将所述调试控制信息发送给所述线卡板中的卡间通信模块;

所述分布式设备的线卡板,用于通过其内的卡间通信模块接收所述调试控制信息,并将所述调试控制信息发送给所述业务模块,由所述业务模块基于所述调试控制信息对所述待调试功能模块的功能进行调试。

根据本申请的第二方面,提供一种基于分布式设备的调试方法,所述分布式设备包括主控板和线卡板,所述主控板包括通信模块和卡间通信模块,所述线卡板包括卡间通信模块和业务模块,所述业务模块包括待调试功能模块;以及所述方法,包括:

通过主控板内的通信模块接收待调试功能模块的调试控制信息;

将所述调试控制信息通过所述主控板内的卡间通信模块发送给所述线卡板内的卡间通信模块;

通过所述线卡板内的卡间通信模块将接收到的调试控制信息发送给所述线卡板内的业务模块,由所述业务模块基于所述调试控制信息对所述待调试功能模块的功能进行调试。

本申请实施例的有益效果:

本申请实施例提供的基于分布式设备的调试系统,通过在主控板内增加通信模块,利用通信模块和调试协助设备建立通信连接,然后在需要对待调试模块的功能进行调试时,将调试控制信息发送给通信模块,再经过主控板内的卡间通信模块到达线卡板,但是主控板内的通信模块和卡间通信模块的协议可能不同,故通信模块在将调试控制信息发送给主控板内的卡间通信模块之后,卡间通信模块需要进行协议转换以转换成卡间通信协议,然后基于卡间通信协议向对应的线卡板内的卡间通信模块发送上述调试控制信息,这样也就连接到具体的线卡板,进而由线卡板的卡间通信模块将上述调试控制信息到达线卡板内的业务模块,由业务模块基于上述调试控制信息完成待调试功能模块的功能调试。这样,分布式设备中新增的通信模块只需和主控板内的卡间通信模块进行信息交互,依次完成对待调试功能模块的功能调试,由于不需要对管理模块本身进行修改,因此大大降低了调试系统的复杂度;此外,通信模块和分布式设备中管理模块等没有耦合,因此在原分布式设备中添加通信模块后不会对原有的调试系统造成影响。

附图说明

图1a是现有技术提供的一种典型的分布式架构的结构示意图;

图1b是现有技术提供的分布式设备的结构示意图;

图1c是现有技术提供的分布式设备调试sdk的调试环境的结构示意图;

图2是本申请实施例提供的一种基于分布式设备的调试系统的结构示意图;

图3是本申请实施例提供的业务模块2022的内部结构示意图;

图4是本申请实施例提供的一种基于分布式设备的调试方法的流程图;

图5是本申请实施例提供的一种基于分布式设备的调试方法的数据流向示意图;

图6是本申请实施例提供的另一种分布式设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面对本申请提供的基于分布式设备的调试系统进行详细地说明。

参见图2,图2是本申请提供的一种基于分布式设备的调试系统的结构示意图,该调试系统包括:分布式设备20和调试协助设备21,上述分布式设备20包括主控板201和线卡板202,主控板201包括通信模块2011和卡间通信模块2012,线卡板202包括卡间通信模块2021和业务模块2022,业务模块2022包括待调试功能模块20221。

具体地,调试协助设备21,用于向主控板201的通信模块2011发送调试控制信息;

分布式设备20的主控板201,用于通过上述通信模块2011接收所述调试控制信息,并通过其内的卡间通信模块2012将上述调试控制信息发送给线卡板202中的卡间通信模块2021;

而分布式设备20的线卡板202,用于通过其内的卡间通信模块2021接收上述调试控制信息,并将上述调试控制信息发送给其内的业务模块2022,由上述业务模块2022基于上述调试控制信息对待调试功能模块的功能进行调试。

可选地,分布式设备的主控板201还包括管理模块2013,其也与主控板201中的卡间通信模块2012相连,用于通过卡间通信模块2012对线卡板进行管控,请参考图2所示。相应地,线卡板202中也包括管理模块2023,线卡板202中的管理模块2023用于对线卡板中其他模块进行管控,也请参考图2所示。

具体地,由于调试协助设备21无法直接和具体的线卡板202建立连接,而且为了减少对主控板201和线卡板202内管理模块的过多修改,本申请提出在主控板201内增加通信模块2011。通过通信模块2011和调试协助设备21建立通信连接,然后在需要对待调试模块的功能进行调试时,将调试控制信息发送给通信模块2011,再经过主控板201内的卡间通信模块2012到达线卡板202,但是主控板201内的通信模块2011和卡间通信模块2012的协议可能不同,故通信模块2011在将调试控制信息发送给主控板201内的卡间通信模块2012之后,卡间通信模块2012需要进行协议转换以转换成卡间通信协议,然后基于卡间通信协议向对应的线卡板202内的卡间通信模块2021发送上述调试控制信息,这样也就连接到具体的线卡板202,进而由线卡板202的卡间通信模块2021将上述调试控制信息到达线卡板202内的业务模块2022,由业务模块2022基于上述调试控制信息完成待调试功能模块的功能调试。这样,分布式设备20中新增的通信模块2011只需和主控板201内的卡间通信模块2012进行信息交互,依次完成对待调试功能模块的功能调试,由于不需要对管理模块本身进行修改,因此大大降低了调试系统的复杂度;此外,通信模块2011和分布式设备20中管理模块等没有耦合,因此在原分布式设备20中添加通信模块2011后不会对原有的调试系统造成影响。

可选地,本申请中的调试协助设备21可以但不限于为在线设备,上述在线设备可以但不限于包括远程server或者pc机等等。

可选地,本申请提供的分布式设备20在与调试协助设备21通信之前,还需要通过主控板201的通信模块2011与上述调试协助设备21建立通信连接,在建立通信连接后接收上述调试协助设备21发送的调试控制信息。具体地,上述通信连接可以是近距离通信连接也可以是远程通信连接,当调试协助设备21为远程通信设备时,则分布式设备20与远程通信设备建立远程通信连接。这样,可以实现基于分布式设备20对待调试功能的远程调试。

可选地,本申请分布式设备20中的线卡板202可以为多个,也请参考图2所示。在任一线卡板202上添加待调试功能模块时,会记录其上所有功能模块的标识并存储到标识列表中,这样,当调试协助设备21需要对待调试功能进行调试时,在发送调试控制信息的同时会携带待调试功能模块的标识,再经过通信模块2011、主控板201内的卡间通信模块2012将标识和调试控制信息一起发送给各个线卡板202的卡间通信模块2021,并转发给业务模块,由于各个线卡板202上记录的待调试功能模块的标识,当某一线卡板202的业务,模块发现接收到的待调试功能模块的标识在记录的标识列表中,则会基于接收到的调试控制信息执行待调试功能模块的调试功能;当其他线卡板202确认接收到的待调试功能模块的标识不在记录的标识列表中,则丢弃接收到的标识和调试控制信息,不执行后续操作。

本申请提供的基于分布式设备20的调试系统中,在对待调试功能模块进行调试时,没有借助分布式设备20中的管理模块,即,无需要分布式设备20中主控板201和线卡板202中管理模块等的参与,通过在主控板201中增加通信模块2011,与调试协助设备21建立通信连接,然后接收调试协助设备21发送给调试控制信息,并经过主控板201内的卡间通信模块2012将调试控制信息传递到线卡板202中。主控板201在整个调试系统中仅是起到了和调试协助设备21建立连接的作用,能够将接收到调试控制信息直接传递给线卡板202而无需对其进行解析处理,即,将调试协助设备21发送的调试控制信息通过主控板201透传到了线卡板202中,实现了调试控制信息的透传,然后通过主控板201中的卡间通信模块2011进行调试控制信息的中转,将与调试协助设备21连接的协议转换成了卡间通信的协议,最终到达线卡板202内,由于调试协助设备21不会感知到卡间通信模块进行协议转化的过程,所以从调试协助设备21的角度来看是直接和具体的线卡板202建立了连接。

基于上述任一实施例,本实施例中的待调试模块集成有第三方的软件开发工具包(softwaredevelopmentkit,sdk)。其中,待调试模块也会集成sdk的驱动。

具体地,当第三方需要调试sdk的新功能时,上述调试协助设备可以理解为第三方设备,然后与本地的分布式设备中的通信模块建立远程通信连接,当远程通信连接建立成功后,可以将sdk的调试控制信息发送给分布式设备的通信模块,分布式设备的主控板中的通信模块接收到上述调试控制信息后,将其转发给主控板内的卡间通信模块,然后经主控板内的卡间通信模块将上述调试控制信息发送给线卡板内的卡间通信模块,进而由线卡板内的卡间通信模块将调试控制信息发送给业务模块,由业务模块基于该调试控制信息对sdk的新增功能进行调试。具体地,对sdk的功能进行调试的过程可以参考目前现有的调试过程,本申请对sdk的功能的调试过程不进行限定。

进一步地,本实施例提供的线卡板内的业务模块2022,还用于在基于调试控制信息对待调试模块20221中的sdk进行调试后,向线卡板202内的卡间通信模块2021发送调试结果;由线卡板202内的卡间通信模块2021将上述调试结果发送给主控板201内的卡间通信模块2011;

上述主控板201内的卡间通信模块2012,还用于在接收上述调试结果后,将上述调试结果发送给主控板201内的通信模块2011,由主控板201内的通信模块2011将调试结果发送给调试协助设备21。

通过实施本实施例,调试协助设备可以快速且方便获知待调试功能模块中sdk的功能调试结果,以便根据调试结果执行后续操作。

可选地,本实施例中的待调试功能模块还可以外接有sdk对应的待调试软件,则本实施例中:

调试协助设备21,还用于在确认sdk的调试结果为调试成功时,向主控板201的通信模块2011发送软件调试信息;

分布式设备20的主控板201,还用于通过通信模块2011接收上述软件调试信息,并通过其内的卡间通信模块2012将上述软件调试信息发送给线卡板202中的卡间通信模块2021;

分布式设备20的线卡板202,还用于通过其内的卡间通信模块2021接收上述软件调试信息,并将上述软件调试信息发送给上述业务模块2022,由业务模块2022基于上述软件调试信息调用sdk对sdk对应的待调试软件进行调试。

通过实施本实施例,当待调试功能模块中sdk的功能调试完成后,还可以再调用sdk完成对sdk对应的待调试软件的调试,提高了基于分布式设备的调试系统的扩展性和灵活性。

可选地,本申请中的业务模块2022还包括业务解析模块20222,请参考图3所示,为线卡板202的内部结构示意图,该业务解析模块20222用于接收线卡板202内卡间通信模块2022发送的调试控制信息或软件调试信息,然后解析上述调试控制信息或软件调试信息,然后再基于解析后的信息对待调试功能模块20221进行调试。

可选地,基于上述任一实施例,本实施例中的业务模块2022还包括功能注册模块20223,其中:

功能注册模块20223,用于当业务模块2022中新增待调试功能模块时,记录新增的待调试功能模块的注册信息。

具体地,也请参考图3所示,在业务模块2022中添加调试功能时,只需在业务模块2022中添加对应的待调试功能模块即可,然后在功能注册模块20222中进行注册,例如,图3中有功能模块1~功能模块n,这些模块可以理解为已调试成功的功能模块,当新增待调试功能时,图3中的待调试功能模块n+1即为新增的待调试功能对应的功能模块。例如,图3中原有n个功能模块,如果通过第三方sdk进行新功能的开发时,可以将第三方的sdk作为第n+1个功能模块(也即待调试功能模块)添加到业务模块2022中,然后在功能注册模块20222上进行注册,注册完成后就可以通过图2的调试系统对sdk进行调试。

具体实施时,本实施例中的注册信息可以但不限于包括sdk中所有应用程序接口(applicationprogrammableinterface,api)标识等等。

可选地,sdk还可以包括应用程序接口函数库,这样,当sdk外接待调试软件时,调试协助设备向线卡板中业务模块发送的软件调试信息可以包括该待调试软件所需要调用的应用程序接口标识,这样当业务模块中业务解析模块可以从软件调试信息中解析出所需的应用程序接口标识,然后从sdk中调用解析出的应用程序接口标识对应的应用程序接口函数对该待调试软件进行调试。

通过实施本申请提供的基于分布式设备的调试系统,在对待调试功能模块进行调试时,分布式设备所用到的模块有主控板中的通信模块、主控板和线卡板中的卡间通信模块和线卡板中的业务模块。其中,通信模块只负责和调试协助设备建立连接,并将从调试协助设备接收到的调试控制信息传递到卡间通信模块,模块处理的操作相对简单,而且仅只需要搭建一次调试系统即可,当有新增的待调试功能模块时,只需将其添加到具体线卡板中的业务模块中,即在对具体线卡板进行新功能开发调试的时候不需要对主控板等其他设备进行修改,可扩展性强;此外,卡间通信模块是已有模块,不需要对其做任何修改。因此线卡中开发新功能并在线调试的时候,只需要将第三方的sdk添加到业务模块中,就可以完成调试系统的搭建,就可以通过调试协助设备采用第三方提供的上位机软件调试新功能,并且可以通过在线的方式和第三方进行联合调试,通过实施本申请提供的在线调试系统,在新功能开发调试的过程中缩短调试的过程,尤其在采用第三方的sdk开发新功能时效果显著。

基于同一发明构思,本申请还提供了一种基于分布式设备的调试方法,参考图4所示,应用于分布式设备中,上述分布式设备包括主控板和线卡板,其中,主控板包括通信模块和卡间通信模块,线卡板包括卡间通信模块和业务模块,上述业务模块包括待调试功能模块;则分布式设备的实施的调试方法可以包括以下步骤:

s401、通过主控板内的通信模块接收待调试功能模块的调试控制信息。

s402、将调试控制信息通过主控板内的卡间通信模块发送给线卡板内的卡间通信模块。

s403、通过线卡板内的卡间通信模块将接收到的调试控制信息发送给线卡板内的业务模块,由业务模块基于调试控制信息对待调试功能模块的功能进行调试。

可选地,本实施例中在通过主控板内的通信模块接收待调试功能模块的调试控制信息之前,还包括:

通过主控板内的通信模块与调试控制信息的发送方建立远程通信连接。

具体地,本实施例中的调试控制信息的发送方可以为近距离通信设备,也可以为远程通信设备,当发送方为远程通信设备时,可以实现待调试功能模块的远程在线调试,当发送方位近距离通信设备时,可以实现待调试功能模块的本地在线调试。

基于上述任一实施例,本实施例中待调试模块集成有第三方的软件开发工具包sdk;则当基于业务模块对待调试模块中的sdk调试完成后,通过线卡板内的卡间通信模块将调试结果发送给主控板内的卡间通信模块;通过主控板内的卡间通信模块接收调试结果,并通过主控板内的通信模块将调试结果发送给调试控制信息的发送方。

具体地,请参考图5所示进行说明,图5给出了在线调试过程中,在线调试协助设备(调试控制信息的发送方)和具体的线卡板中新增的功能模块(待调试功能模块)进行通信的数据流向,该通信数据流向所涉及的设备包括在线的调试协助设备(主要由pc机或者server承担)、分布式设备的主控板、分布式设备的线卡板。首先,pc或者server采用网络通信的方式和主控板中的通信模块建立连接,通信模块将从pc机或server接收到的调试控制信息传递给主控板中的卡间通信模块;然后主控板中的卡间通信模块借助分布式设备中原有的管理通路将调试控制信息传递到线卡板中的卡间通信模块,其中主控板和线卡板中的卡间通信模块主要完成主控板和线卡板之间的信息传递,不对具体的内容做处理;其次线卡板的卡间通信模块将接收到的调试控制信息传递到业务模块中,由业务模块中的业务解析模块对调试控制信息进行解析和处理,也请参考图5所示;最后业务解析完成后调用已注册待调试功能模块来完成相应的功能调试。功能调试后,如果需要数据回传,待调试功能模块会将具体的数据作为调试结果传递到业务模块进行封装,然后通过所在线卡板内的卡间通信模块传递给主控板的卡间通信模块,最后再借助主控板中的通信模块将调试结果传递到pc机或server中。pc机或server和分布式设备中相关模块进行信息传递的数据流向也请参考图5中箭头所示,由于在整个调试系统中,主控板只是承担了和pc机或server建立通信连接并将接收到的信息传递到线卡板的作用,并不对具体的信息进行处理,在整个调试过程中主控板将信息透传到了线卡板中,所以从pc机或server角度来看,相当于和具体的线卡板直接建立了通信连接。在本地线卡板中新增了待调试功能模块后,pc机或server只是做具体的适配,然后发送信息给业务模块就能够对其进行解析,因此pc机或server不需要较大的增加或者修改,因此,大大降低了调试系统的复杂度,而且也无需分布式设备中管理模块的参与,更无需对管理模块做任何修改。

本申请实施例提供了一种分布式设备,如图6所示,包括处理器601和机器可读存储介质602,机器可读存储介质602存储有能够被处理器601执行的计算机程序,处理器601被计算机程序促使执行本申请实施例所提供的基于分布式设备的调试方法。

上述计算机可读存储介质可以包括ram(randomaccessmemory,随机存取存储器)、ddrsram(doubledataratesynchronousdynamicrandomaccessmemory,双倍速率同步动态随机存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,计算机可读存储介质还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessor,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

另外,本申请实施例提供了一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例所提供的基于分布式设备的调试方法。

对于分布式设备以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1