通用的GPON‑OLT系统板间通信中间件系统的制作方法

文档序号:11323075阅读:290来源:国知局
通用的GPON‑OLT系统板间通信中间件系统的制造方法与工艺

本发明涉及计算机通信领域,尤其涉及的是一种通用的gpon-olt系统板间通信中间件系统。



背景技术:

1.目前市场上商用的gpon系统使用专有的机机接口用作板间通信,gpon控制板卡与业务板卡之间的通信使用定制接口,通信双方通过私有协议达到消息解析的目的;板间通信使用商家定制的专有机机接口,系统网络节点中的发送方与接收方相互依赖高度耦合,如果有另外的网络设备加入,通信接口需要重新协商调整,不利于扩展。

2.采用分布式部署的gpon机架系统,gpon控制板卡与业务板卡之间通信大多使用基于无连接的udp协议,通信双方在各自的应用层上实现消息的发送-应答机制以满足通信可靠性要求;传输层的udp通信协议虽然网络传输数据效率较高,但是一个无状态的传输协议,数据传输不可靠,如果系统网络状态不稳定很容易丢包,并且数据的传输无法保证顺序,使用udp通信协议的板间通信系统需要在应用层上实现传输控制相关工作。

3.gpon机架系统使用嵌入式设备作为分布式部署中的网络节点,其中gpon控制板卡作为主控设备直接面向用户,gpon业务板卡与gpon控制器芯片交互实现olt的主要功能。由gpon控制板卡负责对系统中存在的多块业务板卡进行状态监控和命令配置下发;嵌入式设备通常存在系统内存较小和cpu性能不高的硬件限制,尤其在分布式部署环境下的网络节点设备,当突发大量网络数据场景下,通信接口容易阻塞导致处理效率成为瓶颈,比如某个设备在使用命令行的过程中出现较长时间的卡顿等。

因此,现有技术存在缺陷,需要改进。



技术实现要素:

本发明所要解决的技术问题是:解决现有的gpon-olt机架系统在分布式部署过程中出现的机机接口扩展性、板间通信可靠性以及通信过程中出现性能瓶颈等问题。

本发明的技术方案如下:一种通用的gpon-olt系统板间通信中间件系统,包括gpon控制板卡和若干gpon业务板卡,还包括若干板间通信中间件,各板间通信中间件作为gpon-olt机架系统中各分布式节点设备的网络适配层分别安装到gpon控制板卡和各gpon业务板卡中;其中,各板间通信中间件之间通信采用tcp网络协议的io多路复用技术实现,使用客户端-服务器模型,通信双方基于连接,由内核协议栈保证数据收发的有序性和可靠性。

应用于上述技术方案,所述的gpon-olt系统板间通信中间件系统中,其特征在于,各板间通信中间件之间通信采用观察者模式设计的高性能事件循环处理框架,完成所述gpon-olt机架系统中各分布式节点设备间的建链和断链、读写事件管理、定时事件管理。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,所述高性能事件循环处理框架为一个观察者模式的事件循环框架,通过向事件循环注册需要关注的事件观察者;并且,所述事件循环框架中,事件就绪的观察者被挑拣出来保存到事件循环中;每一事件就绪的观察者主要由一个事件挂起结构和一个事件挂起计数来维护。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,所述读写事件管理采用io事件管理,使用一条表示文件描述符读写状态的观察者链表。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,所述定时器事件管理中,管理定时器使用了最小4叉堆结构。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,各板间通信中间件内嵌于各个分布式节点设备的网络设备中,在用户程序空间预先分配连续的内存构造内存池,各板间通信中间件之间消息的接收和发送使用内存池中的分块作为载体。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,各板间通信中间件之间消息在用户程序空间的传递过程中,使用分布式消息队列对消息进行分发控制,所述分布式消息队列是一种基于观察者模式设计的零拷贝消息队列。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,所述零拷贝消息队列基于指针链表实现。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,各板间通信中间件中消息接收者作为消费者时,在用户程序空间预先分配任务线程池配合分布式消息队列实现对消息的消费控制,对时序性有要求的消息按照串行化进行处理,对无时序要求的消息进行并发处理。

应用于各个上述技术方案,所述的gpon-olt系统板间通信中间件系统中,各板间通信中间件中消息发送者作为生产者时,在构造消息过程中使用支持聚合的接口,实现将多段处于分散内存地址的消息组装发送;同时,各板间通信中间件之间通信的消息发送方支持将异步消息同步化。

采用上述方案,本发明具有以下有益的技术效果:

1.分布式系统中板间通信的发送方和接收方解耦。无论是作为发送方还是接收方,只需要跟板间通信中间件通讯,接口统一,便于维护和扩展。

