CN102006223A - 卡间数据传输方法、装置及系统、板卡和分布式系统 - Google Patents
卡间数据传输方法、装置及系统、板卡和分布式系统 Download PDFInfo
- Publication number
- CN102006223A CN102006223A CN2010105481809A CN201010548180A CN102006223A CN 102006223 A CN102006223 A CN 102006223A CN 2010105481809 A CN2010105481809 A CN 2010105481809A CN 201010548180 A CN201010548180 A CN 201010548180A CN 102006223 A CN102006223 A CN 102006223A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- professional
- business
- service message
- 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
Links
Images
Abstract
本发明公开了一种卡间数据传输方法、装置及系统、板卡和分布式系统,该方法包括:业务发送端发送自身的业务数据时,将所述业务数据封装为业务消息并通过自身业务的数据传输通道发送;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息并通过所控制的业务的数据传输通道发送;业务接收端通过自身业务的数据传输通道接收到业务消息,根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。该方法能够保证数据传输的顺序依赖关系,避免了数据传输故障、丢失和业务处理逻辑错乱等问题。
Description
技术领域
本发明涉及数据传输技术领域,尤指一种卡间数据传输方法、装置及系统、板卡和分布式系统。
背景技术
分布式系统中实现卡间数据传输的卡间通信,或称处理器间通信(Inter-Processor Communication,IPC),在主控卡和业务卡之间实现数据传输。卡间通信还包括:单核系统中同一操作系统中多个进程间的通信机制;多核系统中同一芯片上多核之间的通信;集群系统中分布于不同地域的网络中多个设备之间的通信;机框式分布式系统中同一机框内多卡之间的通信等等。
以机框式分布式系统中主控卡与业务卡之间的数据传输为例,典型的机框式分布式路由器的组成如图1所示。该系统包括:主控卡、交换背板和若干业务卡,其中主控卡包括主用主控卡和备用主控卡,业务卡包括业务卡1、业务卡2、......、业务卡M等。主控卡通过交换背板与各个业务卡进行通信,实现数据传输交换,上述卡间通信就是指主控卡与各个业务卡之间的操作、管理、控制及维护信息等数据的传输。
从层次化的软件业务逻辑看,上述卡间通信的软件模型层次结构如图2所示。
以主控卡到业务卡传输数据为例,反向相同,实现卡间数据传输的步骤如下:
步骤1:主控卡上的业务模块(包括业务A、业务B、......业务N等各个业务的业务模块)封装数据得到业务报文,调用IPC发送接口将报文交给卡间通信IPC模块。
步骤2:IPC模块接收业务报文后,将业务报文放入报文队列中,并根据报文队列的状态及报文属性执行相关操作,然后将业务报文交由驱动模块。
步骤3:驱动模块将业务报文发送到对应的业务卡。
步骤4:业务卡驱动模块接收业务报文后,上交给业务卡的IPC模块。
步骤5:IPC模块检查报文正常,分发给业务卡上相应的业务模块进行处理。
现有卡间通信数据传输时,可以所有的业务模块公用一个传输通道,通过排队的方式将报文发送到对端进行处理,对端从该通道中提取报文,交给相应的业务模块处理。如图3所示,业务A、业务B、......、业务N都是用一个公用的传输通道传输报文。但这种方式不能针对不同业务的数据传输需求,以及不同类型的报文的传输要求进行区分传输,不能满足不同重要程度的数据报文对传输实时性的需求。
因此现有的卡间数据传输也可以采用各个业务使用各自独立的传输通道的方式实现,如图4所示,业务A、业务B、......、业务N单独使用各自的传输通道传输报文。这种方式既保证了各业务的传输质量需求,同时用户可以方便地监控各个业务模块的传输状态,并且某一业务模块故障不会影响其他业务模块,调试定位也更为方便。
但是由于一个业务模块需要传输的业务信息既包括自身的业务信息,同时也包括控制其他业务的业务信息,例如:图3中所示的网格填充的业务信息即为业务A传输的控制业务B和业务C的业务信息,包括通告业务B和C同步完成等各种信息。这样就采用各自独立的传输通道传输业务信息时,就有可能导致对其他业务的控制信息不能在其他业务处理完成后才发送,从而存在不能保证业务信息传输处理的顺序依赖关系。
例如:路由器中的主控卡和各个业务卡包括热插拔(Hot Plugging,HPG)模块,拓扑管理(TOPO)模块,路由(Routing)模块等业务模块。当一张新的业务卡插入运行中的路由器时,主控卡上的热插拔模块感知新业务卡插入,并执行热插拔相关操作,由于主控卡预先备份了各个先前插入的业务卡上的各个业务的信息,因此需要在热插拔模块的控制下将各个业务的TOPO信息,路由表等同步到新插入的业务卡。其中热插拔模块可以相当于业务A对应的业务模块,拓扑管理模块、路由模块等相当于业务B和业务N等对应的业务模块,在业务A的控制下将业务B和业务N的信息同步到新插入的业务卡上。该过程包括:
1)主控卡开始执行将各个业务模块的TOPO信息同步到新插入的业务卡时,主控卡上的热插拔模块向新插入的业务卡通告启动同步的消息。
2)新插入的业务卡准备就绪后,由其包含的热插拔模块向主控卡发送消息确认可以启动信息同步。
3)主控卡上的热插拔模块通告TOPO模块可以同步,TOPO模块开始同步业务信息,当TOPO模块同步完最后一条消息后,向主控卡上的热插拔模块报告同步完成。
4)主控卡上的热插拔模块向业务卡通告TOPO模块的同步已完成。
5)业务卡上的热插拔模块收到消息后,向主控卡确认可以同步下一个模块,即路由模块的信息。
6)主控卡上的热插拔模块通告路由模块可以开始同步信息,路由模块开始同步路由表,以此类推,直至所有业务模块的信息都同步完成。
在上述同步过程的第3)步中,TOPO模块在发送最后一条消息完成后便通告热插拔模块同步已完成,但由于需要同步的TOPO信息量大或者优先级较低,此时需要同步的TOPO模块的一些信息可能还在主控卡中TOPO模块的IPC队列中等待发送,或者业务卡收到后还未处理。但热插拔模块的通告消息量小,优先级高,可能先被业务卡接收并处理。因此,热插拔模块通告路由模块开始同步下一个业务模块的信息时,就可能导致上一个业务模块TOPO模块的信息还未同步完成便开始了下一个业务模块路由模块的信息同步,可能导致路由模块的数据丢失、数据转发故障等问题。进一步的,假如下一个业务模块必须依赖于上一个业务模块的同步信息,因此需要在上一个业务模块同步完成后才能同步,在这种情况下,若是可以开始同步的通告先到达会导致下一个业务模块的同步信息到达新插入的业务卡后处理出错(被依赖的上一个业务模块的信息还未完成同步),这样系统同步便会出现故障。
可见,现有的卡间数据传输方式,不能很好的保证业务信息传输处理的顺序依赖关系,尤其是不能保证一个业务对另一个业务的控制信息在正确的时间按正确的顺序发送,从而可能引起数据传输出错、丢失、数据转发故障,导致业务处理逻辑混乱等问题。
发明内容
本发明实施例提供一种卡间数据传输方法、装置及系统、板卡和分布式系统,用以解决现有技术中卡间数据传输时存在的不能保证数据的顺序依赖关系,可能引起数据传输出错或业务处理逻辑混乱的问题。
一种卡间数据传输方法,包括:
业务发送端发送自身的业务数据时,将所述业务数据封装为业务消息并通过自身的数据传输通道发送;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息并通过所控制的业务的数据传输通道发送;
业务接收端通过自身数据传输通道接收到业务消息,根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。
一种卡间数据传输装置,包括:
封装模块,用于发送自身的业务数据时,将所述业务数据封装为业务消息;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息;
发送模块,用于将包含业务数据的业务消息通过自身的数据传输通道发送,将包含特殊控制数据和属主标识的业务消息通过所控制的业务的数据传输通道发送。
一种卡间数据传输装置,包括:
接收模块,用于通过自身数据传输通道接收业务消息;
处理模块,用于根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。
一种卡间数据传输系统,包括:
至少一个上述包括封装模块和发送模块的卡间数据传输装置作为业务发送端;以及至少一个上述包括接收模块和处理模块的卡间数据传输装置作为业务接收端。
一种板卡,包括:若干业务模块,所述业务模块中包括至少一个上述包括封装模块和发送模块的卡间数据传输装置,和/或包括至少一个上述包括接收模块和处理模块的卡间数据传输装置。
一种分布式系统,包括:至少两个上述的板卡。
本发明有益效果如下:
本发明实施例提供的卡间数据传输方法、装置及系统、板卡和分布式系统,通过业务发送端在发送数据时,将对其他业务的控制数据通过所控制的业务的传输通道传输,保证了对其他业务的控制数据能够按合适的时间顺序正确的发送,即保证了数据传输的顺序依赖关系;且该方法通过属主标识能够保证接收到的业务信息正确的分发至所属的业务接收端,避免了接收端接收控制数据的时间出现错误和数据转发故障,从而避免了数据传输出错和业务处理逻辑混乱等问题的发生,提高了分布式系统中各种业务同步、备份操作的可靠性。
附图说明
图1为现有技术中机框式分布式路由器的结构示意图;
图2为现有技术中卡间通信的软件模型层次结构图;
图3为现有技术中公用传输通道实现卡间通信的原理示意图;
图4为现有技术中使用独立的传输通道实现卡间通信的原理示意图;
图5为本发明实施例中卡间数据传输的原理示意图;
图6为本发明实施例中卡间数据传输方法的流程图;
图7为本发明实施例中卡间数据传输时发送端的操作流程示例图;
图8为本发明实施例中卡间数据传输时接收端的操作流程示例图;
图9为本发明实施例中卡间数据传输装置的结构示意图。
具体实施方式
针对现有技术中,各个业务使用各自独立的传输通道时存在的可能导致数据传输顺序错误,从而导致业务逻辑混乱或出现业务故障的问题,本申请实施例提供一种卡间数据传输方法,将一个业务对其他业务进行控制的控制信息,可以称为特殊控制数据,通过所控制的业务的传输通道进行传输,从而避免传输顺序的错误。下面通过具体的实施例进行详细说明。
实施例一
本发明实施例一提供的卡间数据传输方法,实现卡间数据传输的原理如图5所示。图5中所示的是一个包含至少两个板卡的分布式系统,其中一个板卡为主控卡,另一个板卡为业务卡。每个板卡上包括若干业务模块,例如图5中所示的主控卡和业务卡都包括业务模块A、业务模块B、......业务模块N等。以位于主控卡上的各业务模块作为业务发送端、位于业务卡上的各业务模块作为业务接收端为例,当然,以位于业务卡上的各业务模块作为业务发送端、位于主控卡上的各业务模块作为业务接收端也是可以的,其中,至少一个业务发送端和至少一个业务接收端可以构成一个卡间数据传输系统。为了方便描述在下面的描述中,将主控卡上的业务模块A称为业务发送端A,将业务卡上的业务模块A业务接收端A,通过业务A的数据传输通道连接业务发送端A和业务接收端A;同样的,将主控卡上的业务模块B称为业务发送端B,将业务卡上的业务模块B业务接收端B,通过业务B的数据传输通道连接业务发送端B和业务接收端B;......;将主控卡上的业务模块N称为业务发送端N,将业务卡上的业务模块N业务接收端N,通过业务N的数据传输通道连接业务发送端N和业务接收端N;等等。通过该系统实现卡间数据传输的方法,其流程如图6所示,执行步骤如下:
步骤S11:业务发送端启动发送数据的流程。
例如:图5中所示的业务发送端A启动数据发送流程。
步骤S12:业务发送端判断待发送数据是自身的业务数据还是对其他业务进行控制的特殊控制数据。
若是发送自身的业务数据时,执行步骤S13。若是发送对其他业务进行控制的特殊控制数据时,执行步骤S14。
沿用上边的例子,业务发送端A判断是业务A的业务数据还是对业务B、......、或业务N的控制数据。
步骤S13:将业务数据封装为业务消息,通过自身业务的数据传输通道发送。
业务发送端发送的自身的业务数据包括对自身的控制数据和其他业务数据,这些数据都通过自身的业务数据传输通道来发送。在封装业务消息时,也可以携带一个自身的属主标识或不设置属主标识,在不设置属主标识时默认为自身的业务消息。
优选的,业务发送端发送自身的业务数据时,封装的业务消息中包含数据类型标识,其中,数据类型标识包括协议控制消息标识或普通业务数据标识等。
沿用上边的例子,业务发送端A发送业务A业务数据时通过业务A的数据传输通道发送。例如图5中,业务A的传输通道中点状填充的方块表示业务A的业务数据;业务B的传输通道中斜线填充的方块表示业务B的业务数据;业务N的传输通道中斜点划线填充的方块表示业务N的业务数据。业务B的传输通道中网格填充的方块表示业务A对业务B的特殊控制数据,业务N的传输通道中网格填充的方块表示业务A对业务N的特殊控制数据。
步骤S14:将特殊控制数据封装为包含属主标识的业务消息,通过所控制的业务的数据传输通道发送。
业务发送端发送的对其他业务进行控制的特殊控制数据,需要根据特殊控制数据是对哪个业务进行控制的来决定通过哪个业务的数据传输通道来传输。从而保证在该业务中需要在该特殊控制数据之前传输的业务数据传送完之后再发送该特殊控制数据,通过这种借用数据传输通道的方式,保证数据传输的顺序依赖关系,不会产生数据传输的顺序错误,从而保证业务接收端的接收和处理顺序,保证业务处理逻辑的正确。
优选的,业务发送端发送对其他业务进行控制的特殊控制数据时,封装的业务消息中还包含数据类型标识,其中,数据类型标识为特殊控制数据标识。以便业务接收端能够在接收到其他业务发送端转过来的业务信息时,根据该标识确认接收到的业务信息是特殊控制数据,并能够调用相应的处理程序进行处理。
沿用上边的例子,若业务发送端A发送的是对业务B的特殊控制数据,通过业务B的数据传输通道发送;若发送的是对业务N的特殊控制数据,通过业务N的数据传输通道发送。例如:如图5中所示的业务B和N的数据传输通道中网格填充的的业务数据即为特殊控制数据。
步骤S15:业务接收端通过自身业务的数据传输通道接收业务消息。
由于每个业务使用各自独立的数据传输通道,因此,每个业务接收端都是通过自身业务的数据传输通道接收业务消息的。
沿用上边的例子,业务接收端A通过业务A的数据传输通道接收业务发送端A发送的业务A的业务数据,业务接收端B通过业务B的数据传输通道接收业务发送端A发送的对业务B的特殊控制数据,业务接收端N通过业务N的数据传输通道接收业务发送端A发送的对业务N的特殊控制数据。
步骤S16:根据业务消息中包含的属主标识确定是否是包含特殊控制数据的业务消息。
业务接收端接收业务消息时,对接收到的业务消息进行解析,根据其中的属主标识确定是自身的业务消息还是包含特殊控制数据的业务消息。
一般自身业务消息中可以不设置属主标识也可以设定一个选定的属主标识。而特殊控制数据的业务消息则设置有一个特殊控制数据标识。
若是,执行步骤S17,否则执行步骤S18。
沿用上边的例子,业务接收端B和业务接收端N接收到业务信息时,根据业务信息中的属主标识可以确定该业务信息是业务发送端A发送的,其属于借用自身数据传输通道发送给业务接收端A的业务信息。
步骤S17:将接收到的业务信息转给属主标识对应的其他业务接收端进行处理。
其他业务接收端接收到业务信息时,或者业务接收端接收到其他业务接收端转发过来的业务信息时,对其进行解析,根据其中包含的业务类型标识来识别该业务消息是包含特殊控制数据的业务消息。
当根据数据类型标识确定该业务消息包含的是对其他业务进行控制的特殊控制数据时,则调用该数据类型标识对应的数据处理程序进行处理。
沿用上边的例子,业务接收端A接收到业务接收端B或业务接收端N转发过来的业务信息时,根据业务信息中的数据类型标识可以确定该业务信息包含的是业务A对业务B或业务N的特殊控制数据。
步骤S18:业务接收端对业务信息进行处理。
业务接收端通过自身数据传输通道接收到的业务消息后,对其进行解析,根据其中包含的业务类型标识来识别该消息是什么类型的业务消息,例如包含的是自身的控制数据还是其他的业务数据。
例如:若根据业务消息中包含的属主标识确定是自身的业务消息时,根据数据类型标识确定该业务消息包含的业务数据是协议控制消息数据还是普通业务数据,并调用数据类型标识对应的数据处理程序进行处理。
沿用上边的例子,业务接收端A接收到业务A的数据传输通道发送过来的业务信息时,根据业务信息中的数据类型标识可以确定该业务信息包含的是对业务A的控制数据还是业务A的其他业务数据。
下面通过一个具体的实施例详细说明上述卡间数据传输的具体实现过程。
实施例二
本发明实施例二提供的卡间数据传输方法,分别针对卡间数据传输时业务发送端和业务接收端各自具体的操作流程进行详细描述。其中:
在进行卡间数据传输时业务发送端的操作流程如图7所示,以图5中所示的业务系统为例,为了保证在业务B的数据同步完成后才启动业务N的数据同步,则需要起控制作用的业务A,一般是系统中的控制模块实现,例如现有技术举例中提到的热插拔模块,以图5中的业务发送端A发送特殊控制数据为例,该过程包括如下步骤:
步骤S101:业务发送端A启动发送数据的流程。
例如:业务接收端A在业务B的数据同步完成后,要向业务卡发送通告该业务B已经同步完成的特殊控制消息,则启动数据发送流程。
步骤S102:业务发送端A判断待发送数据是业务A的业务数据还是对其他业务进行控制的特殊控制数据。
业务发送端A判断是业务A的业务数据还是对业务B的控制数据。
若是发送业务A的业务数据时,执行步骤S103。若是发送对其他业务进行控制的特殊控制数据时,执行步骤S105。
步骤S103:将业务A的业务数据封装为业务消息。
为了使业务接收端能够正确的对接收到的业务信息进行处理,需要业务接收端能够识别接收到的业务消息的类型。例如是协议控制数据还是普通的业务数据,因此可以设置数据类型标识来区分数据的类型。因此在发送自身的业务数据时可以设置协议控制消息标识或普通业务数据标识等,特别的,在发送对其他业务的特殊控制数据时需要设置特殊控制数据标识,在接收消息时通过检查消息首部中的数据类型标识,来避免对这种业务消息的错误地处理流程。消息类型的描述字段定义如下:
typedef enum{
SRIPC_MSG_TYPE_NONE,
SRIPC_MSG_TYPE_IPC_CTRL,/*协议控制数据消息*/
SRIPC_MSG_TYPE_APP,/*普通业务数据标识*/
SRIPC_MSG_TYPE_SPECIAL,/*增加的消息类型(特殊控制数据标识)*/
SRIPC_MSG_TYPE_MAX=255
}sripc_msg_type_t;
沿用上边的例子,业务A发送自身的业务数据时,封装的业务消息中包含有数据类型标识,可选的,也可以包含属主标识(即业务A的标识)。
步骤S104:通过业务A的数据传输通道发送。
步骤S105:将对业务B的特殊控制数据封装为包含属主标识的业务消息。
为了保证在业务接收端B接收到业务消息时能够正确的识别出业务消息包含的数据属于业务A对业务B的特殊控制数据,需要设置一个属主标识来标识业务消息归属的业务。这样业务接收端接收到包含有属主标识的业务消息时就可以识别这是一个属于其他业务的业务消息,而不会被业务接收端错误的接收到本地处理,而是可以正确的分发给这个业务消息所属的业务接收端进行处理了。
例如:业务发送端A在封装包含特殊控制数据的业务消息时,在业务消息的首部设置属主标识字段,通过该字段确定消息的所有者。例如:在首部添加了属主标识字段的业务消息的描述信息定义如下:
struct sripc_msg_s{
uint16_t msg_dlen;/*消息数据块长度(Bytes),4字节对齐*/
uint8_t msg_owner;/*属主标识字段*/
uint8_t msg_para;/*保留,以备用作其他特殊用途*/
uint32_t data[0];
};
其中,消息数据块中即为消息包含的业务数据或特殊控制数据。
其中,属主标识(msg_owner)字段可赋值的属主定义如下:
typedef enum{
SRIPC_MSG_OWNER_NONE,
SRIPC_MSG_OWNER_A,/*业务A*/
SRIPC_MSG_OWNER_B,/*业务B*/
SRIPC_MSG_OWNER_C,/*业务C*/
SRIPC_MSG_OWNER_MAX=255
}sripc_msg_owner_t;
通过业务标识来标识属主为相应的业务或者根据实现情况复用各业务的注册信息来标识。
同时,还会在业务消息中添加步骤S103中所述的数据类型标识。
沿用上边的例子,业务A发送对业务B的特殊控制数据时,封装的业务信息中包含特殊控制数据标识和属主标识(即业务B的标识)。
也就是说业务发送端A构造的业务消息传输通道选择应该为业务B的数据传输通道、业务消息的数据类型标识为SRIPC_MSG_TYPE_SPECIAL、业务消息的属主标识为SRIPC_MSG_OWNER_A
步骤S106:通过业务B的数据传输通道发送。
为保证业务B同步真正完成之后才启动下一业务(业务N)的同步,则业务A(即控制模块)向业务卡发送的通告同步完成消息需要绝对限定在业务B同步的最后一条消息之后,这样才能保证数据传输顺序,因此,利用业务B的传输通道发送业务A发送的对业务B进行控制的特殊控制数据,是最有效的选择,能够很好的保证发送顺序正确无误。
业务接收端A在业务N的数据同步完成后,要向业务卡发送通告该业务N已经同步完成的特殊控制消息的过程,也与上述业务接收端A在业务B的数据同步完成后,要向业务卡发送通告该业务B已经同步完成的特殊控制消息的过程相同,此处不再赘述。
在进行卡间数据传输时接收端的操作流程如图8所示,以业务接收端B接收业务发送端A通过自身的数据传输通道传输的业务消息后转给业务接收端A来处理的过程为例,该处理过程包括如下步骤:
步骤S201:业务接收端B通过业务B的数据传输通道接收业务消息。
由于负责卡间通信的卡间通信模块会将各个业务的数据传输通道传输的消息转给该数据传输通道所属的业务,因此,业务接收端B可以通过业务B的数据传输通道,可能接收到业务发送端B发送的包含业务B的业务数据的业务消息,也可能接收到业务发送端A通过业务B的数据传输通道发送的包含特殊控制数据的业务消息。
步骤S202:解析接收到的业务消息,获取其中包含的属主标识。
业务接收端接收业务消息,增加查找属主标识的相关操作,然后交给该属主标识对应的业务接收端处理即可。
沿用上边的例子,业务接收端B接收到业务消息后,解析出其中包含的属主标识对应的是业务A。
步骤S203:根据业务消息中包含的属主标识确定是否是包含特殊控制数据的业务消息。
若是,执行步骤S204,否则执行步骤S207。
沿用上边的例子,业务接收端B解析出接收到的业务消息包含的属主标识对应的是业务A时,认为是包含特殊控制数据的业务消息。
步骤S204:将接收到的业务信息转给属主标识对应的业务接收端A进行处理。
沿用上边的例子,业务接收端B将接收到的业务消息时,由于属主标识为业务A的标识,因此将业务消息转给业务接收端A处理。
步骤S205:业务接收端A获取业务信息中包含的数据类型标识。
一般业务接收端在接收到业务消息后,根据业务类型标识识别是否是包含特殊控制数据的业务消息,同时在属于自身的业务数据时,识别是协议控制数据还是普通的业务数据。
沿用上边的例子,业务接收端A接收到业务信息后可以识别出其中包含的数据类型标识为特殊控制数据标识。
步骤S206:根据业务类型标识调用对应的处理程序进行处理。
一般业务接收端根据业务类型标识调用相应的数据处理程序来处理数据。
例如:对协议控制数据,调用由协议控制处理程序处理;对普通的业务数据也会调用相应的数据处理程序处理,如路由消息交由路由管理程序处理,拓扑消息交由拓扑管理程序处理等。针对特殊控制数据也会调用新定义的特殊控制处理程序进行处理。
建立处理数组,通过处理数组查找对应的数据处理程序,调用数据程序的描述语言如下:
typedef void(*sripc_msg_proc_func)(sripc_msg_t*msg);
sripc_msg_proc_func sripc_msg_dealers[SRIPC_MSG_OWNER_MAX]={NULL};
当业务在向卡间通信模块注册时,同时指定该业务收到消息时的处理方式,卡间通信模块针对所有业务的消息处理程序构建如上所述的消息处理数组,从而实现根据数据类型标识调用相应的数据处理程序。
沿用上边的例子,业务接收端A调用特殊控制处理程序处理。
步骤S207:业务接收端B获取业务信息中包含的数据类型标识。
沿用上边的例子,业务接收端B接收到包含自身业务数据的业务信息后,识别出其中包含的数据类型标识为协议控制数据数据标识还是普通业务数据标识。
步骤S208:根据业务类型标识调用对应的处理程序进行处理。
沿用上边的例子,业务接收端B根据数据类型标识为协议控制数据数据标识还是普通业务数据标识,调用相应的数据处理程序处理。
根据本发明实施例提供的上述卡间数据传输方法,可以构建一种卡间数据传输装置,该装置设置在板卡中的各个业务模块中。例如设置在图5所示的卡间数据传输系统包括的主控卡和业务卡的业务模块A、业务模块B、......、业务模块N中,设置在业务模块中的卡间数据传输装置,根据数据传输时的具体场景,作为业务发送端或业务接收端使用。该卡间数据传输装置的结构如图9所示,包括:封装模块10、发送模块20、接收模块30和处理模块40。
封装模块10,用于发送自身的业务数据时,将需要发送的业务数据封装为业务消息;发送对其他业务进行控制的特殊控制数据时,将该特殊控制数据封装为包含属主标识的业务消息。
优选的,上述封装模块10,还用于:发送对其他业务进行控制的特殊控制数据时,封装的业务消息中还包含数据类型标识,其中,数据类型标识为特殊控制数据标识。
优选的,上述封装模块10,还用于:发送自身的业务数据时,封装的业务消息中包含数据类型标识,其中,数据类型标识包括协议控制消息标识或普通业务数据标识。
发送模块20,用于将包含业务数据的业务消息通过自身的业务数据传输通道发送,将包含特殊控制数据和属主标识的业务消息通过所控制的业务的数据传输通道发送。
接收模块30,用于通过自身业务的数据传输通道接收业务消息。
处理模块40,用于根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给属主标识对应的其他业务接收端。
优选的,上述处理模块40,还用于:接收到其他业务接收端转发过来的业务信息时,根据业务信息中包含的数据类型标识确定该业务消息包含的是对其他业务进行控制的特殊控制数据时,调用数据类型标识对应的数据处理程序进行处理。
优选的,上述处理模块40,还用于:通过自身业务的数据传输通道接收到的业务消息后,若根据业务消息中包含的属主标识确定是自身的业务消息时,根据业务消息中包含的数据类型标识确定该业务消息包含的业务数据是协议控制消息数据还是普通业务数据,并调用数据类型标识对应的数据处理程序进行处理。
上述卡间数据传输装置,可以设置在板卡中能够发送对其他业务模块进行控制的特殊控制数据的业务模块中,即可以作为业务接收端也可以作为业务发送端,上述卡间数据传输装置仅可以作为业务发送端时,可以仅包括封装模块10和发送模块20。设置仅可以作为业务接收端时可以仅包括接收模块30和处理模块40。即可以作为业务接收端又可以作为业务发送端时,则包括封装模块10、发送模块20、接收模块30和处理模块40。
一般情况下,板卡的各个业务模块中设置的卡间数据传输装置都会包括接收模块30和处理模块40,来作为业务接收端使用;而封装模块10和发送模块20则可以选择包括或者不包括在卡间数据传输装置;优选的,可以仅在能够发送对其他业务模块进行控制的特殊控制信息的业务模块中设置的卡间数据传输装置中包括封装模块10和发送模块20。
根据本发明实施例提供的上述卡间数据传输方法、装置及系统,通过业务发送端在发送数据时,将对其他业务的控制数据通过所控制的业务的数据传输通道传输,保证了对其他业务的控制数据能够按合适的时间顺序正确的发送,即保证了数据传输的顺序依赖关系;避免了各自使用各自的传输通道的发送方式所存在的不能保证针对各业务的发送数据的顺序依赖关系的问题。例如:在同步数据时,起控制作用的业务发送对另一个业务的特殊控制数据时,借用另一业务的数据传输通道,从而保证另一业务的数据完全同步完成后才会发送该特殊控制消息,避免了特殊控制消息在同步完成前发送的接收端,因其处理逻辑混乱的问题。
且该方法通过属主标识能够保证接收到的业务信息正确的分发至所属的业务接收端,避免了业务接收端接收特殊控制数据的时间出现错误和数据转发故障,从而避免了数据传输出错和业务处理逻辑混乱等问题的发生,提高了分布式系统中各种业务同步、备份操作的可靠性。
本申请实施例提供的卡间数据传输方法,适用于多CPU的系统中进行多业务的数据同步备份等操作,尤其是当前业务的数据传输必须在前一个业务的数据传输完成之后才能执行的情况,本申请的方法能够有效的保证这种情况下的数据传输顺序,通过前一个业务的数据传输通道在前一个业务传送完最后一个数据后传送控制信息,从而能够保证当前业务的数据传输在前一个数据的传输完成后才会启动传输。
且由于设置了属主标识,还方便数据传输故障时的调试定位,通过查看故障时的属主标识,可以立即缩小故障排查的范围,而传统方案则难以定位哪个业务模块发生故障,甚至根本没有意识到系统已发生故障,因此也提高了分布式各种设备各种业务同步与备份操作的可靠性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种卡间数据传输方法,其特征在于,包括:
业务发送端发送自身的业务数据时,将所述业务数据封装为业务消息并通过自身业务的数据传输通道发送;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息并通过所控制的业务的数据传输通道发送;
业务接收端通过自身业务的数据传输通道接收到业务消息,根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。
2.如权利要求1所述的方法,其特征在于,发送对其他业务进行控制的特殊控制数据时,封装的业务消息中还包含数据类型标识,所述数据类型标识为特殊控制数据标识。
3.如权利要求2所述的方法,其特征在于,还包括:
接收到其他业务接收端转发过来的业务信息时,根据所述数据类型标识确定该业务消息包含的是对其他业务进行控制的特殊控制数据,调用所述数据类型标识对应的数据处理程序进行处理。
4.如权利要求1-3任一所述的方法,其特征在于,所述业务发送端发送自身的业务数据时,封装的业务消息中包含数据类型标识,所述数据类型标识包括协议控制消息标识或普通业务数据标识。
5.如权利要求4所述的方法,其特征在于,还包括:
所述业务接收端通过自身业务的数据传输通道接收到的业务消息后,若根据业务消息中包含的属主标识确定是自身的业务消息时,根据所述数据类型标识确定该业务消息包含的业务数据是协议控制消息数据还是普通业务数据,并调用所述数据类型标识对应的数据处理程序进行处理。
6.一种卡间数据传输装置,其特征在于,包括:
封装模块,用于发送自身的业务数据时,将所述业务数据封装为业务消息;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息;
发送模块,用于将包含业务数据的业务消息通过自身业务的数据传输通道发送,将包含特殊控制数据和属主标识的业务消息通过所控制的业务的数据传输通道发送。
7.如权利要求6所述的装置,其特征在于,所述封装模块,还用于:
发送对其他业务进行控制的特殊控制数据时,封装的业务消息中还包含数据类型标识,所述数据类型标识为特殊控制数据标识。
8.如权利要求6或7所述的装置,其特征在于,所述封装模块,还用于:
发送自身的业务数据时,封装的业务消息中包含数据类型标识,所述数据类型标识包括协议控制消息标识或普通业务数据标识。
9.一种卡间数据传输装置,其特征在于,包括:
接收模块,用于通过自身业务的数据传输通道接收业务消息;
处理模块,用于根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。
10.如权利要求9所述的装置,其特征在于,所述处理模块,还用于:
接收到其他业务接收端转发过来的业务信息时,根据所述业务信息中包含的数据类型标识确定该业务消息包含的是对其他业务进行控制的特殊控制数据时,调用所述数据类型标识对应的数据处理程序进行处理。
11.如权利要求9或10所述的装置,其特征在于,所述处理模块,还用于:
通过自身业务的数据传输通道接收到的业务消息后,若根据业务消息中包含的属主标识确定是自身的业务消息时,根据所述业务消息中包含的数据类型标识确定该业务消息包含的业务数据是协议控制消息数据还是普通业务数据,并调用所述数据类型标识对应的数据处理程序进行处理。
12.一种卡间数据传输系统,其特征在于,包括:
至少一个如权利要求6-8任一所述的卡间数据传输装置作为业务发送端;以及至少一个如权利要求9-11任一所述的卡间数据传输装置作为业务接收端。
13.一种板卡,其特征在于,包括:若干业务模块,所述业务模块中包括如权利要求6-8任一所述的卡间数据传输装置和/或如权利要求9-11任一所述的卡间数据传输装置。
14.一种分布式系统,其特征在于,包括:至少两个如权利要求13所述的板卡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105481809A CN102006223B (zh) | 2010-11-17 | 2010-11-17 | 卡间数据传输方法、装置及系统、板卡和分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105481809A CN102006223B (zh) | 2010-11-17 | 2010-11-17 | 卡间数据传输方法、装置及系统、板卡和分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102006223A true CN102006223A (zh) | 2011-04-06 |
CN102006223B CN102006223B (zh) | 2013-06-19 |
Family
ID=43813309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105481809A Active CN102006223B (zh) | 2010-11-17 | 2010-11-17 | 卡间数据传输方法、装置及系统、板卡和分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102006223B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012159339A1 (zh) * | 2011-07-21 | 2012-11-29 | 华为技术有限公司 | 网络设备加入集群系统的接口注册方法和设备 |
CN103595822A (zh) * | 2013-11-26 | 2014-02-19 | 北京经纬恒润科技有限公司 | 一种数据收发方法、装置及通信设备 |
CN105323289B (zh) * | 2014-08-01 | 2019-02-05 | 上海博达数据通信有限公司 | 一种基于分布式的数据同步方法 |
CN113630318A (zh) * | 2020-05-06 | 2021-11-09 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119208A (zh) * | 2007-08-28 | 2008-02-06 | 福建星网锐捷网络有限公司 | 交换机、业务处理单板及交换单板 |
CN101136730A (zh) * | 2007-10-19 | 2008-03-05 | 武汉烽火网络有限责任公司 | 一种分布式网络设备中的可靠同步方法 |
CN101483529A (zh) * | 2009-02-13 | 2009-07-15 | 北京星网锐捷网络技术有限公司 | 模块化交换机及其运行方法 |
CN101582797A (zh) * | 2009-06-15 | 2009-11-18 | 北京星网锐捷网络技术有限公司 | 管理板、双机备份系统及方法 |
WO2010045801A1 (zh) * | 2008-10-24 | 2010-04-29 | 成都市华为赛门铁克科技有限公司 | 一种存储方法与系统、终端业务板、控制板及存储通道板 |
-
2010
- 2010-11-17 CN CN2010105481809A patent/CN102006223B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119208A (zh) * | 2007-08-28 | 2008-02-06 | 福建星网锐捷网络有限公司 | 交换机、业务处理单板及交换单板 |
CN101136730A (zh) * | 2007-10-19 | 2008-03-05 | 武汉烽火网络有限责任公司 | 一种分布式网络设备中的可靠同步方法 |
WO2010045801A1 (zh) * | 2008-10-24 | 2010-04-29 | 成都市华为赛门铁克科技有限公司 | 一种存储方法与系统、终端业务板、控制板及存储通道板 |
CN101483529A (zh) * | 2009-02-13 | 2009-07-15 | 北京星网锐捷网络技术有限公司 | 模块化交换机及其运行方法 |
CN101582797A (zh) * | 2009-06-15 | 2009-11-18 | 北京星网锐捷网络技术有限公司 | 管理板、双机备份系统及方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012159339A1 (zh) * | 2011-07-21 | 2012-11-29 | 华为技术有限公司 | 网络设备加入集群系统的接口注册方法和设备 |
CN103004157A (zh) * | 2011-07-21 | 2013-03-27 | 华为技术有限公司 | 网络设备加入集群系统的接口注册方法和设备 |
CN103004157B (zh) * | 2011-07-21 | 2015-03-11 | 华为技术有限公司 | 网络设备加入集群系统的接口注册方法和设备 |
US9577871B2 (en) | 2011-07-21 | 2017-02-21 | Huawei Technologies Co., Ltd. | Method and device of interface registration for a network device to join in a cluster system |
CN103595822A (zh) * | 2013-11-26 | 2014-02-19 | 北京经纬恒润科技有限公司 | 一种数据收发方法、装置及通信设备 |
CN103595822B (zh) * | 2013-11-26 | 2019-04-26 | 北京经纬恒润科技有限公司 | 一种数据收发方法、装置及通信设备 |
CN105323289B (zh) * | 2014-08-01 | 2019-02-05 | 上海博达数据通信有限公司 | 一种基于分布式的数据同步方法 |
CN113630318A (zh) * | 2020-05-06 | 2021-11-09 | 华为技术有限公司 | 报文传输的方法和框式通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102006223B (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101542980B (zh) | 用于操作兼容以太网的现场总线设备的方法 | |
US6697379B1 (en) | System for transmitting messages to improved stations, and corresponding processing | |
KR101887581B1 (ko) | 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법 | |
CN105636234B (zh) | 一种开站方法、基站、基站控制器及开站系统 | |
CN104317765B (zh) | 一种基于串口通讯的一对多通讯系统和实现方法 | |
US9596130B2 (en) | Method and system for link switching | |
CN105324960A (zh) | 控制器局域网络灵活的数据率 | |
CN103107906B (zh) | 一种板卡间通信方法、板卡及通信机框设备 | |
CN102006223B (zh) | 卡间数据传输方法、装置及系统、板卡和分布式系统 | |
CN102497014B (zh) | 一种配电自动化系统中实现遥控命令传输的方法和装置 | |
CN105357664A (zh) | 一种无线控制系统及其数据通信方法 | |
CN103795603B (zh) | 一种基于多网卡的边缘虚拟桥接的实现方法和设备 | |
CN101699416B (zh) | 主机与多卡座读卡器的通信方法和系统 | |
CN108445788A (zh) | 一种酒店场景控制方法及相关装置 | |
CN102711272B (zh) | 一种专网通信中的数据传输方法和装置 | |
CN106357546A (zh) | 路由器集群的升级系统、方法及装置 | |
CN106162386A (zh) | 一种实现注册的方法和装置 | |
CN104243358B (zh) | Vcf系统中pe设备软件加载的方法以及装置 | |
CN102946559B (zh) | 一种数字电视终端的升级方法、终端、服务器及其系统 | |
CN102197692A (zh) | 中继系统、中继装置以及同步方法 | |
CN105282235B (zh) | 一种解决rpc在双pon口onu升级不稳定的方法 | |
CN107566143B (zh) | 一种纵向堆叠发现方法和装置 | |
CN111464346B (zh) | 基于atca架构的主备用控制板同步方法及系统 | |
CN111314448B (zh) | 基于cpa的现场保护来适配的数据通信系统及方法 | |
CN106850464A (zh) | 报文处理方法及装置 |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS Co.,Ltd. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd. |