[发明专利]一种软件模块间的事件路由框架及方法有效
| 申请号: | 201710237608.X | 申请日: | 2017-04-12 |
| 公开(公告)号: | CN107066341B | 公开(公告)日: | 2020-08-04 |
| 发明(设计)人: | 张磊;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F12/02;G06F9/50 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 汤财宝 |
| 地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 软件 模块 事件 路由 框架 方法 | ||
本发明提供本申请提出一种软件模块间的事件路由框架及方法,所示框架包括:事件订阅层,用于通过识别软件中各模块标识信息的方式,将所述各模块中与所述标识信息对应的事件存储在所述事件订阅层的订阅者集合中;接口层,用于接收第一模块发送的事件请求,基于所述事件请求中的目标地址信息将所述事件请求发送给第二模块处理;事件处理层,用于确认事件请求中的目标地址信息所指向的事件存在于所述路由框架的订阅者集合中。本发明所述方案具有如下有益效果:1、有效的降低了软件模块间耦合所引起的内存泄漏问题;2、提高了软件模块及软件模块间代码的可维护性;3、多种消息路由机制极大的提高了路由方法的稳定性和高效性。
技术领域
本发明涉及软件事件管理技术领域,更具体地,涉及一种软件模块间的事件路由框架及方法。
背景技术
软件工程中所指的耦合是指两个或两个以上的软件模块或线程的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象。
现有技术中,软件架构设计中通常为了提高软件的可扩展性往往架构设计人员会尽可能的将软件框架中的模块与外界尽可能少的产生耦合关系,最理想的情况下是模块能够做到其他模块无耦合关联性。这样软件框架中的模块才能够实现低耦合高内聚的设计原则,但是一个模块如果尽可能少的对外暴露接口那么带来的结果就是其他模块如果想和该模块进行通信就变得异常复杂或者几乎没有通信的可能性。
所以,现有技术中亟需实现软件中各功能模块低耦合高内聚的技术方案。
发明内容
本发明为克服上述问题或者至少部分地解决上述问题,提供一种软件模块间的事件路由框架及方法。
根据本发明的一个方面与所述接口层相连,提供一种软件模块间的事件路由框架,包括事件订阅层、事件处理层和接口层:
所述事件订阅层分别与所述事件订阅层和事件处理层相连,用于通过识别软件中各模块标识信息的方式,将所述各模块中与所述标识信息对应的事件存储在所述事件订阅层的订阅者集合中;
所述接口层与所述接口层相连,用于接收第一模块发送的事件请求,基于所述事件请求中的目标地址信息将所述事件请求发送给第二模块处理;
所述事件处理层,用于确认事件请求中的目标地址信息所指向的事件存在于所述路由框架的订阅者集合中。
进一步,所述事件处理层还包括:路由机制单元,用于利用事件请求处理优先级机制、事件请求并发处理机制和事件请求缓存机制中的至少一种,进行所述事件请求的处理。
进一步,所述事件处理层还包括:
删除单元,用于实时监控所述第一模块是否发出退出路由框架的请求;当检测到所述第一模块发出退出路由框架的请求时,建立至少一个新的线程用于删除所述第一模块在所述框架中的相关事件请求信息。
进一步,所述事件订阅层还包括存储单元,用于将所述各模块中与所述标识信息对应的事件存储以静态变量的形式存储在订阅者集合中。
进一步,所述路由机制单元进一步用于:根据事件请求的优先级高低,在待处理队列中对所有事件请求进行由高到低的排序,根据排序对所述事件请求进行处理。
进一步,所述路由机制单元进一步包括用于:
S1,将多个事件请求设计为一个同步队列,在所述同步队列内设置一个锁钥对;
S2,当事件请求到达所述同步队列后,首先搜寻所述同步队列的钥匙:当成功获取钥匙时,所述同步队列将所述事件请求添加到待处理队列中,当获取钥匙失败时,将所述事件请求加入缓存队列中;
S3,通过不断触发预设事件的方式使得所述事件请求再次进入所述同步队列执行所述s2,直至该事件请求成功获取所述同步队列的钥匙。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710237608.X/2.html,转载请声明来源钻瓜专利网。