2.板间通信使用基于连接提供可靠服务的tcp网络协议。由内核协议栈提供数据缓存、排序以及重传处理,降低系统板卡应用层中数据发送-应答机制的复杂度,减少了板间通信的消息量,节省了控制板卡与业务板卡之间的带宽。

3.板间通信中间件采用观察者模式设计的事件处理框架。系统需要关注的事件比如io读写、定时器等可以灵活的注册和注销,事件的监测和对事件的处理分离使得整个事件处理框架非常高效。

4.板间通信中间件中使用了多种系统优化技术,包括资源池、零拷贝和消息聚合以及观察者设计模式的消息队列等,满足嵌入式设备在板间通信高并发场景下的消息处理吞吐量和响应时延要求。

5.板间通信中间件可以根据用户应用层面的需求实现消息处理的串行化和并发控制,尽可能的避免系统操作过程中出现的拥塞,提升用户体验。

6.板间通信中间件中所采用的优化技术均满足posix接口规范,作为分布式系统中网络适配层的中间件满足跨平台兼容性。

附图说明

图1为本发明中gpon-olt机架系统板间通信结构框图;

图2为本发明中高性能事件循环处理框架图;

图3为本发明中就绪事件管理流程图;

图4为本发明中io事件管理的探测流程图;

图5为本发明中定时事件管理的探测流程图;

图6为本发明中内存池的结构图;

图7为本发明的分布式消息队列结构框图;

图8为本发明中消息处理线程池工作流程图;

图9为本发明中同步消息的发送-应答机制流程图。

具体实施方式

以下结合附图和具体实施例,对本发明进行详细说明。

本实施例提供了一种通用的高可靠性高性能gpon-olt系统板间通信中间件系统的设计方法,为解决现有的gpon-olt机架系统在分布式部署过程中出现的机机接口扩展性、板间通信可靠性以及通信过程中出现性能瓶颈等问题。

本发明中板间通信中间件作为gpon-olt机架系统中各个分布式节点设备的网络适配层被安装到gpon控制板卡和gpon业务板卡中。其中,gpon控制板卡实现对多块gpon业务板卡的调度,完成用户配置命令下发,并监控各块业务板卡的状态以及处理系统告警信息,即系统中应用层面的操作处理统一由控制板卡完成。gpon业务板卡实现对gpon控制器的操作,包括gpon系统中设备芯片以及pon口等的管理、数据业务基本功能以及设备状态的上报,其中,gpon-olt机架系统板间通信的示意图如附图1所示。

本发明使用基于tcp网络协议的io多路复用技术,结合观察者模式设计的事件框架和分布式消息队列,以及资源池和零拷贝等手段实现板间通信的高可靠性和高性能,增强系统板间通信的并发处理能力,减少资源占用,降低可能出现的信道拥塞。

本发明的技术方案为实现一个通用的高可靠性高性能的板间通信中间件,主要包括:

1.机架gpon-olt分布式系统中板间通信中间件采用tcp网络协议实现,使用客户端-服务器模型(c-s),通信双方基于连接,由内核协议栈保证数据收发的有序性和可靠性。

2.板间通信中间件采用观察者模式设计的高性能事件循环处理框架,完成分布式系统中网络设备间的建链和断链、读写事件、定时器事件等的处理。

1)整体的框架是一个观察者模式的事件循环(eventloop),通过向事件循环(eventloop)注册需要关注的事件观察者(eventwatcher),比如socket读事件,事件循环会对注册的事件观察者进行管理,当事件发生时通知事件观察者触发相应的回调,处理完之后,这些监控器进入到下一轮的监控中,框架整体流程如附图2所示;

2)就绪事件管理。事件循环框架中,事件就绪的观察者(watcher)会被挑拣出来保存到事件循环(eventloop)中。这些就绪的观察者(watcher)主要由一个事件挂起结构(pendings)和一个事件挂起计数(pendingcnt)来维护。这两个状态结构都是二维数组,第一维是优先级。其中事件挂起结构(pendings)中存的是挂起的事件实例,维护就绪的事件观察者(watcher)指针;事件挂起计数(pendingcnt)中存的是对应优先级上的事件挂起(pendings)元素的数量。在每个就绪的事件观察者(watcher)上也会有一个pending字段记录它在事件挂起结构(pendings)列表中的下标,通过事件观察者(watcher)很方便找到它在事件挂起结构(pendings)列表中的位置,方便删除。在一轮事件循环结束后,则会根据优先级,依次触发就绪的事件观察者(watcher)。就绪事件管理结构如附图3所示;

