一种基于闭合事务轨迹的异构通信接口重传控制方法、装置、设备及存储介质与流程

摘要: 本发明涉及通信协议分析、通信事务关联和发送控制,尤其涉及一种基于闭合事务轨迹确定通信资源创建边界,并据此控制异构通信接口重传的方法、装置、电子设备及计算机可读存...
一种基于闭合事务轨迹的异构通信接口重传控制方法、装置、设备及存储介质与流程

本发明涉及通信协议分析、通信事务关联和发送控制,尤其涉及一种基于闭合事务轨迹确定通信资源创建边界,并据此控制异构通信接口重传的方法、装置、电子设备及计算机可读存储介质。

背景技术:

1、云通信平台通常同时接入多个短信、语音呼叫或消息服务方。业务平台向通信服务接口提交请求后,先取得同步响应,随后还可能经回调、smpp接收链路、话单通道、sip信令通道或状态查询接口取得异步事件。不同服务方甚至同一服务方不同接口语义版本对同步响应码、响应体字段以及连接异常的含义并不一致。

2、例如,本方已经把请求主体写出后连接复位,既可能表示服务方未接收请求,也可能表示服务方已经建立消息资源或呼叫资源但同步响应未返回。若业务平台把这两类结果均视为失败并立即重新发送,可能形成第二条短信、第二次外呼或第二笔计费;若一律不重发,又会把确实未进入服务方的请求留作漏发。

3、现有实现多采用固定错误码表、固定超时重试规则或本方幂等键。固定错误码表难以覆盖服务方未文档化的中间状态,也会在接口语义版本变化后失效。本方幂等键只能约束支持并正确实现该键的服务方,不能证明上游网络中是否已经形成可独立送达的通信实例。

4、还有一种处理方式,是在同步请求结果不明确时先将通信事务置为待核对状态,再通过投递报告接口、回调事件或状态查询接口进行核对,并在预设等待期内未检出对应记录时恢复发送。该方式虽然延后了再次发送,但其否定判断仍建立在等待期内未见记录之上。当回调入口、接收绑定或事件消费链路异常时,未见记录既可能源于下游通信资源未形成,也可能源于异步事件未被本方接收,因而不能据此证明原请求止于形成通信资源之前。

5、也有接口管理方案根据请求和响应字段形成接口观测类型,或者依据历史成功率调整接口调用策略。然而,如果同步观测没有与同一通信事务的后续协议事件及异步接收通道健康记录共同闭合,则历史样本本身可能包含证据缺失;并且,在通信服务方的接口地址、适配器构建版本或响应字段集合发生变化后,原观测类型与网络执行阶段之间的对应关系也可能不再成立。

6、另一类实现把后续投递回执、话单或sip事件用于送达统计和运维分析,但通常不核验异步事件接收通道本身是否正常。当回调入口故障或接收队列积压时,简单把“没有后续事件”解释为“没有创建通信资源”,仍会作出错误重发。

7、因此,需要一种能够把同步观测和后续异步事件证据放在同一通信事务中分析、明确区分证据完整与证据缺失,并把分析结果用于当前事务重传控制的技术方案。

技术实现思路

1、本发明要解决的技术问题是:在异构通信服务接口的同步响应语义不统一、且服务方不一定支持本方幂等键的情况下,如何判断一次异常同步观测是否已经越过会产生重复通信实例的通信资源创建边界,从而在避免重复发送的同时保留必要的重传能力。

2、为解决上述技术问题,本发明在业务平台与通信服务接口之间设置协议分析网关。该网关不把单个响应码直接解释为重传指令,而是先形成能够被后续事件验证的通信事务轨迹。

3、请求记录至少保存本方事务标识、服务方标识、接口语义版本、目标通信参数摘要和写出阶段。同步观测记录至少保存连接状态、响应码、响应字段存在性以及能够取得的服务方事务标识。异步通信事件记录包括投递回执、sip会话事件、话单事件、录音任务事件或主动状态查询结果。

4、协议分析网关依据字段继承关系把上述记录拼接到同一事务轨迹。字段继承关系优先使用协议原生标识;协议原生标识不完整时,可使用经碰撞排除的复合指纹,但碰撞未被排除的轨迹不参与状态生成。

