一种在客户端処理多用户并发信令跟踪的方法及系统
技术领域
本发明涉及通讯技术领域, 尤其涉及一种客户端多用户并发信令跟踪 处理方法及系统。 背景技术
信令跟踪系统是分析网元通讯结果的一种必备手段, 它可以跟踪并显 示与业务相关的信令, 极大地方便移动通讯设备的开局调试、 运营维护, 是业务问题定位的首选工具。
信令跟踪系统包括: 信令跟踪客户端、 信令跟踪服务端以及业务处理 机。 业务处理机针对各种业务, 如预付费鉴权、 定购关系鉴权、 关键字过 滤等业务, 与各个网元设备通讯, 产生各类信令消息; 信令跟踪服务端与 信令跟踪客户端之间建立一条长连接的通讯链路, 信令跟踪服务端根据信 令跟踪客户端的信令跟踪请求, 将业务处理机上报的业务产生的各类信令 消息按请求条件过滤后, 通过通讯链路发送到信令跟踪客户端; 信令跟踪 服务端通常属于业务接口机的一个关键模块; 信令跟踪客户端根据用户信 令跟踪请求条件, 向信令跟踪服务端发送信令跟踪请求; 信令跟踪客户端 对收到的信令消息, 进行解析后显示给用户。
现有的信令跟踪系统, 当信令跟踪客户端有一个用户发起信令跟踪请 求时, 信令跟踪客户端会单独的将该用户的信令跟踪请求发送给信令跟踪 服务端; 而信令跟踪服务端也会单独的对该信令跟踪请求进行响应, 单独 解析业务处理机上报的信令消息。 当多个用户同时发起信令跟踪请求时, 会出现以下问题:
1、 信令跟踪客户端与信令跟踪服务端之间的通讯链路中交互数据量增 加, 占用了大量链路带宽;
2、 信令跟踪服务端分别对信令跟踪客户端的每个用户请求进行响应, 占用了信令跟踪服务端宝贵的 CPU、 内存等资源, 对信令跟踪服务端的性 能造成一定的影响。 发明内容
本发明要解决的技术问题是提供一种客户端多用户并发信令跟踪处理 方法及系统, 用以解决现有技术在处理多用户同时发起的信令跟踪请求时, 存在占用链路带宽和系统资源较大的问题。
为解决上述技术问题, 一方面, 本发明提供一种客户端多用户并发信 令跟踪处理方法, 所述方法包括:
根据多用户并发的信令跟踪请求, 信令跟踪客户端生成统一的客户端 信令跟踪请求, 发送给信令跟踪服务端;
所述信令跟踪服务端根据所述客户端信令跟踪请求, 将满足请求条件 的信令消息发送给所述信令跟踪客户端;
所述信令跟踪客户端根据各个用户的请求条件, 分别对每个用户进行 口向应。
进一步, 所述客户端信令跟踪请求包括所有用户的信令跟踪请求; 对 于请求条件相同的信令跟踪请求, 只包括一条信令跟踪请求;
所述方法还包括: 所述信令跟踪客户端根据每个用户的唯一标识, 保 存与该用户对应的信令跟踪请求的请求条件。
进一步, 当所述多用户中的任一用户信令跟踪请求的请求条件发生变 化时, 所述方法还包括: 所述信令跟踪客户端重新生成统一的客户端信令 跟踪请求, 发送给信令跟踪服务端。
进一步, 所述信令跟踪服务端根据所述客户端信令跟踪请求, 将满足 请求条件的信令消息发送给所述信令跟踪客户端包括: 所述信令跟踪服务端解析所述客户端信令跟踪请求, 得到请求条件; 当所述请求条件为全跟踪时, 所述信令跟踪服务端将业务处理机上报 的所有信令消息, 加入到信令消息队列中; 或者, 当所述请求条件为按帐 号跟踪时, 所述信令跟踪服务端将业务处理机上报的信令消息中帐号与所 述请求条件要求的帐号相对应的信令消息, 加入到信令消息队列中; 或者, 当所述请求条件为按号段跟踪时, 所述信令跟踪服务端将业务处理机上报 的信令消息中号段与所述请求条件要求的号段相对应的信令消息, 加入到 信令消息队列中; 所述信令跟踪服务端将信令消息队列中的所有信令消息 发送给信令跟踪客户端;
当所述请求条件要求不发送信令消息时, 所述信令跟踪服务端停止向 所述信令跟踪客户端发送信令消息。
进一步, 所述信令跟踪客户端根据各个用户的请求条件, 分别对每个 用户进行响应包括:
根据每个用户的唯一标识, 构建各个用户的信令消息队列;
按信令格式解析所述信令消息;
根据各个用户的请求条件, 将满足用户请求条件的信令加入到与用户 对应的信令消息队列中。
另一方面, 本发明还提供一种客户端多用户并发信令跟踪处理系统, 所述系统包括信令跟踪客户端和信令跟踪服务端, 所述信令跟踪客户端包 括客户端信令跟踪请求生成模块和信令消息响应模块, 所述信令跟踪服务 端包括信令跟踪请求处理模块; 其中,
客户端信令跟踪请求生成模块, 用于根据多用户并发的信令跟踪请求, 生成统一的客户端信令跟踪请求, 发送给所述信令跟踪服务端;
信令跟踪请求处理模块, 用于根据所述客户端信令跟踪请求, 将满足 请求条件的信令消息发送给所述信令跟踪客户端; 信令消息响应模块, 用于根据各个用户的请求条件, 分别对每个用户 进行响应。
进一步, 所述客户端信令跟踪请求包括所有用户的信令跟踪请求; 对 于请求条件相同的信令跟踪请求, 只包括一条信令跟踪请求;
所述客户端信令跟踪请求生成模块, 进一步用于根据每个用户的唯一 标识, 保存与用户对应的信令跟踪请求的请求条件。
进一步, 所述客户端信令跟踪请求生成模块, 进一步用于当所述多用 户中的任一用户信令跟踪请求的请求条件发生变化时, 重新生成统一的客 户端信令跟踪请求, 发送给信令跟踪服务端。
进一步, 所述信令跟踪请求处理模块, 进一步用于在根据所述客户端 信令跟踪请求, 将满足请求条件的信令消息发送给所述信令跟踪客户端的 情况下,
信令跟踪请求处理模块解析所述客户端信令跟踪请求, 得到请求条件; 当所述请求条件为全跟踪时, 所述信令跟踪请求处理模块将业务处理 机上报的所有信令消息, 加入到信令消息队列中; 或者, 当所述请求条件 为按帐号跟踪时, 所述信令跟踪请求处理模块将业务处理机上报的信令消 息中帐号与所述请求条件要求的帐号相对应的信令消息, 加入到信令消息 队列中; 或者, 当所述请求条件为按号段跟踪时, 所述信令跟踪请求处理 模块将业务处理机上报的信令消息中号段与所述请求条件要求的号段相对 应的信令消息, 加入到信令消息队列中; 所述信令跟踪请求处理模块将信 令消息队列中的所有信令消息发送给信令跟踪客户端;
当所述请求条件要求不发送信令消息时, 所述信令跟踪请求处理模块 停止向所述信令跟踪客户端发送信令消息。
进一步, 所述信令消息响应模块, 进一步用于在根据各个用户的请求 条件, 分别对每个用户进行响应的情况下, 根据每个用户的唯一标识, 构建各个用户的信令消息队列; 按信令格式解析所述信令消息;
根据各个用户的请求条件, 将满足用户请求条件的信令加入到与该用 户对应的信令消息队列中。
本发明有益效果如下:
本发明在信令跟踪客户端多用户并发信令跟踪请求时, 通过集中发送 统一的客户端信令跟踪请求, 减少了信令跟踪客户端与服务端之间通讯链 路的交互数据量; 信令跟踪服务端只会对统一的客户端信令跟踪请求进行 响应, 提高服务端的处理性能。 附图说明
图 1 是本发明实施例一种客户端多用户并发信令跟踪处理方法的流程 图;
图 2 是本发明实施例一种客户端多用户并发信令跟踪处理方法中信令 跟踪客户端生成统一的客户端信令跟踪请求的流程图;
图 3 是本发明实施例一种客户端多用户并发信令跟踪处理方法中信令 跟踪服务端处理信令消息的流程图;
图 4 是本发明实施例一种客户端多用户并发信令跟踪处理方法中信令 跟踪客户端对用户进行响应的流程图;
图 5 是本发明实施例一种客户端多用户并发信令跟踪处理系统的结构 示意图。 具体实施方式
为了解决现有技术在处理多用户同时发起的信令跟踪请求时, 存在占 用链路带宽和系统资源较大的问题, 本发明提供了一种客户端多用户并发 信令跟踪处理方法及系统, 以下结合附图以及实施例, 对本发明进行进一 步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并不限定本发明。
如图 1 所示, 本发明实施例涉及一种客户端多用户并发信令跟踪处理 方法, 方法包括以下步骤:
步骤 S101 , 根据多用户并发的信令跟踪请求, 信令跟踪客户端 (以下 简称客户端)生成统一的客户端信令跟踪请求,发送给信令跟踪服务端 (以 下简称服务端)。
这里, 客户端信令跟踪请求包括所有用户的信令跟踪请求, 对于不同 用户发送的请求条件相同的信令跟踪请求, 只包括一条即可; 但客户端会 根据每个用户的唯一标示, 保存每个用户与其信令跟踪请求的映射关系。 这样信令跟踪服务端在进行相关处理时, 就会节约大量的 CPU、 内存等资 源, 而且, 也降低了信令跟踪客户端与信令跟踪服务端之间的通讯链路中 的交互数据量。 客户端发送统一的客户端信令跟踪请求, 可以间隔固定的 时间间隔发送, 也可以根据存储器的存储情况(存满或达到设定阔值)发 送, 甚至可以在满足对用户的设定条件之后进行发送。
步骤 S102 , 信令跟踪服务端根据客户端信令跟踪请求, 对业务处理机 上报的业务产生的各类信令消息按请求条件过滤后, 将满足请求条件的信 令消息发送给信令跟踪客户端。
步骤 S103 , 信令跟踪客户端根据各个用户的请求条件, 分别对每个用 户进行响应。
如图 2所示, 步骤 S101具体包括以下步骤:
首先, 需要说明的是: 客户端用户发起的信令跟踪请求, 请求类型有 两类: 即开始信令跟踪和停止信令跟踪。 信令跟踪请求的请求条件有三类, 分别是: 全跟踪、 按帐号跟踪、 按号段跟踪; 每个用户只能选择其中之一 作为开始信令跟踪的请求条件。 信令跟踪客户端, 有一块动态分配的内存, 用于保存所有正在进行信令跟踪的用户及其请求条件。 用户的唯一标识作 为主键, 映射该用户的请求条件, 这样用户与其对应的请求条件就——对 应了。
步骤 S1011 , 在信令跟踪客户端, 运行对用户信令请求监听线程, 该线 程主要负责监听客户端用户的信令跟踪请求。
步骤 S1012 , 当监听到客户端用户的信令跟踪请求时, 判断该用户的信 令跟踪请求是否为开始信令跟踪, 如果是, 则转步骤 S1013 , 如果否, 则转 步骤 S1014。
步骤 S1013 , 如果客户端有一个用户发起信令跟踪开始请求, 那么, 该 请求中必然会携带用户唯一标识和请求条件, 此时, 更新用户请求条件内 存, 将该用户唯一标识和请求条件的映射加入。
只要用户请求条件内存发生变化, 就需要重新构建客户端发送给服务 端的统一的客户端信令跟踪请求, 该请求消息定义如下表 1所示:
表 1 从用户请求条件内存中构建客户端发送给服务端的信令跟踪请求遵循 以下规则:
1.只要有一个用户请求条件是全跟踪, 则请求消息 AllTrace值等于 1 , 整个消息只有 1个字节; 否则, AllTrace值等于 0。
2.对于用户请求条件中不相同的帐号, 加入到请求消息: ItemCount 自 增 1 , 并将该帐号加入 Item[]中。
3.对于用户请求条件中不相同的号段, 加入到请求消息: NumCount自 增 1 , 并将该号段加入 Number[]中。 该号段不足 21位时, 右补二进制的零 以表示字符串的结束符。
步骤 S1014,如果客户端用户没有发起信令跟踪开始请求,那么用户是 发起信令跟踪停止请求, 该请求中必然会携带用户唯一标识, 此时, 更新 用户请求条件内存: 以用户唯一标识为主键, 将该用户唯一标识和请求条 件的映射删除。 本步骤包括两种情况, 例如: 一种情况是客户端其中的一 个用户 A对 T发起信令跟踪停止请求, 但客户端还有其它用户 B (或者多 个用户, 此处仅举一例)对 T发起信令跟踪开始请求, 对于该种情况, 客 户端将对 T发起信令跟踪开始请求包括在生成统一的客户端信令跟踪请求 中, 待服务端返回信令消息后, 客户端只对用户 B进行信令响应, 而不对 用户 A进行信令响应 (因为用户 A和请求条件的映射已删除)。 另外一种 情况是, 客户端只有用户 A对 T发起信令跟踪停止请求, 这种情况下, 客 户端将对 T发起信令跟踪停止请求包括在生成统一的客户端信令跟踪请求 中, 服务端针对该请求停止返回信令消息, 由于服务端没有返回相应的信 令消息, 所以客户端不对用户 A进行信令响应。
步骤 S1015 , 构建客户端发送给服务端的统一的客户端信令跟踪请求。 将每个用户的请求条件, 组装成一个并集条件, 该并集条件包含了所有用 户的信令跟踪请求条件, 对相同的用户请求条件, 该并集条件只包含一条; 该并集条件构成统一的客户端信令跟踪请求; 根据每个用户的唯一标识, 保存该用户的请求条件。
上述的并集条件, 当任何用户请求条件发生变化时, 需要重新组装上 述并集条件, 并重新构成统一的客户端信令跟踪请求。
步骤 S1016,信令跟踪客户端将生成统一的客户端信令跟踪请求发送给 信令跟踪服务端。
如图 3所示, 步骤 S102具体包括以下步骤: 首先需要说明的是: 在信令跟踪服务端, 分配有一块固定大小的内存, 用来存放满足客户端信令跟踪请求信令的信令消息队列。
步骤 S1021 ,在信令跟踪服务端,运行对客户端信令跟踪请求监听线程, 该线程主要负责监听客户端发送的统一信令跟踪请求。
步骤 S1022 ,解析统一的客户端信令跟踪请求。如果有客户端发送的统 一的客户端信令跟踪请求, 则解析该统一的客户端信令跟踪请求, 该请求 必然满足客户端和服务端之间的通讯协议。
步骤 S1023 ,检查统一的客户端信令跟踪请求的请求条件, 即从并集条 件中任意选择请求条件进行以下处理。
步骤 S1024, 判断该请求条件是否要求发送信令消息, 如果要求发送, 则转步骤 S1026, 如果不要求发送, 则转步骤 S1025。
步骤 S1025 , 不要求发送信令消息, 即客户端用户发起信令跟踪停止请 求。 若统一信令跟踪请求中, AllTrace字段值为 0, 且 ItemCount字段值和 NumCount字段值均为 0, 则停止服务端信令消息发送线程。
步骤 S1026,如果要求发送信令消息, 则将业务处理机上报的信令消息 按规则加入到信令消息队列。 即开始服务端信令消息发送线程, 按以下规 则将信令消息加入信令消息队列:
1、 如果 AllTrace字段值为 1 , 表明请求条件为全跟踪, 则服务端将业 务处理机上报的所有信令消息, 加入到全跟踪的信令消息队列。
2、 如果 AllTrace字段值为 0, 当请求条件为按帐号跟踪时, 则服务端 将业务处理机上报的信令消息中帐号存在于 Item[]的信令消息,加入到帐号 跟踪的信令消息队列。
3、 如果 AllTrace字段值为 0, 当请求条件为按号段跟踪时, 则服务端 将业务处理机上报的信令消息中号段存在于 Number[]的信令消息, 加入到 号段跟踪的信令消息队列。 步骤 S1027 , 当固定时间间隔或者信令消息队列满时,服务端将信令消 息队列中的所有信令消息, 发送给信令跟踪客户端。
如图 4所示, 步骤 S103具体包括以下步骤:
首先需要说明的是: 在信令跟踪客户端, 另有一块动态分配的内存, 用于保存所有正在进行信令跟踪的用户的信令消息。 用户唯一标识作为主 键, 映射与该用户对应的信令消息队列。
步骤 S1031 ,首先,在信令跟踪客户端运行对服务端信令消息监听线程, 该线程主要负责监听服务端发送给客户端的信令消息。
步骤 S1032 ,如果有服务端发送给客户端的信令消息, 则按信令格式解 析该信令消息, 解析协议满足客户端与服务端的要求。
步骤 S1033 ,按规则将信令加入到用户信令消息队列,信令跟踪客户端 循环判断保存的所有用户的信令跟踪请求条件, 按以下规则将该条信令加 入到用户信令消息队列中:
1、 若用户请求条件是全跟踪, 则将该信令加入该用户信令消息队列。 2、 若用户请求条件是按帐号跟踪, 且该信令的帐号与用户请求条件的 帐号相同, 则将该信令加入该用户信令消息队列。
3、 若用户请求条件是按号段跟踪, 且该信令的号段与用户请求条件的 号段相同, 则将该信令加入该用户信令消息队列。
4、 其它情况, 该信令不加入该用户信令消息队列。
当用户的信令消息队列满时, 需再加入新的信令时, 则丟弃该队列列 首的信令。 存储及丟弃规则釆用先进先出的规则。
步骤 S1034 ,对用户的信令跟踪请求进行响应, 即将与用户对应的信令 消息队列中的所有信令发送给用户。 客户端对用户的信令跟踪请求响应可 以是: 等待用户信令跟踪获取线程来读取该用户信令消息队列。
如图 5 所示, 本发明实施例还涉及一种客户端多用户并发信令跟踪处 理系统, 包括信令跟踪客户端 201和信令跟踪服务端 202,信令跟踪客户端 201包括客户端信令跟踪请求生成模块 2011和信令消息响应模块 2012, 信 令跟踪服务端包括信令跟踪请求处理模块 2021。
客户端信令跟踪请求生成模块 2011 , 用于根据多用户并发的信令跟踪 请求, 生成统一的客户端信令跟踪请求, 发送给信令跟踪服务端 202。 客户 端信令跟踪请求包括所有用户的信令跟踪请求, 但对于请求条件相同的信 令跟踪请求, 只包括一条; 客户端信令跟踪请求生成模块 2011根据每个用 户的唯一标识, 保存与该用户对应的信令跟踪请求的请求条件。 当多用户 中的任一用户信令跟踪请求的请求条件发生变化时, 客户端信令跟踪请求 生成模块 2011重新生成统一的客户端信令跟踪请求, 发送给信令跟踪服务 端 202。
信令跟踪请求处理模块 2021 , 用于根据客户端信令跟踪请求, 将满足 请求条件的信令消息发送给信令跟踪客户端 201。
信令消息响应模块 2012 , 用于根据各个用户的请求条件, 分别对每个 用户进行响应。
其中: 信令跟踪请求处理模块 2021根据客户端信令跟踪请求, 将满足 请求条件的信令消息发送给信令跟踪客户端 201 , 具体为:
信令跟踪请求处理模块 2021解析客户端信令跟踪请求,得到请求条件; 当请求条件为全跟踪时, 信令跟踪请求处理模块 2021将业务处理机上 报的所有信令消息, 加入到信令消息队列中; 或, 当请求条件为按帐号跟 踪时, 信令跟踪请求处理模块 2021将业务处理机上报的信令消息中帐号与 请求条件要求的帐号相对应的信令消息, 加入到信令消息队列中; 或, 当 请求条件为按号段跟踪时, 信令跟踪请求处理模块 2021将业务处理机上报 的信令消息中号段与请求条件要求的号段相对应的信令消息, 加入到信令 消息队列中; 信令跟踪请求处理模块 2021将信令消息队列中的所有信令消 息发送给信令跟踪客户端;
或, 当请求条件要求不发送信令消息, 则信令跟踪请求处理模块 2021 停止向信令跟踪客户端发送信令消息。
其中, 信令消息响应模块 2012根据各个用户的请求条件, 分别对每个 用户进行响应, 具体为:
根据每个用户的唯一标识, 构建各个用户的信令消息队列;
按信令格式解析信令消息;
根据各个用户的请求条件, 将满足用户请求条件的信令加到与该用户 的信令消息队列中。
由上述实施例可以看出: 本发明在信令跟踪客户端多用户并发信令跟 踪请求时, 通过集中发送统一的客户端信令跟踪请求, 减少了信令跟踪客 户端与服务端之间通讯链路的交互数据量; 信令跟踪服务端只会对统一的 客户端信令跟踪请求进行响应, 提高服务端的处理性能。
尽管为示例目的, 已经公开了本发明的优选实施例, 本领域的技术人 员将意识到各种改进、 增加和取代也是可能的, 因此, 本发明的范围应当 不限于上述实施例。
引用的专利 | 申请日期 | 公开日 | 申请人 | 专利名 |
---|---|---|---|---|
CN1988709A * | 2006年12月7日 | 2007年6月27日 | 中兴通讯股份有限公司 | 信令跟踪装置 |
CN101232691A * | 2007年1月24日 | 2008年7月30日 | 中兴通讯股份有限公司 | 信令跟踪方法及装置 |
CN101667928A * | 2009年9月25日 | 2010年3月10日 | 中兴通讯股份有限公司 | 客户端、信令跟踪服务器、协议模块和信令跟踪方法 |
EP1766943A2 * | 2005年6月6日 | 2007年3月28日 | Cisco Technology, Inc. | System and method for end-to-end communications tracing |