卡间数据传输方法、装置及系统、板卡和分布式系统的制作方法

文档序号:7765493阅读:412来源:国知局
专利名称:卡间数据传输方法、装置及系统、板卡和分布式系统的制作方法
技术领域
本发明涉及数据传输技术领域,尤指一种卡间数据传输方法、装置及系统、板卡和 分布式系统。
背景技术
分布式系统中实现卡间数据传输的卡间通信,或称处理器间通信 (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)模块,拓 扑管理(T0P0)模块,路由(Routing)模块等业务模块。当一张新的业务卡插入运行中的路 由器时,主控卡上的热插拔模块感知新业务卡插入,并执行热插拔相关操作,由于主控卡预 先备份了各个先前插入的业务卡上的各个业务的信息,因此需要在热插拔模块的控制下将 各个业务的T0P0信息,路由表等同步到新插入的业务卡。其中热插拔模块可以相当于业务 A对应的业务模块,拓扑管理模块、路由模块等相当于业务B和业务N等对应的业务模块,在 业务A的控制下将业务B和业务N的信息同步到新插入的业务卡上。该过程包括1)主控卡开始执行将各个业务模块的T0P0信息同步到新插入的业务卡时,主控 卡上的热插拔模块向新插入的业务卡通告启动同步的消息。2)新插入的业务卡准备就绪后,由其包含的热插拔模块向主控卡发送消息确认可 以启动信息同步。3)主控卡上的热插拔模块通告T0P0模块可以同步,T0P0模块开始同步业务信息, 当T0P0模块同步完最后一条消息后,向主控卡上的热插拔模块报告同步完成。4)主控卡上的热插拔模块向业务卡通告T0P0模块的同步已完成。5)业务卡上的热插拔模块收到消息后,向主控卡确认可以同步下一个模块,即路 由模块的信息。6)主控卡上的热插拔模块通告路由模块可以开始同步信息,路由模块开始同步路 由表,以此类推,直至所有业务模块的信息都同步完成。在上述同步过程的第3)步中,T0P0模块在发送最后一条消息完成后便通告热插 拔模块同步已完成,但由于需要同步的T0P0信息量大或者优先级较低,此时需要同步的 T0P0模块的一些信息可能还在主控卡中T0P0模块的IPC队列中等待发送,或者业务卡收到 后还未处理。但热插拔模块的通告消息量小,优先级高,可能先被业务卡接收并处理。因此, 热插拔模块通告路由模块开始同步下一个业务模块的信息时,就可能导致上一个业务模块 T0P0模块的信息还未同步完成便开始了下一个业务模块路由模块的信息同步,可能导致路 由模块的数据丢失、数据转发故障等问题。进一步的,假如下一个业务模块必须依赖于上一 个业务模块的同步信息,因此需要在上一个业务模块同步完成后才能同步,在这种情况下, 若是可以开始同步的通告先到达会导致下一个业务模块的同步信息到达新插入的业务卡 后处理出错(被依赖的上一个业务模块的信息还未完成同步),这样系统同步便会出现故 障。可见,现有的卡间数据传输方式,不能很好的保证业务信息传输处理的顺序依赖 关系,尤其是不能保证一个业务对另一个业务的控制信息在正确的时间按正确的顺序发 送,从而可能引起数据传输出错、丢失、数据转发故障,导致业务处理逻辑混乱等问题。

发明内容
本发明实施例提供一种卡间数据传输方法、装置及系统、板卡和分布式系统,用以 解决现有技术中卡间数据传输时存在的不能保证数据的顺序依赖关系,可能引起数据传输 出错或业务处理逻辑混乱的问题。
一种卡间数据传输方法,包括业务发送端发送自身的业务数据时,将所述业务数据封装为业务消息并通过自身 的数据传输通道发送;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据 封装为包含属主标识的业务消息并通过所控制的业务的数据传输通道发送;业务接收端通过自身数据传输通道接收到业务消息,根据业务消息中包含的属主 标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。—种卡间数据传输装置,包括封装模块,用于发送自身的业务数据时,将所述业务数据封装为业务消息;发送对 其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消 息;发送模块,用于将包含业务数据的业务消息通过自身的数据传输通道发送,将包 含特殊控制数据和属主标识的业务消息通过所控制的业务的数据传输通道发送。一种卡间数据传输装置,包括接收模块,用于通过自身数据传输通道接收业务消息;处理模块,用于根据业务消息中包含的属主标识确定是包含特殊控制数据的业务 消息时,转给所述属主标识对应的其他业务接收端。一种卡间数据传输系统,包括至少一个上述包括封装模块和发送模块的卡间数据传输装置作为业务发送端;以 及至少一个上述包括接收模块和处理模块的卡间数据传输装置作为业务接收端。一种板卡,包括若干业务模块,所述业务模块中包括至少一个上述包括封装模块 和发送模块的卡间数据传输装置,和/或包括至少一个上述包括接收模块和处理模块的卡 间数据传输装置。一种分布式系统,包括至少两个上述的板卡。本发明有益效果如下本发明实施例提供的卡间数据传输方法、装置及系统、板卡和分布式系统,通过业 务发送端在发送数据时,将对其他业务的控制数据通过所控制的业务的传输通道传输,保 证了对其他业务的控制数据能够按合适的时间顺序正确的发送,即保证了数据传输的顺序 依赖关系;且该方法通过属主标识能够保证接收到的业务信息正确的分发至所属的业务接 收端,避免了接收端接收控制数据的时间出现错误和数据转发故障,从而避免了数据传输 出错和业务处理逻辑混乱等问题的发生,提高了分布式系统中各种业务同步、备份操作的 可靠性。