5、事务轨迹不得仅因等待时间届满而确定为闭合。轨迹必须包含协议规定或服务方接口定义的终止证据,或者包含主动状态查询得到的权威终态;同时,还要证明在针对相应通信事务所属的业务类型设置的阶段配置中启用、用于接收能够证明已形成可独立执行通信资源的事件的各异步事件接收通道在观察期间能够正常接入和消费事件。只有上述条件同时满足,缺少后续事件才具有否定意义。权威终态是指:状态查询结果能够与相应通信事务唯一关联,并且按照当前接口语义版本及阶段配置所声明的状态含义,已经对原请求是否被受理、对应通信资源是否已经形成以及是否仍存在进入通信资源创建边界的后续状态路径作出确定结论。普通查询返回的暂未查到记录、处理中、结果不完整或者查询不可用,不作为权威终态。本说明书所称“未创建且不会在后续创建”,是指查询结果不仅表明查询时点尚无对应通信资源,而且按照当前接口语义版本所定义的状态转换关系,该事务已不再具有进入通信资源创建边界的后续路径;若仍可能异步受理、继续处理或形成通信资源,则保持待确认。

6、本发明按通信服务方和接口语义版本隔离轨迹。接口语义版本可以由接口地址摘要、适配器构建版本、响应字段名集合摘要或接口描述文件摘要构成。该隔离使旧版本的历史状态不会直接套用到字段含义已经变化的新版本。

7、同步观测记录经字段归一化处理形成同步观测标识。字段归一化处理剔除随机请求标识、时间戳、通信服务方事务标识等逐事务变化字段,保留传输层写出阶段、连接关闭类型、响应码、稳定字段值和字段存在性。由此,同一类同步异常可以在多个闭合轨迹间比较。

8、有序协议阶段至少包括请求未被服务方接收、请求已被服务方接收但尚未形成独立通信资源、已形成独立通信资源、已提交承载网络、已到达接收侧以及终止。不同业务使用不同的阶段证据,但均明确通信资源创建边界。协议阶段映射子单元依据每一闭合事务轨迹的协议字段和事件顺序,分别确定该轨迹到达的最高协议阶段。

9、通信资源创建边界表示:若在相应阶段重新创建业务请求,能够形成第二个可独立执行或送达的通信实例。同一业务类型存在多个候选阶段时,将针对相应通信事务所属的业务类型、通信服务方和接口语义版本设置的阶段配置中最早能够证明独立通信实例已经形成的阶段确定为通信资源创建边界。消息业务中,该边界可由经当前接口语义版本标注为已建立独立消息资源的通信服务方消息标识加以确认;呼叫业务中,以建立被叫侧会话作为边界,被叫侧振铃事件和可唯一关联的话单会话属于到达该边界之后的跨界证据。本说明书所称跨界事件,是指能够唯一关联到相应通信事务并证明该事务已到达或越过通信资源创建边界的后续通信事件。

10、针对同一通信服务方、接口语义版本和同步观测标识,状态生成采用非对称规则。只要存在一条闭合轨迹跨越通信资源创建边界,即生成禁止重传状态。仅在不存在跨界闭合轨迹、且边界前闭合轨迹的数量不小于按通信服务方和接口语义版本分别配置的正整数阈值时,才生成允许重传状态。其余情况生成待确认状态。

11、对当前事务作出控制时,历史状态和当前观察共同参与判断。当前通信事务的同步观测标识匹配允许重传状态,并且当前观察期间在针对当前通信事务所属的业务类型设置的阶段配置中启用的各事件接收通道的接入状态和消费状态均正常、且观察截止时刻前未记录跨界事件时,生成一次重传请求;对于同步观测标识未匹配允许重传状态的当前通信事务,仅在状态查询明确表明通信服务方未受理原请求,或者未创建且不会在后续创建对应通信资源时,才生成一次重传请求。重传请求实际发送前,对相应状态记录执行条件更新,以核验状态版本和接口语义版本均未变化;仅在条件更新成功时发送,失败时停止发送并转为待确认。

12、对于待确认状态,系统不直接补发,而是调用服务方状态查询接口、延长事件观察或者转人工处理。待确认状态用于标识现有证据尚不足以确定是否重传,且不触发自动重传。

13、当接口语义版本发生变化,或者在已有状态生成后收到与该状态不一致且能够唯一关联到原事务的后续事件时,对应同步观测标识立即失效。失效后的当前事务转为待确认,并重新积累闭合轨迹。

14、与固定错误码表相比,本发明将重传判断建立在可回溯的完整事务证据上;与普通回执统计相比,本发明核验回执接收通道的可用性,并把通信资源创建边界直接用于发送控制;与单纯幂等键相比,本发明可用于服务方不支持本方幂等键的场景。

15、本发明至少具有以下有益效果:第一,减少同步超时或连接复位后形成的重复短信和重复外呼,降低额外信令、会话及消息资源占用;第二,允许对止于通信资源创建边界前的请求进行受控重传,降低漏发;第三,接口语义版本变化或与既有状态不一致的后续事件能够使旧状态失效,避免将旧接口结论用于新接口;第四,状态查询和审计记录保留每次重传决定所依据的协议证据,便于运维复核。