CN109286608A - 调用链处理方法、装置及存储设备、计算机设备 - Google Patents
调用链处理方法、装置及存储设备、计算机设备 Download PDFInfo
- Publication number
- CN109286608A CN109286608A CN201810947314.0A CN201810947314A CN109286608A CN 109286608 A CN109286608 A CN 109286608A CN 201810947314 A CN201810947314 A CN 201810947314A CN 109286608 A CN109286608 A CN 109286608A
- Authority
- CN
- China
- Prior art keywords
- request
- information
- call
- identification information
- sdk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明提供一种调用链处理方法、装置及存储设备、计算机设备,所述方法包括:调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息;所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;所述调用方系统向所述服务方系统发送所述调用请求;所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。上述方法可形成基于SDK的完整的调用链,可以完整地记录一个复杂的调用过程,给多个关联系统的开发,运行,维护以及问题追溯带来便利。
Description
技术领域
本发明涉及通信技术领域,具体而言,本发明涉及一种调用链处理方法、装置及存储设备、计算机设备。
背景技术
应用系统调用中经常出现不同的系统之间的跳转。要实现系统之间的跳转,调用方系统和服务方系统之间会生成调用链。如果系统调用出现故障,可根据对调用链的追踪分析,查找信息调用过程中的问题所在,以针对出现的问题恢复完整的系统调用。
然而,如果系统之间的调用链不加以处理,调用链是不完整的。不完整的调用链会使得一个复杂的调用过程难以被记录,会对多个关联系统的开发,运行,维护以及问题追溯等造成很大障碍。同时,不合理的调用日志记录会大大降低历史数据的价值。
发明内容
本发明提出一种调用链处理方法、装置及存储设备、计算机设备,以形成完整的调用链,从而完整地记录一个复杂的调用过程,给多个关联系统的开发,运行,维护以及问题追溯带来便利。
本发明提供以下方案:
一种调用链处理方法,包括:调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息;所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;所述调用方系统向所述服务方系统发送所述调用请求;所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。
在其中一个实施例中,所述标识信息包括所述调用请求的上下文信息;所述SDK将所述标识信息封装进帧结构的请求头,包括:所述SDK将所述上下文信息封装进所述帧结构的请求头。
在其中一个实施例中,所述预设网络协议为http协议或https协议。
在其中一个实施例中,所述调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息之后,还包括:确认所述标识信息已封装进发送所述帧结构的请求头,销毁所述NDC。
在其中一个实施例中,所述服务方系统为集成pafa框架的Portal系统。
在其中一个实施例中,所述调用请求包括所述调用方系统向所述服务方系统发送连接请求、所述服务方系统向所述调用方系统发送回应连接请求以及所述调用方系统向所述服务方系统发送应答请求;所述帧结构包括用于发送所述连接请求的支持第一网络协议的第一帧结构、用于发送所述应答请求的支持第二网络协议的第二帧结构;所述标识信息包括第一标识信息和第二标识信息;所述调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息,所述SDK将所述标识信息封装进帧结构的请求头,包括:所述调用方系统的SDK通过NDC获取所述调用方系统的第一标识信息,所述SDK将所述第一标识信息封装进所述第一帧结构的请求头;和/或,所述调用方系统的SDK通过NDC获取所述调用方系统的第二标识信息,所述SDK将所述第二标识信息封装进所述第二帧结构的请求头。
在其中一个实施例中,所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中之后,还包括:所述服务方系统对所述第一标识信息和所述第二标识信息进行校验;若校验成功,所述服务方系统保留设置进所述调用链的调用信息中的所述第一标识信息和所述第二标识信息;若校验失败,所述服务方系统向所述调用方系统发送调用链标识信息错误的信息,且将所述第一标识信息和所述第二标识信息从所述调用链的调用信息中移除。
一种调用链处理装置,包括:获取模块,用于调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息;封装模块,用于所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;发送模块,用于所述调用方系统向所述服务方系统发送所述调用请求;解析模块,用于所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。
一种存储设备,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述任一实施例所述的调用链处理方法。
一种计算机设备,其包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据上述任一实施例所述的调用链处理方法。
上述调用链处理方法,调用方系统的SDK借助NDC获取自身系统发送调用请求时的标识信息,并将该标识信息封装进帧结构的请求头中。其中,此处的帧结构为用于发送调用请求的支持预设网络协议的帧结构。调用方系统向服务方系统发送携带标识信息的调用请求,服务方系统接收到该调用请求之后,从调用请求对应的帧结构的请求头中解析出该标识信息,并将该标识信息设置到根据所述调用请求生成的调用链的调用信息中,从而形成基于SDK的完整的调用链,该调用链的调用信息中包含有调用方系统的标识信息,因此该调用链可以完整地记录一个复杂的调用过程,给多个关联系统的开发,运行,维护以及问题追溯带来便利。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明提供的一种调用链处理方法的一实施例中的方法流程图;
图2为本发明提供的一种调用链处理方法的另一实施例中的方法流程图;
图3为本发明提供的一种调用链处理方法的一实施例中的应用场景框图;
图4为本发明提供的一种调用链处理方法的再一实施例中的方法流程图;
图5为本发明提供的一种调用链处理方法的另一实施例中的应用场景框图;
图6为本发明提供的一种调用链处理装置的一实施例中的结构框图;
图7为本发明提供的一种计算机设备的一实施例中的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
Log4j:Apache的一个开源项目。Log4j是Apache为Java提供的日志管理工具,是一个日志组件,与System.out.println()的作用相似,用来跟踪、调试、维护程序。Log4j自带的两个类,MDC和NDC。
MDC:Mapped Diagnostic Context,映射调试上下文。
NDC:Nested Diagnostic Context,嵌套诊断环境。
SDK:Software Development Kit,软件开发工具包。
不同的应用系统之间的跳转,如果不加以处理,调用链是不完整的。其中每个系统一个单独的调用链。为了解决调用链完整性问题,本发明基于log4j的NDC实现跨平台生成完整调用链。具体地,本发明提供一种调用链生成方法,以基于所述log4j的NDC生成完整的调用链。
在一实施例中,如图1所示,该调用链生成方法包括以下步骤:
S100,调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息。
调用方系统向服务方系统发出调用请求时,系统会生成对应的调用链。在本实施例中,调用方系统的SDK包括基于调用方系统功能实现的多个功能模块,每个功能模块用于实现与调用方系统的数据信息交互。SDK无需获取调用方系统的相关信息,直接提供API(Application Programming Interface,应用程序编程接口),供调用方系统直接使用,减少可能重复且复杂的处理过程。
NDC是log4j用于存储应用程序的上下文信息(context infomation)的组件,便于log4j在log中使用NDC存储的上下文信息。NDC采用了一个类似栈的机制存储上下文信息。NDC中每一个线程独立储存上下文信息。比如,一个servlet(Server Applet,服务连接器)针对每一个request对象创建对应的NDC,储存客户端地址等信息。
该实施例中,调用方系统的SDK通过NDC获取调用方系统向服务方系统发送调用请求时的标识信息。标识信息可以是调用请求中的请求上下文信息,或者其他用于识别出该调用方系统的标识信息。在本实施例的实施方式中,所述标识信息包括所述调用请求的上下文信息。步骤S100包括:所述SDK将所述上下文信息封装进所述帧结构的请求头。具体地,调用方系统的SDK可以通过request对象获取调用方系统向服务方系统发送调用请求时的请求上下文信息作为所述标识信息。
S200,所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求。
调用方系统的SDK获取到调用方系统发送的调用请求的标识信息之后,将该标识信息push(汇编术语,实现压入操作的push指令)到NDC中,借助NDC将该标识信息进行封装。之后,调用方系统向服务方系统发送调用请求时,直接通过SDK的API接口,从SDK中将封装好的标识信息,再次封装进帧结构中。此处的帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;其中,预设网络协议可为http协议,或者https协议等。
S300,所述调用方系统向所述服务方系统发送所述调用请求。
在本实施例中,调用方系统向服务方系统发送所述调用请求,服务方系统根据调用方系统的请求生成调用链的相关调用信息。服务方系统对所述调用请求响应应答之后,请求再次回答调用方系统,三次握手之后生成对应请求的调用链。
S400,所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。
在本实施例中,调用方系统发送的调用请求到达服务方系统时,服务方系统从所述帧结构的请求头中解析出所述标识信息。并且,服务方系统将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。具体为,服务方系统将调用方系统的调用请求的标识信息设置到服务方系统中根据调用方系统发送的调用请求对应的同一次调用信息中。当调用方系统发送的请求得到应答时,请求回到调用方系统的SDK中。因为调用方系统的一次调用流程还未完成,因此当次请求的标识信息并未被销毁,此时,可生成一条基于SDK的完整的调用链。该调用链中包含有调用方系统的标识信息,方便研发人员后续根据调用链进行问题追踪。
其中,调用方系统向服务方系统发送调用请求时,根据TCP的三次握手,两系统之间存在请求与应答的过程。本实施例所述的同一次调用信息,指的是系统之间同一个请求与应答的过程中调用请求的相关信息。
在本实施例中,所述服务方系统为集成pafa框架的Portal系统。调用方的SDK对应的服务方系统是pafa框架的Portal系统,凡是到达Portal系统的调用请求中,在特定请求头中携带有上下文信息时,Portal系统可以自动将上下文信息解析。
在一实施例中,如图2所示,步骤S200之后,还包括步骤:
S210,确认所述标识信息已封装进所述帧结构的请求头,销毁所述NDC。
在该实施例中,调用请求的数据在SDK中借助NDC封存。在发送调用请求时,调用方系统的SDK从NDC中取出并封装进支持http协的帧结构议的请求头中,同时销毁NDC。
在一实施例中,如图3所示,所述调用请求包括调用方系统10向服务方系统20发送连接请求、服务方系统20向调用方系统10发送回应连接请求以及调用方系统10向服务方系统20发送应答请求。也即是,网络请求中所谓的“三次握手”。即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。对应的,所述帧结构包括用于发送所述连接请求的支持第一网络协议的第一帧结构、用于发送所述应答请求的支持第二网络协议的第二帧结构。
其中,所述标识信息包括第一标识信息和第二标识信息。所述调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息,所述SDK将所述标识信息封装进所述帧结构的请求头,包括:
所述调用方系统的SDK通过NDC获取所述调用方系统的第一标识信息,所述SDK将所述第一标识信息封装进所述第一帧结构的请求头;和/或,所述调用方系统的SDK通过NDC获取所述调用方系统的第二标识信息,所述SDK将所述第二标识信息封装进所述第二帧结构的请求头。
具体地,如图3所示,调用方系统10的SDK可以将其中的第一标识信息封装进“第一次握手”的支持连接请求的网络协议的帧结构的请求头中,将第一标识信息发送到服务方系统20。服务方系统20解析出第一标识信息,并将该第一标识信息设置进生成的调用链的调用信息中。或者,调用方系统10的SDK可以将其中的第二标识信息封装进“第三次握手”的支持应答请求的网络协议的帧结构的请求头中,将第二标识信息发送到服务方系统20。服务方系统20解析出第二标识信息,并将该第二标识信息设置进的调用链的调用信息中。其中,第一标识信息和第二标识信息可以相同,也可以不相同。
在一实施例中,如图4所示,步骤S100包括步骤S101:调用方系统的SDK通过NDC获取所述调用方系统的第一标识信息和第二标识信息。步骤S200包括步骤S201:所述SDK将所述第一标识信息封装进所述第一帧结构的请求头;和,所述SDK将所述第二标识信息封装进所述第二帧结构的请求头。
参见图3所示,调用方系统10的SDK可以将其中的第一标识信息封装进“第一次握手”的支持连接请求的网络协议的帧结构的请求头中,将第一标识信息发送到服务方系统20。服务方系统20解析出第一标识信息,并将该第一标识信息设置进生成的调用链的调用信息中。同时,调用方系统10的SDK可以将其中的第二标识信息封装进“第三次握手”的支持应答请求的网络协议的帧结构的请求头中,将第二标识信息发送到服务方系统20。服务方系统20解析出第二标识信息,并将该第二标识信息设置进所述调用链的调用信息中。进一步地,服务方系统20将第一标识信息和第二标识信息进行识别。若第一标识信息和第二标识信息相同,则控制所述同一次调用信息中只存储一次的标识信息。若第一标识信息和第二标识信息不相同,则控制所述同一次调用信息中存储两次的标识信息。
在该实施例的具体实施方式中,服务方系统20解析出第一标识信息和第二标识信息之后,还包括:所述服务方系统对所述第一标识信息和所述第二标识信息进行校验;若校验成功,所述服务方系统保留设置进所述调用链的调用信息中的所述第一标识信息和所述第二标识信息;若校验失败,所述服务方系统向所述调用方系统发送调用链标识信息错误的信息,且将所述第一标识信息和所述第二标识信息从所述调用链的调用信息中移除。
具体地,第一标识信息和第二标识信息为不同的两个标识信息。两个标识信息中均保留有调用方系统10的属性信息。服务方系统20从第一标识信息和第二标识信息中读取出调用方系统10的属性信息进行互相校验。若校验出从两个标识信息中读取的属性信息均确认为调用方系统10的属性信息,则校验成功。将服务方系统20保留设置在调用链的调用信息中的第一标识信息和第二标识信息。若校验出从两个标识信息中读取的属性信息有一方的属性信息确认为不是同一个系统(调用方系统10)的属性信息,则校验失败。服务方系统20向调用方系统10发送调用链标识信息错误的信息,且将第一标识信息和第二标识信息从所述调用链的调用信息中移除,以待后续确认接收到的标识信息为调用方系统10的标识信息时,再将标识信息设置进所述调用链的调用信息中。
以下针对上述调用链生成方法在应用系统中的使用场景进行进一步详述。在一实施例中,参见图5所示:
本发明所述的调用方系统为附图中的关联方系统,服务方系统为Portal系统。Portal系统是平安人寿金管家这边的门户系统。在本实施例的应用场景中,关联方系统的SDK的服务方系统是Portal系统。来自关联方系统的SDK的请求都会到达Portal系统。凡是集成了pafa框架的系统,都可以正确解析并处理SDK的特有请求。
pafa框架是平安基础架构(Ping An Foundation Architecture)的简写,其并不是一个可以即时看见和运行的应用系统。pafa框架为构建于J2EE之上的应用系统,该应用系统定义了一个固定而有效的设计开发框架,简化J2EE应用,尤其是平安内部应用的开发过程。
pafa框架定义了一系列流程,比如对如何处理HTTP请求、事务控制,以及一些通用功能;比如文件上传、数据校验、消息管理、日志功能等。pafa框架的最终目标是为开发人员提供一个填空式的开发框架。让开发人员在pafa框架下,只需关注编写和具体业务逻辑相关的程序,而将业务无关的需求(非功能需求,non-functional requirement)交给pafa框架来完成。
本发明所述的标识信息为调用请求的上下文信息。如图5所示,关联方系统对应的SDK借助NDC将关联方系统向Portal系统发送调用请求时的请求上下文信息进行封装。在关联方系统向Portal系统发送调用请求时,其SDK通过Request对象获取封装的请求上下文信息。进一步地,SDK将封装的请求上下文信息封装进支持关联方系统发送的调用请求的http协议的帧结构的请求头中,随着调用请求发送到Portal系统。Portal系统为基于pafa框架的系统,可从支持http协议的帧结构的请求头中解析出请求上下文信息,并将该请求上下文信息设置进调用链的调用信息中。具体地,关联方系统的请求上下文信息包括请求线程号、时间戳及对应请求的特定其他必要信息。关联方系统设置有集成的SDK,通过SDK中的调用方法,例如通过SDK的request对象获取关联方系统发送请求处理的请求上下文信息,并将请求的上下文信息放入NDC中。此时,SDK会将关联方的请求上下文信息封装进支持http协议的帧结构的请求头“x-iCore_fa-transferContextContainer”中,带到Porta系统中,因此关联方系统无需做此类操作。
最终关联方系统通过NDC将请求上下文信息数据放到http协议对应的帧结构的请求头。基于pafa框架的Porta系统持解析该请求头的数据。因此,当请求到达Porta系统时,Porta系统将关联方系统的请求上下文信息设置到Porta系统的调用链的同一次调用信息中。http协议的请求得到应答时,请求回到关联方的SDK中,此时关联方系统的一次调用流程还未完成,因此当次请求的上下文信息并未被销毁,从而形成基于SDK的完整调用链。
本方案将关联方系统发送的请求数据,本发明实施例所述的请求上下文信息,在其SDK中借助NDC进行封存。在发送请求时,从NDC中取出并封装进支持http协议的帧结构的请求头中。SDK的服务方系统为Portal系统,凡是到达Portal系统的请求,在特定请求头中携带有请求上下文信息时,Portal系统自动解析,并设置进同一次调用链的调用信息中,从而生成一条完整的调用链。
调用过程中,各系统会在关键节点打印日志信息,此时,如果某个调用过程出现问题,可以从源头进行问题排查。完整的调用链会使得一个复杂的调用过程完整的被记录,对多个关联系统的开发,运行,维护以及问题追溯等带来方便。
本发明还提供一种调用链处理装置。在一实施例中,如图6所示,该调用链生成装置包括获取模块100、封装模块200、发送模块300和解析模块400。
获取模块100用于调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息。调用方系统向服务方系统发出调用请求时,系统会生成对应的调用链。在本实施例中,调用方系统的SDK包括基于调用方系统功能实现的多个功能模块,每个功能模块用于实现与调用方系统的数据信息交互。SDK无需获取调用方系统的相关信息,直接提供API(Application Programming Interface,应用程序编程接口),供调用方系统直接使用,减少可能重复且复杂的处理过程。
NDC是log4j用于存储应用程序的上下文信息(context infomation)的组件,便于log4j在log中使用NDC存储的上下文信息。NDC采用了一个类似栈的机制存储上下文信息。NDC中每一个线程独立储存上下文信息。比如,一个servlet(Server Applet,服务连接器)针对每一个request对象创建对应的NDC,储存客户端地址等信息。
该实施例中,调用方系统的SDK通过NDC获取调用方系统向服务方系统发送调用请求时的标识信息。标识信息可以是调用请求中的请求上下文信息,或者其他用于识别出该调用方系统的标识信息。在本实施例的实施方式中,所述标识信息包括所述调用请求的上下文信息。所述获取模块100还用于所述SDK将所述上下文信息封装进所述帧结构的请求头。具体地,调用方系统的SDK可以通过request对象获取调用方系统向服务方系统发送调用请求时的请求上下文信息作为所述标识信息。
封装模块200用于所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求。调用方系统的SDK获取到调用方系统发送的调用请求的标识信息之后,将该标识信息push(汇编术语,实现压入操作的push指令)到NDC中,借助NDC将该标识信息进行封装。之后,调用方系统向服务方系统发送调用请求时,直接通过SDK的API接口,从SDK中将封装好的标识信息,再次封装进帧结构中。此处的帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;其中,预设网络协议可为http协议,或者https协议等。
发送模块300用于所述调用方系统向所述服务方系统发送所述调用请求。在本实施例中,调用方系统向服务方系统发送所述调用请求,服务方系统根据调用方系统的请求生成调用链的相关调用信息。服务方系统对所述调用请求响应应答之后,请求再次回答调用方系统,三次握手之后生成对应请求的调用链。
解析模块400用于用于所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。在本实施例中,调用方系统发送的调用请求到达服务方系统时,服务方系统从所述帧结构的请求头中解析出所述标识信息。并且,服务方系统将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。具体为,服务方系统将调用方系统的调用请求的标识信息设置到服务方系统中根据调用方系统发送的调用请求对应的同一次调用信息中。当调用方系统发送的请求得到应答时,请求回到调用方系统的SDK中。因为调用方系统的一次调用流程还未完成,因此当次请求的标识信息并未被销毁,此时,可生成一条基于SDK的完整的调用链。该调用链中包含有调用方系统的标识信息,方便研发人员后续根据调用链进行问题追踪。
其中,调用方系统向服务方系统发送调用请求时,根据TCP的三次握手,两系统之间存在请求与应答的过程。本实施例所述的同一次调用信息,指的是系统之间同一个请求与应答的过程中调用请求的相关信息。
在本实施例中,所述服务方系统为集成pafa框架的Portal系统。调用方的SDK对应的服务方系统是pafa框架的Portal系统,凡是到达Portal系统的调用请求中,在特定请求头中携带有上下文信息时,Portal系统可以自动将上下文信息解析。
在其他实施例中,本发明提供的调用链处理装置中的各个模块还用于执行本发明所述的调用链处理方法中,对应各个步骤执行的操作,在此不再做详细的说明。
本发明还提供一种存储介质。该存储介质上存储有计算机程序;所述计算机程序被处理器执行时,实现上述任一实施例所述的调用链处理方法。该存储介质可以是存储器。例如,内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储介质包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
本发明还提供一种计算机设备。一种计算机设备包括:一个或多个处理器;存储器;一个或多个应用程序。其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述任一实施例所述的调用链处理方法。
图7为本发明一实施例中的计算机设备的结构示意图。本实施例所述计算机设备可以是服务器、个人计算机以及网络设备。如图7所示,设备包括处理器703、存储器705、输入单元707以及显示单元709等器件。本领域技术人员可以理解,图7示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器705可用于存储应用程序701以及各功能模块,处理器703运行存储在存储器705的应用程序701,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元707用于接收信号的输入,以及接收用户输入的关键字。输入单元707可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元709可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元709可采用液晶显示器、有机发光二极管等形式。处理器703是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器703内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
在一实施方式中,设备包括一个或多个处理器703,以及一个或多个存储器705,一个或多个应用程序701。其中所述一个或多个应用程序701被存储在存储器705中并被配置为由所述一个或多个处理器703执行,所述一个或多个应用程序701配置用于执行以上实施例所述的调用链处理方法。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种调用链处理方法,其特征在于,包括:
调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息;
所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;
所述调用方系统向所述服务方系统发送所述调用请求;
所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。
2.根据权利要求1所述的方法,其特征在于,所述标识信息包括所述调用请求的上下文信息;所述SDK将所述标识信息封装进帧结构的请求头,包括:
所述SDK将所述上下文信息封装进所述帧结构的请求头。
3.根据权利要求1所述的方法,其特征在于,所述预设网络协议为http协议或https协议。
4.根据权利要求1所述的方法,其特征在于,所述调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息之后,还包括:
确认所述标识信息已封装进发送所述帧结构的请求头,销毁所述NDC。
5.根据权利要求1所述的方法,其特征在于,所述服务方系统为集成pafa框架的Portal系统。
6.根据权利要求1所述的方法,其特征在于,所述调用请求包括所述调用方系统向所述服务方系统发送连接请求、所述服务方系统向所述调用方系统发送回应连接请求以及所述调用方系统向所述服务方系统发送应答请求;所述帧结构包括用于发送所述连接请求的支持第一网络协议的第一帧结构、用于发送所述应答请求的支持第二网络协议的第二帧结构;所述标识信息包括第一标识信息和第二标识信息;
所述调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息,所述SDK将所述标识信息封装进帧结构的请求头,包括:所述调用方系统的SDK通过NDC获取所述调用方系统的第一标识信息,所述SDK将所述第一标识信息封装进所述第一帧结构的请求头;和/或,
所述调用方系统的SDK通过NDC获取所述调用方系统的第二标识信息,所述SDK将所述第二标识信息封装进所述第二帧结构的请求头。
7.根据权利要求6所述的方法,其特征在于,所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中之后,还包括:
所述服务方系统对所述第一标识信息和所述第二标识信息进行校验;
若校验成功,所述服务方系统保留设置进所述调用链的调用信息中的所述第一标识信息和所述第二标识信息;
若校验失败,所述服务方系统向所述调用方系统发送调用链标识信息错误的信息,且将所述第一标识信息和所述第二标识信息从所述调用链的调用信息中移除。
8.一种调用链处理装置,其特征在于,包括:
获取模块,用于调用方系统的软件开发工具包SDK通过嵌套诊断环境NDC获取所述调用方系统的标识信息;
封装模块,用于所述SDK将所述标识信息封装进帧结构的请求头,所述帧结构为用于发送调用请求的支持预设网络协议的帧结构,所述调用请求为所述调用方系统向服务方系统发送调用的请求;
发送模块,用于所述调用方系统向所述服务方系统发送所述调用请求;
解析模块,用于所述服务方系统从所述请求头中解析出所述标识信息,并将所述标识信息设置到根据所述调用请求生成的调用链的调用信息中。
9.一种存储设备,其特征在于,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述权利要求1至7中任一项所述的调用链处理方法。
10.一种计算机设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据权利要求1至7任一项所述的调用链处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810947314.0A CN109286608B (zh) | 2018-08-20 | 2018-08-20 | 调用链处理方法、装置及存储设备、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810947314.0A CN109286608B (zh) | 2018-08-20 | 2018-08-20 | 调用链处理方法、装置及存储设备、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109286608A true CN109286608A (zh) | 2019-01-29 |
CN109286608B CN109286608B (zh) | 2022-08-12 |
Family
ID=65183759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810947314.0A Active CN109286608B (zh) | 2018-08-20 | 2018-08-20 | 调用链处理方法、装置及存储设备、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109286608B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003472A (zh) * | 2022-01-04 | 2022-02-01 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404867A (zh) * | 2010-09-07 | 2012-04-04 | 北京卓易讯畅科技有限公司 | 一种用于基于标识在设备间建立连接的方法和设备 |
US20120131354A1 (en) * | 2009-06-22 | 2012-05-24 | Barclays Bank Plc | Method and system for provision of cryptographic services |
US20140280771A1 (en) * | 2006-09-22 | 2014-09-18 | Oracle International Corporation | Mobile applications |
CN105573900A (zh) * | 2015-12-17 | 2016-05-11 | 南京亚派科技股份有限公司 | 一种系统日志配置和记录方法 |
CN106375458A (zh) * | 2016-09-08 | 2017-02-01 | 上海银天下科技有限公司 | 服务调用系统、方法及装置 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107135128A (zh) * | 2017-06-28 | 2017-09-05 | 努比亚技术有限公司 | 调用链数据采集方法、移动终端及计算机可读存储介质 |
CN107302526A (zh) * | 2017-06-07 | 2017-10-27 | 努比亚技术有限公司 | 系统接口调用方法、设备和计算机可读存储介质 |
CN107733710A (zh) * | 2017-10-17 | 2018-02-23 | 平安科技(深圳)有限公司 | 链路调用关系的构建方法、装置、计算机设备及存储介质 |
CN108173915A (zh) * | 2017-12-21 | 2018-06-15 | 中国联合网络通信集团有限公司 | 调用链处理方法及装置 |
-
2018
- 2018-08-20 CN CN201810947314.0A patent/CN109286608B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280771A1 (en) * | 2006-09-22 | 2014-09-18 | Oracle International Corporation | Mobile applications |
US20120131354A1 (en) * | 2009-06-22 | 2012-05-24 | Barclays Bank Plc | Method and system for provision of cryptographic services |
CN102404867A (zh) * | 2010-09-07 | 2012-04-04 | 北京卓易讯畅科技有限公司 | 一种用于基于标识在设备间建立连接的方法和设备 |
CN105573900A (zh) * | 2015-12-17 | 2016-05-11 | 南京亚派科技股份有限公司 | 一种系统日志配置和记录方法 |
CN106375458A (zh) * | 2016-09-08 | 2017-02-01 | 上海银天下科技有限公司 | 服务调用系统、方法及装置 |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107302526A (zh) * | 2017-06-07 | 2017-10-27 | 努比亚技术有限公司 | 系统接口调用方法、设备和计算机可读存储介质 |
CN107135128A (zh) * | 2017-06-28 | 2017-09-05 | 努比亚技术有限公司 | 调用链数据采集方法、移动终端及计算机可读存储介质 |
CN107733710A (zh) * | 2017-10-17 | 2018-02-23 | 平安科技(深圳)有限公司 | 链路调用关系的构建方法、装置、计算机设备及存储介质 |
CN108173915A (zh) * | 2017-12-21 | 2018-06-15 | 中国联合网络通信集团有限公司 | 调用链处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
WEI XU,FANGFANG ZHANG,SENCUN ZHU: "Permlyzer:Analyzing permission usage in Android applications", 《IEEE》 * |
柴林鹏,张斌,刘洋,孙佳佳: "面向隐私保护的服务调用安全认证协议设计", 《网络与信息安全学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003472A (zh) * | 2022-01-04 | 2022-02-01 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114003472B (zh) * | 2022-01-04 | 2022-04-12 | 连连(杭州)信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109286608B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200249920A1 (en) | Development Environment for Real-Time Dataflow Programming Language | |
CN111625452B (zh) | 流量回放方法和系统 | |
CN103927253B (zh) | 多浏览器兼容性测试方法及系统 | |
CN105556482B (zh) | 监视移动应用性能 | |
US11042471B2 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
US20130298110A1 (en) | Software Visualization Using Code Coverage Information | |
US8155959B2 (en) | Dialog system for human agent to correct abnormal output | |
CN109783342A (zh) | 脚本调试方法、设备及计算机存储介质 | |
CN110944048B (zh) | 业务逻辑配置方法及装置 | |
US10229682B2 (en) | Cognitive intervention for voice recognition failure | |
US20090119586A1 (en) | Automatic Generation of Interactive Systems From a Formalized Description Language | |
CN109144856A (zh) | 一种ui自动化测试方法、计算设备及存储介质 | |
CN106909498A (zh) | 一种Java程序注入故障的方法和系统 | |
CN107977308A (zh) | 接口测试方法及装置 | |
CN112965794B (zh) | 算法调用方法、电子设备及存储介质 | |
US20190079916A1 (en) | Using syntactic analysis for inferring mental health and mental states | |
CN109783365A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN106575231A (zh) | 具有对操作的跨用户会话撤销支持的自动保存 | |
US20070225943A1 (en) | Executable application operation monitoring system | |
CN107273250A (zh) | 电子化保单自动承保系统的测试方法及装置 | |
CN109286608A (zh) | 调用链处理方法、装置及存储设备、计算机设备 | |
CN113656102A (zh) | 数据埋点方法及装置、存储介质、电子设备 | |
CN113296653A (zh) | 一种仿真交互模型构建方法、交互方法及相关设备 | |
CN105653433B (zh) | 一种应用程序的追踪方法及装置 | |
CN108681471A (zh) | 应用程序控制方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |