[发明专利]即时通信系统中的消息传递跟踪方法和设备在审
申请号: | 201510527217.2 | 申请日: | 2015-08-25 |
公开(公告)号: | CN105141505A | 公开(公告)日: | 2015-12-09 |
发明(设计)人: | 李梁 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 余婧娜 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 即时 通信 系统 中的 消息 传递 跟踪 方法 设备 | ||
技术领域
本发明涉及即时通信领域,更具体地,涉及即时通信系统中的消息传递跟踪方法和设备。
背景技术
在即时通信系统中(比如:腾讯QQ,京东咚咚),一条消息从消息的发送者到达消息的接收者,这之间通常会经过至少一个应用内所包含的多个服务模块间的传递。消息在各服务模块间传递的一般实现方式是API(应用编程接口)调用。比如,不同应用之间的远程方法调用方式的API调用,系统内部同一个线程或不同线程之间的方法调用方式的API调用。由于网络的原因或者是即时通信系统内部的原因,通常都无法保证消息100%的到达。因此,在即时通信中,需要有一种可以对消息进行跟踪、识别出消息传递的路径,并定位出消息丢失位置的机制。
现有的技术方案是在各服务模块内的业务代码中以硬编码的方式增加消息传递跟踪的逻辑,使得消息传递跟踪的逻辑与正常的业务逻辑相耦合。
然而,现有的技术方案违反了系统设计的开闭原则。并且,如果消息要在同一应用内的多个服务模块之间传递或在多个应用之间传递,则需要修改应用内所包含的相应服务模块内的已有业务代码,这很可能会使现有的系统变得不稳定,也会导致消息传递跟踪逻辑和正常的业务代码产生强耦合的关系。假如不再需要对消息进行跟踪了,还要再把用于消息传递跟踪的代码给删除掉,降低了系统的可维护性。
现有的技术方案的缺点在于,需要修改即时通信系统的服务模块内的已有代码,并且使消息传递跟踪逻辑和正常的业务产生强耦合关系,导致系统的稳定性降低,维护成本增加。
因此,需要一种能够在不需要修改即时通信系统的服务模块内的已有代码的情况下实现对消息的跟踪的技术。
发明内容
针对现有技术方案的上述缺点,本发明提出了即时通信系统中的消息传递跟踪方法和设备,能够在不需要修改即时通信系统的已有代码的情况下实现对消息的跟踪。
根据本发明的一方面,提供了一种在即时通信系统中对在多个服务模块之间传递的消息进行跟踪的方法,所述方法包括,针对所述多个服务模块中的至少一个服务模块:
在消息传递至所述服务模块之前,拦截所述消息;
获取所述消息的标识;
记录所述消息的标识和所述服务模块的标识,以指示所述消息能够到达所述服务模块。
在所述服务模块不是消息传递所经过的最后一个服务模块的情况下,所述方法还包括:存储所述消息的标识,以供针对下一服务模块执行的获取步骤从中获取所述消息的标识。
在所述服务模块是消息传递所经过的第一个服务模块的情况下,获取所述消息的标识的步骤包括:生成所述消息的标识。
在所述服务模块不是消息传递所经过的第一个服务模块的情况下,获取所述消息的标识的步骤包括:获取针对前一服务模块的拦截所存储的所述消息的标识。
所述消息传递跟踪方法使用面向切面编程AOP来实现。
根据本发明的另一方面,提供了一种在即时通信系统中对在多个服务模块之间传递的消息进行跟踪的设备,所述设备用于所述多个服务模块中的至少一个服务模块,并且包括:
拦截装置,被配置为:在消息传递至一服务模块之前,拦截所述消息;
处理装置,被配置为:对拦截装置所拦截的消息进行处理,所述处理装置包括:
获取单元,被配置为:获取所述消息的标识;以及
记录单元,被配置为记录所述消息的标识和所述服务模块的标识,以指示所述消息能够到达所述服务模块。
若所述服务模块不是消息传递所经过的最后一个服务模块,所述处理装置还包括:存储单元,被配置为存储所述消息的标识,以供用于下一服务模块的所述设备中的处理装置从中获取所述消息的标识。
若所述服务模块是消息传递所经过的第一个服务模块,所述获取单元生成所述消息的标识。
若所述服务模块不是消息传递所经过的第一个服务模块,所述获取单元从用于前一服务模块中的所述设备中的存储单元获取针对前一服务模块的拦截所存储的所述消息的标识。
所述消息传递跟踪设备使用面向切面编程AOP来实现。
其中,前一服务模块对所述服务模块的服务调用类型包括以下API调用之一:同一进程中的同一线程的API调用;同一进程中的不同线程之间的API调用;不同进程之间的API调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510527217.2/2.html,转载请声明来源钻瓜专利网。