图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的数据同步完成后,要向业务卡发送通告该业务BE 经同步完成的特殊控制消息,则启动数据发送流程。步骤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{uintl6_t msg_dlen ;/* 消息数据块长度(Bytes),4 字节对齐 */uint8_t msg_owner ;/* 属主标识字段 */uint8_t msg_para ;/*保留,以备用作其他特殊用途*/uint32_t data
;};其中,消息数据块中即为消息包含的业务数据或特殊控制数据。其中,属主标识(msg_0Wner)字段可赋值的属主定义如下typedef enum{SRIPC_MSG_0WNER_N0NE,SRIPC_MSG_OWNER_A, /* 业务 A*/SRIPC_MSG_OWNER_B,/* 业务 B*/SRIPC_MSG_OWNER_C, /* 业务 C*/SRIPC_MSG_OWNER_MAX = 255} sr i p c_ms g_owner_t ;通过业务标识来标识属主为相应的业务或者根据实现情况复用各业务的注册信 息来标识。同时,还会在业务消息中添加步骤S103中所述的数据类型标识。
沿用上边的例子,业务A发送对业务B的特殊控制数据时,封装的业务信息中包含 特殊控制数据标识和属主标识(即业务B的标识)。 也就是说业务发送端A构造的业务消息传输通道选择应该为业务B的数据传输通 道、业务消息的数据类型标识为SRIPC_MSG_TYPE_SPECIAL、业务消息的属主标识为SRIPC_ MSG_0WNER_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,还用于接收到其他业务接收端转发过来的业务信息
12时,根据业务信息中包含的数据类型标识确定该业务消息包含的是对其他业务进行控制的 特殊控制数据时,调用数据类型标识对应的数据处理程序进行处理。优选的,上述处理模块40,还用于通过自身业务的数据传输通道接收到的业务 消息后,若根据业务消息中包含的属主标识确定是自身的业务消息时,根据业务消息中包 含的数据类型标识确定该业务消息包含的业务数据是协议控制消息数据还是普通业务数 据,并调用数据类型标识对应的数据处理程序进行处理。上述卡间数据传输装置,可以设置在板卡中能够发送对其他业务模块进行控制的 特殊控制数据的业务模块中,即可以作为业务接收端也可以作为业务发送端,上述卡间数 据传输装置仅可以作为业务发送端时,可以仅包括封装模块10和发送模块20。设置仅可以 作为业务接收端时可以仅包括接收模块30和处理模块40。即可以作为业务接收端又可以 作为业务发送端时,则包括封装模块10、发送模块20、接收模块30和处理模块40。一般情况下,板卡的各个业务模块中设置的卡间数据传输装置都会包括接收模块 30和处理模块40,来作为业务接收端使用;而封装模块10和发送模块20则可以选择包括 或者不包括在卡间数据传输装置;优选的,可以仅在能够发送对其他业务模块进行控制的 特殊控制信息的业务模块中设置的卡间数据传输装置中包括封装模块10和发送模块20。根据本发明实施例提供的上述卡间数据传输方法、装置及系统,通过业务发送端 在发送数据时,将对其他业务的控制数据通过所控制的业务的数据传输通道传输,保证了 对其他业务的控制数据能够按合适的时间顺序正确的发送,即保证了数据传输的顺序依赖 关系;避免了各自使用各自的传输通道的发送方式所存在的不能保证针对各业务的发送数 据的顺序依赖关系的问题。例如在同步数据时,起控制作用的业务发送对另一个业务的特 殊控制数据时,借用另一业务的数据传输通道,从而保证另一业务的数据完全同步完成后 才会发送该特殊控制消息,避免了特殊控制消息在同步完成前发送的接收端,因其处理逻 辑混乱的问题。且该方法通过属主标识能够保证接收到的业务信息正确的分发至所属的业务接 收端,避免了业务接收端接收特殊控制数据的时间出现错误和数据转发故障,从而避免了 数据传输出错和业务处理逻辑混乱等问题的发生,提高了分布式系统中各种业务同步、备 份操作的可靠性。本申请实施例提供的卡间数据传输方法,适用于多CPU的系统中进行多业务的数 据同步备份等操作,尤其是当前业务的数据传输必须在前一个业务的数据传输完成之后才 能执行的情况,本申请的方法能够有效的保证这种情况下的数据传输顺序,通过前一个业 务的数据传输通道在前一个业务传送完最后一个数据后传送控制信息,从而能够保证当前 业务的数据传输在前一个数据的传输完成后才会启动传输。且由于设置了属主标识,还方便数据传输故障时的调试定位,通过查看故障时的 属主标识,可以立即缩小故障排查的范围,而传统方案则难以定位哪个业务模块发生故障, 甚至根本没有意识到系统已发生故障,因此也提高了分布式各种设备各种业务同步与备份 操作的可靠性。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
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所述的板卡。
全文摘要
本发明公开了一种卡间数据传输方法、装置及系统、板卡和分布式系统,该方法包括业务发送端发送自身的业务数据时,将所述业务数据封装为业务消息并通过自身业务的数据传输通道发送;发送对其他业务进行控制的特殊控制数据时,将所述特殊控制数据封装为包含属主标识的业务消息并通过所控制的业务的数据传输通道发送;业务接收端通过自身业务的数据传输通道接收到业务消息,根据业务消息中包含的属主标识确定是包含特殊控制数据的业务消息时,转给所述属主标识对应的其他业务接收端。该方法能够保证数据传输的顺序依赖关系,避免了数据传输故障、丢失和业务处理逻辑错乱等问题。
文档编号H04L12/24GK102006223SQ201010548180
公开日2011年4月6日 申请日期2010年11月17日 优先权日2010年11月17日
发明者徐超, 陈宏涛, 马晓靖 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1