3)io事件管理。io事件管理使用一条表示文件描述符读写状态的观察者链表(iowacherlist),对文件描述符的读写状态监控只需要把对该文件描述符对应的观察者都挂上该链表即可。对io事件的探测流程如附图4所示;

4)定时器事件管理。管理定时器使用了最小4叉堆结构,具有最小定时时间的事件位于根节点,当定时器事件到时从根节点取出事件,此时根节点空缺,堆中元素需要移动位置补充,采用向下调整方式,重新构造堆结构。当新插入一个定时器事件后,该事件位于堆尾,采用向上调整方式,重新排列堆结构。定时器事件的探测流程如附图5所示。

3.各板间通信中间件内嵌于各个分布式节点设备的网络设备中,在用户程序空间预先分配连续的内存构造内存池,板间消息的接收和发送使用内存池中的分块作为载体,内存池结构如附图6所示。

4.各板间通信中间件之间消息在用户程序空间的传递过程中使用分布式消息队列对消息进行分发控制,分布式消息队列是一种基于观察者模式设计的零拷贝消息队列,其在板间通信中的功能示意如附图7所示。

5.零拷贝消息队列基于指针链表实现,相较于系统api提供的systemv消息队列接口,减少了消息传递过程中的内存拷贝,节约了系统内存,其实现原理如下所述。

1)零拷贝消息队列是一块全局数据缓冲,队列的操作涉及全局数据的互斥,队列中添加和删除节点使用了互斥锁,而实现队列在消息处理线程中的阻塞控制则使用了信号量进行同步;

2)当出现消息处理线程取零拷贝消息队列中消息为空的情况时,该零拷贝消息队列将等待信号量,该消息处理线程将被系统添加到阻塞队列;

3)当板间通信的事件框架中读取到消息并放入零拷贝消息队列时,释放信号量,2)步骤中阻塞的消息处理线程被系统从阻塞队列转移到就绪队列或者直接运行;

4)接收者在板间通信的读事件中从内存池为消息节点申请内存,并按消息类型挂链对应的零拷贝消息队列,消息处理线程中取出消息处理后释放内存;

5)消息在队列传递过程中检查传递结果,如果异常中断了消息的传递,在中断处将消息内存释放,避免内存泄漏。

6.板间通信中间件中消息接收者作为消费者时,在用户程序空间预先分配任务线程池配合分布式消息队列实现对消息的消费控制,即能够对时序性有要求的消息按照串行化进行处理,又能够对无时序要求的消息进行并发处理,消息处理线程池如附图8所示。

1)gpon控制板卡通过命令行将用于gpon业务板卡的配置等命令通过板间通信接口下发至业务板卡,由业务板卡将消息分发到线程池的消息队列中等待处理;

2)线程池中执行配置下发的消息,遍历消息队列根据消息的类型以及当前的业务板卡状态执行操作;

3)线程池中各个线程之间通过锁竞争取得线程池中消息队列的待处理消息,线程取得消息后释放锁以便其他线程继续取出消息,同时该线程在处理事件完毕后继续竞争锁资源以取得消息;

4)线程池中消息队列支持分类,其中有时序类型的消息串行执行,无时序类型的消息并发执行;

5)线程池中消息队列支持当某个类型的所有消息处理完毕后执行回调,即当该类型消息在队列中个数为0时可以执行一些清理工作;

6)线程池中消息队列支持按照消息类型分配占用线程,避免某个消息类型的处理饥饿。

7.板间通信中间件中消息发送者作为生产者时,在构造消息过程中使用支持聚合的接口(linux操作系统下为sendmsg),实现将多段处于分散内存地址的消息组装发送,减少系统中的内存拷贝。同时,板间通信的消息发送方支持将异步消息同步化,同步消息的发送-应答机制流程如附图9所示。

1)同步消息针对控制板卡与业务板卡的每一条连接(虚拟连接),使用一个零拷贝连接消息队列,以连接消息为载体将发送者发送的消息和针对该消息的响应关联起来;

2)连接消息使用时间戳作为标记消息唯一性的魔术字,以信号量实现消息同步,完成同步消息的发送-应答机制。

如此,本发明实施例实现了一个跨平台的高性能板间通信事件处理框架,采用异步io调度设计,实现在指定的事件发生后进行回调,指定的事件可以是文件描述符上的读写事件、定时器事件等。

并且,实现一个高效的分布式消息队列,采用观察者模式,消息传递过程中内存零拷贝,支持对消息按类型缓存。

同时,实现了一个高效的消息处理线程池,板间消息处理区分应用场景,既能满足对时序消息串行化处理的要求,又能满足对非时序消息处理的并发控制。

以及,实现了一个支持异步消息同步化的板间通信接口,支持分布式系统网络设备节点间同步消息的发送-应答机制。

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

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