CN104852823A - 进程的监测方法、装置和系统 - Google Patents
进程的监测方法、装置和系统 Download PDFInfo
- Publication number
- CN104852823A CN104852823A CN201410055292.9A CN201410055292A CN104852823A CN 104852823 A CN104852823 A CN 104852823A CN 201410055292 A CN201410055292 A CN 201410055292A CN 104852823 A CN104852823 A CN 104852823A
- Authority
- CN
- China
- Prior art keywords
- communication
- monitoring
- data
- correspondence
- communication node
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种进程的监测方法、装置和系统。其中,进程的监测方法包括:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个;根据获取到的通信关系建立进程之间的通信通道;添加与每个通信通道都连接的中转通信节点;以及监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向的方式。通过本发明,解决了现有技术中无法对多进程间的通信逻辑进行监测的技术问题,进而达到了对待测试系统进程间的通信逻辑进行灰盒测试的技术效果。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种进程的监测方法、装置和系统。
背景技术
测试一个网络软件系统,现有的方案一般是,采取对客户端和服务器之间的网络通信数据分析的方法来进行,利用的工具大多采用抓取客户端和服务器之间通信包来分析,进而利用篡改数据的方式执行测试。
但是,现有的此类技术仅能帮助测试者做黑盒测试,对于后台服务器只是一个进程的情况是可以的,而如果后台服务器是多个进程共同完成客户端的请求的话,测试人员对这种后台进程间调用的逻辑,无法利用现有工具去分析和测试,不能进行进一步的灰盒测试。
针对现有技术中无法对多进程间的通信逻辑进行监测的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种进程的监测方法、装置和系统,以至少解决现有技术中无法对多进程间的通信逻辑进行测试的技术问题。
根据本发明实施例的一个方面,提供了一种进程的监测方法,包括:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个;根据获取到的通信关系建立进程之间的通信通道;添加与每个通信通道都连接的中转通信节点;以及监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
根据本发明实施例的第二方面,还提供了一种进程的监测装置,包括:获取单元,用于获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个;建立单元,用于根据获取到的通信关系建立进程之间的通信通道;添加单元,用于添加与每个通信通道都连接的中转通信节点;以及第一监测单元,用于监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
根据本发明实施例的第三方面,还提供了一种进程的监测系统,包括本发明上述内容所提供的任一种进程的监测装置。
在本发明实施例中,采用获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个;根据获取到的通信关系建立进程之间的通信通道;添加与每个通信通道都连接的中转通信节点;以及监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向的方式,通过添加与进程的每个通信通道均相连接的中转通信节点,实现了能够通过对流经中转通信节点的数据内容和流向进行监测,来得到通信通道所连通的进程间所传输的通信数据及该数据的传输方向,进而实现对待测试系统的多进程间的通信逻辑进行监测,解决了现有技术中无法对多进程间的通信逻辑进行监测的技术问题,进而达到了对待测试系统进程间的通信逻辑进行灰盒测试的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的进程的监测方法的流程图;
图2a和图2b是根据本发明实施例的监测方法中添加与每个通信通道都连接的中转通信节点的示意图;
图3是根据本发明实施例的监测方法生成的通信拓扑图的示意图;
图4是根据本发明实施例的监测方法生成的通信时序图的示意图;
图5a是根据本发明一种可选实施例的监测方法的流程图;
图5b是根据本发明又一种可选实施例的监测方法的流程图;
图5c是根据本发明又一种可选实施例的监测方法的流程图;
图6是根据本发明又一种可选实施例的监测方法的流程图;
图7是根据本发明实施例的进程的监测装置的示意图;
图8a是根据本发明一种可选实施例的监测装置的示意图;
图8b是根据本发明又一种可选实施例的监测装置的示意图;
图8c是根据本发明又一种可选实施例的监测装置的示意图;以及
图9是根据本发明又一种可选实施例的监测装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种进程的监测方法,如图1所示,该方法包括如下步骤S102至步骤S108:
S102:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
其中,对于待测系统进程的获取,可以根据待测系统所在的工作目录,利用操作系统提供的脚本语言来获取待测系统的所有进程。比如,利用ssh远程执行shell命令来获取待测系统的进程。对于进程之间通信关系的获取,则可以利用ssh远程执行netstat与ipcm命令来获取进程之间通信关系。
S104:根据获取到的通信关系建立进程之间的通信通道,即,在每两个具有通信关系的进程之间建立一条通信通道。
S106:添加与每个通信通道都连接的中转通信节点,即,添加中转通信节点作为代理通信节点,以使每个通信信道均通过这个添加的中转通信节点进行通信。
S108:监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。由于中转通信节点与每个通信通道都连接,因此,通过对流经中转通信节点的数据内容和数据流行进行监测,即可得到通信通道所传输的数据内容和传输方向,也即得到进程之间的通信数据和通信方向。
本发明实施例所提供的进程的监测方法,通过添加与进程的每个通信通道均相连接的中转通信节点,实现了能够通过对流经中转通信节点的数据内容和流向进行监测,来得到通信通道所连通的进程间所传输的通信数据及该数据的传输方向,进而实现对待测试系统的多进程间的通信逻辑进行监测,解决了现有技术中无法对多进程间的通信逻辑进行监测的技术问题,进而达到了对待测试系统进程间的通信逻辑进行灰盒测试的技术效果。
具体地,监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向包括:监测第一进程和第二进程流经中转通信节点的数据内容和数据流向,得到第一进程和第二进程之间的通信数据和通信方向,其中,第一进程和第二进程为多个进程中具有通信关系的任意两个进程。
进一步地,步骤S102中获取到的通信关系包括通信方式,在本发明实施例中,可以采用以下方式添加与每个通信通道都连接的中转通信节点:
首先,获取第一进程和第二进程之间发送和接收数据所采用的第一通信方式,其中,第一进程和第二进程为多个进程中具有通信关系的任意两个进程。
其次,判断第一通信方式与中转通信节点发送和接收数据所采用的第二通信方式是否相同。
其中,在判断出第一通信方式与第二通信方式不相同的情况下,建立第一进程与第一转换进程之间的连接,并建立第二进程与第二转换进程之间的连接,其中,第一转换进程和第二转换进程均为采用第二通信方式与中转通信节点相连接的进程,并且第一转换进程与第一进程之间的通信方式为第一通信方式,第二转换进程与第二进程之间的通信方式为第一通信方式;以及在判断出第一通信方式与第二通信方式相同的情况下,建立第一进程与中转通信节点之间的连接,并建立第二进程与中转通信节点之间的连接。
更进一步地,在本发明实施例中,可以采用改变进程目标连接地址的方式,来建立进程与相应的转换进程之间的连接,以及采用改变进程目标连接地址的方式,来建立进程与中转通信节点之间的连接,具体建立方式可以采用以下步骤:
建立第一进程与第一转换进程之间的连接,并建立第二进程与第二转换进程之间的连接具体为:获取第一进程的目标连接地址和第二进程的目标连接地址;以及更改第一进程的目标连接地址为第一转换进程的地址,并更改第二进程的目标连接地址为第二转换进程的地址。更具体地,可以采用挂钩(hook)的方式在进程初始化连接的时候改变其目标连接地址。
建立第一进程与中转通信节点之间的连接,并建立第二进程与中转通信节点之间的连接具体为:获取第一进程的目标连接地址和第二进程的目标连接地址;以及更改第一进程的目标连接地址为第一连接地址,并更改第二进程的目标连接地址为第二连接地址,其中,第一连接地址为中转通信节点中用于与第一进程通信的地址,第二连接地址为中转通信节点中用于与第二进程通信的地址。
进一步地举例说明,进程与进程之间的通信方式所基于的通信协议一般包括内存共享、tcp协议、udp协议、管道、文件和信号量等,中转通信节点发送和接收数据所采用的第二通信方式同样也基于上述协议中的一种,采用的通信协议不同,对应的通信方式也就不相同。以下以图2a和图2b中示出的进程A和进程B之间采用tcp协议通信、进程A和C之间采用udp协议通信、进程B和进程C之间采用内容共享通信,中转通信节点P所采用的第二通信方式为基于tcp协议的通信方式为例具体说明,则添加与每个通信通道都连接的中转通信节点具体为:
将进程A与udp转换器1连接,使进程A与udp转换器1通过udp通信,将进程C与udp转换器2连接,使进程C与udp转换器2通过udp通信,并且,udp转换器1和udp转换器2均与中转通信节点P连接,这两个udp转换器均通过tcp与中转通信节点P通信,以此实现在进程A与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程A的目标连接地址更改为udp转换器1的地址,实现将进程A与udp转换器1连接,更改进程A的目标连接地址为udp转换器1的地址,即是将进程A的目标连接地址更改为udp转换器1的网络端口。同样,可以将进程C的目标连接地址更改为udp转换器2的地址,实现将进程C与udp转换器2连接,更改进程D的目标连接地址为udp转换器2的地址,即是将进程D的目标连接地址更改为udp转换器2的网络端口。
将进程B与内存转换器1连接,使进程B与内存转换器1通过内存共享方式通信,将进程C与内存转换器2连接,使进程C与内存转换器2通过内存共享方式通信,并且,内存转换器1和内存转换器2均与中转通信节点P连接,这两个内存转换器均通过tcp与中转通信节点P通信,以此实现在进程B与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程B的目标连接地址更改为内存转换器1的地址,实现将进程B与内存转换器1连接,更改进程B的目标连接地址为内存转换器1的地址,即是将进程B的内存关键字更改为内存转换器1的内存关键字。同样,可以将进程C的目标连接地址更改为内存转换器2的地址,实现将进程C与内存转换器2连接,更改进程C的目标连接地址为内存转换器2的地址,即是将进程C的内存关键字更改为内存转换器2的内存关键字。
由于进程A和进程B之间直接采用tcp协议通信,与中转通信节点P所采用的通信方式相同,因此无需再建立进程与转换器之间的连接,直接将进程A和进程B连接至中转通信节点P的相关通信地址上即可。
当然,如果中转通信节点P所采用的通信方式不是基于tcp协议的方式,则需要将进程A与tcp转换器1连接,使进程A与tcp转换器1通过tcp通信,将进程C与tcp转换器2连接,使进程C与tcp转换器2通过tcp通信,并且,tcp转换器1和tcp转换器2均与中转通信节点P连接,这两个tcp转换器均通过中转通信节点P所采用的通信方式与中转通信节点P通信,以此实现在进程A与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程A的目标连接地址更改为tcp转换器1的地址,实现将进程A与tcp转换器1连接,更改进程A的目标连接地址为tcp转换器1的地址,即是将进程A的目标连接地址更改为tcp转换器1的网络端口。同样,可以将进程C的目标连接地址更改为tcp转换器2的地址,实现将进程C与tcp转换器2连接,更改进程D的目标连接地址为tcp转换器2的地址,即是将进程D的目标连接地址更改为tcp转换器2的网络端口。
其中,无论是tcp转换器、udp转换器、内存转换器,还是其它进行通信方式转化的转换器,均是通过程序实现的转换进程。
添加与每个通信通道都连接的中转通信节点之后,即建立了进程与中转通信节点之间的连接路径,相应地,重启进程后,进程原始的通信通道被修改为与中转通信节点相连接的通信通道,这样,就可以监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
优选地,在步骤S104根据获取到的通信关系建立进程之间的通信通道之后,本发明实施例的监测方法还包括:以每个进程为节点,以每个通信通道为节点连接路径,绘制通信拓扑图;以及显示通信拓扑图。以此实现向测试者提供一个能够直观地反映进程间通信关系的通信拓扑图。
进一步地,在以每个进程为节点,以每个通信通道为节点连接路径,绘制通信拓扑图之前,监测方法还包括:控制多个进程以多列形式分布,其中,具有通信关系的进程分布在相邻列上;或控制多个进程以多行形式分布,其中,具有通信关系的进程分布在相邻行上。这样,最大程度地避免进程之间连接路径的交叉,使得绘制出的通信拓扑图能够清楚简洁地反映进程间通信关系。如图3所示,是根据本发明实施例的监测方法生成的通信拓扑图的示意图,该图示意性示出了多个进程以多列形式分布,图3中,p0表示外部进程,p1、p2……pn表示多个进程。
优选地,在步骤S108监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向之后,本发明实施例的监测方法还包括:
以通信方向为指向,绘制每两个具有通信关系的进程之间的通信链路,生成通信时序图,其中,每一条通信链路中还具有相应的通信数据;关联通信拓扑图和通信时序图;接收客户端第一指令,其中,客户端第一指令用于从通信拓扑图上选中至少两个进程;以及控制选中的进程之间的通信链路在通信时序图上显示。
通过绘制通信时序图,并将通信时序图与通信拓扑图相关联,并控制选中的通信链路在通信时序图上显示,实现了能够根据测试者意愿,自行选择所关注的进程,来观测该进程通信流向的效果。
其中,在生成通信时序图之后,还可以显示通信时序图,实现向测试者提供一个能够直观地反映进程间通信流向的时序图。
进一步地,在控制选中的进程之间的通信链路在通信时序图上显示之后,监测方法还包括:接收客户端第二指令,其中,客户端第二指令用于从通信拓扑图上更改已选中的进程;以及控制更改后的进程之间的通信链路在通信时序图上显示。以此实现增加或减少通信时序图上显示的进程之间的通信链路。
更进一步地,在控制选中的进程之间的通信链路在通信时序图上显示之后,监测方法还包括:接收客户端第三指令,其中,客户端第三指令用于从通信时序图上选中目标通信链路;以及显示与目标通信链路对应的通信数据。实现将进程间的通信数据直观地显示给测试者。
其中,在以通信方向为指向,绘制每两个具有通信关系的进程之间的通信链路,生成通信时序图之前,监测方法还包括:控制多个进程以多列形式分布,其中,每一列均只分布一个进程,并且相邻列为不同的进程;或控制多个进程以多行形式分布,其中,每一行均只分布一个进程,并且相邻行为不同的进程。如图4所示,是根据本发明实施例的监测方式生成的通信时序图的示意图,该图示意性示出了p1至p7这7个进程以多列形式分布。
图5a是根据本发明一种可选实施例的进程的监测方法的流程图,如图5a所示,该可选实施例所提供的监测方法主要包括如下步骤S5a02至步骤S5a14:
S5a02:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
与上述步骤S102相同。
S5a04:根据获取到的通信关系建立进程之间的通信通道。
与上述步骤S104相同。
S5a06:添加与每个通信通道都连接的中转通信节点。
与上述步骤S106相同。
S5a08:监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
与上述步骤S108相同。
S5a10:在通过中转通信节点监测到第一进程向第二进程传输第一请求时,通过中转通信节点发送由第三进程向第一进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
S5a12:监测第一进程对第二请求的处理结果。
S5a14:根据处理结果判断第一进程的竞争状态。
由于多进程协同完成一次事务的过程中,存在一种竞争状态窗口期,待测系统为了维护事务性,需要妥善的处理在这期间的请求。通过上述步骤S510至步骤S514,实现了在一次进程组的层级调用之间,测试者插入一个测试数据请求,来测试目标进程对该请求是否处理正确。其中,如果处理结果表示第一进程崩溃,则可判断出第一进程对竞争机制响应所体现出的竞争状态较弱,反之,如果处理结果表示第一进程能够正确反馈对第二请求的反馈,则可判断出第一进程对竞争机制响应所体现出的竞争状态较强。实现了在第一进程发送请求的情况下,测试该第一进程对接收到的来自第三者的请求的竞争情况。
假设第一进程为进程maysvrd,第二进程为进程world_login,第三进程为进程tconnd,则上述监测方式即为:当进程maysvrd发送给进程world_login一个带有内容包含D1特征的数据时,通过中转通信节点发送从进程tconnd到进程maysvrd的内容包含为D2特征的数据,以测试进程maysvrd对该请求是否处理正确。具体地,可以利用JSON格式将上述测试规则定义如下:
图5b是根据本发明又一种可选实施例的进程的监测方法的流程图,如图5b所示,该可选实施例所提供的监测方法主要包括如下步骤S5b02至步骤S5b14:
S5b02:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
与上述步骤S102相同。
S5b04:根据获取到的通信关系建立进程之间的通信通道。
与上述步骤S104相同。
S5b06:添加与每个通信通道都连接的中转通信节点。
与上述步骤S106相同。
S5b08:监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
与上述步骤S108相同。
S5b10:在通过中转通信节点监测到第一进程接收来自第二进程传输的第一请求时,通过中转通信节点发送由第三进程向第一进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
S5b12:监测第一进程对第二请求的处理结果。
S5b14:根据处理结果判断第一进程的竞争状态。
与上述原理相同,实现了在第一进程接收请求的情况下,测试该第一进程对接收到的来自第三者的请求的竞争情况。
图5c是根据本发明又一种可选实施例的进程的监测方法的流程图,如图5c所示,该可选实施例所提供的监测方法主要包括如下步骤S5c02至步骤S5c14:
S5c02:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
与上述步骤S102相同。
S5c04:根据获取到的通信关系建立进程之间的通信通道。
与上述步骤S104相同。
S5c06:添加与每个通信通道都连接的中转通信节点。
与上述步骤S106相同。
S5c08:监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
与上述步骤S108相同。
S5c10:在通过中转通信节点监测到第一进程向第二进程传输第一请求时,通过中转通信节点发送由第一进程向第三进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
S5c12:监测第三进程对第二请求的处理结果。
S5c14:根据处理结果判断第一进程的竞争状态。
与上述原理相同,实现了在第一进程发送请求的情况下,测试该第一进程对发送另一请求的竞争情况。
图6是根据本发明又一种可选实施例的监测方法的流程图,如图6所述,该可选实施例所提供的监测方法主要包括如下步骤S602至步骤S614:
S602:获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
与上述步骤S102相同。
S604:根据获取到的通信关系建立进程之间的通信通道。
与上述步骤S104相同。
S606:添加与每个通信通道都连接的中转通信节点。
与上述步骤S106相同。
S608:监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
与上述步骤S108相同。
S610:提取通信数据中的外部输入数据和SQL语句,即,从上述步骤S608中所监测到的各个进程之间的通信数据中,提取外部输入数据和SQL语句。
S612:从SQL语句中提取参数的数值Value_set。
S614:根据参数的数值与外部输入数据的匹配关系确定外部输入数据与SQL语句的对应关系。
通过对外部输入数据和SQL语句进行提取,并确定二者之间的对应关系,达到了对外部输入数据能够产生什么样的SQL语句进行测试的效果。
进一步地,还可以显示确定出的外部输入数据与SQL语句的对应关系,实现将外部输入数据所产生的SQL语句直观地提供给测试者。
具体地,在本发明实施例中,可以采用以下方式确定外部输入数据与SQL语句的对应关系:首先,判断外部输入数据与提取到的数值是否存在相同数据。其次,在判断出外部输入数据与提取到的数值存在相同数据的情况下,获取相同数据所在的SQL语句。然后,确定获取到的SQL语句为外部输入数据对应的SQL语句。
采用以下方式提取通信数据中的SQL语句:首先,从监测到的通信数据中获取流向待测系统数据库的SQL数据。然后,从SQL数据中提取SQL语句。
更进一步地,在根据参数的数值与外部输入数据的匹配关系确定外部输入数据与SQL语句的对应关系之后,本发明实施例的监测方法还包括:修改外部输入数据。发送修改后的外部输入数据至待测系统。重新确定修改后的外部输入数据与SQL语句的对应关系,具体确定方法与上述确定外部输入数据与SQL语句对应关系的方法相同,此处不再赘述。
通过将修改后的外部输入数据发送至待测试系统,再重新确定修改后的外部输入数据与SQL语句的对应关系,实现了可以有目的地测试具体外部数据所能够产生的SQL语句的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述进程的监测方法的进程的监测装置,该监测装置主要用于执行本发明实施例上述内容所提供的监测方法,以下对本发明实施例所提供的进程的监测装置做具体介绍:
图7是根据本发明实施例的进程的监测装置的示意图,如图7所示,该监测装置主要包括获取单元10、建立单元20、添加单元30和第一监测单元40,其中:
获取单元10用于获取待测系统的进程以及进程之间的通信关系,其中,进程的数量为多个。
其中,对于待测系统进程的获取,可以根据待测系统所在的工作目录,利用操作系统提供的脚本语言来获取待测系统的所有进程。比如,利用ssh远程执行shell命令来获取待测系统的进程。对于进程之间通信关系的获取,则可以利用ssh远程执行netstat与ipcm命令来获取进程之间通信关系。
建立单元20用于根据获取到的通信关系建立进程之间的通信通道,即,在每两个具有通信关系的进程之间建立一条通信通道。
添加单元30用于添加与每个通信通道都连接的中转通信节点,即,添加中转通信节点作为代理通信节点,以使每个通信信道均通过这个添加的中转通信节点进行通信。
第一监测单元40用于监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。由于中转通信节点与每个通信通道都连接,因此,通过对流经中转通信节点的数据内容和数据流行进行监测,即可得到通信通道所传输的数据内容和传输方向,也即得到进程之间的通信数据和通信方向。
本发明实施例所提供的进程的监测装置,通过添加与进程的每个通信通道均相连接的中转通信节点,实现了能够通过对流经中转通信节点的数据内容和流向进行监测,来得到通信通道所连通的进程间所传输的通信数据及该数据的传输方向,进而实现对待测试系统的多进程间的通信逻辑进行监测,解决了现有技术中无法对多进程间的通信逻辑进行监测的技术问题,进而达到了对待测试系统进程间的通信逻辑进行灰盒测试的技术效果。
具体地,第一监测单元40包括监测子单元,该监测子单元用于监测第一进程和第二进程流经中转通信节点的数据内容和数据流向,得到第一进程和第二进程之间的通信数据和通信方向,其中,第一进程和第二进程为多个进程中具有通信关系的任意两个进程。
进一步地,获取单元10获取到的通信关系包括通信方式,在本发明实施例中,添加单元30主要包括第一获取子单元、第一判断子单元、第一建立子单元和第二建立子单元,上述各个子单元主要通过以下方式添加与每个通信通道都连接的中转通信节点:
第一获取子单元用于获取第一进程和第二进程之间发送和接收数据所采用的第一通信方式,其中,第一进程和第二进程为多个进程中具有通信关系的任意两个进程。
第一判断子单元用于判断第一通信方式与中转通信节点发送和接收数据所采用的第二通信方式是否相同。
第一建立子单元用于在第一判断子单元判断出第一通信方式与第二通信方式不相同的情况下,建立第一进程与第一转换进程之间的连接,并建立第二进程与第二转换进程之间的连接,其中,第一转换进程和第二转换进程均为采用第二通信方式与中转通信节点相连接的进程,并且第一转换进程与第一进程之间的通信方式为第一通信方式,第二转换进程与第二进程之间的通信方式为第一通信方式。
第二建立子单元用于在第一判断子单元判断出第一通信方式与第二通信方式相同的情况下,建立第一进程与中转通信节点之间的连接,并建立第二进程与中转通信节点之间的连接。
更进一步地,第一建立子单元包括第一获取模块和第一更改模块,第二建立子单元包括第二获取模块和第二更改模块,其中:
第一获取模块用于获取第一进程的目标连接地址和第二进程的目标连接地址。第一更改模块用于更改第一进程的目标连接地址为第一转换进程的地址,并更改第二进程的目标连接地址为第二转换进程的地址。即,通过第一获取模块和第一更改模块的协同作用,利用改变进程目标连接地址的方式,来建立进程与相应的转换进程之间的连接。
第二获取模块用于获取第一进程的目标连接地址和第二进程的目标连接地址。第二更改模块用于更改第一进程的目标连接地址为第一连接地址,并更改第二进程的目标连接地址为第二连接地址,其中,第一连接地址为中转通信节点中用于与第一进程通信的地址,第二连接地址为中转通信节点中用于与第二进程通信的地址。即,通过第二获取模块和第二更改模块的协同作用,利用改变进程目标连接地址的方式,来建立进程与中转通信节点之间的连接。
进一步地举例说明,进程与进程之间的通信方式所基于的通信协议一般包括内存共享、tcp协议、udp协议、管道、文件和信号量等,中转通信节点发送和接收数据所采用的第二通信方式同样也基于上述协议中的一种,采用的通信协议不同,对应的通信方式也就不相同。以下以图2a和图2b中示出的进程A和进程B之间采用tcp协议通信、进程A和C之间采用udp协议通信、进程B和进程C之间采用内容共享通信,中转通信节点P所采用的第二通信方式为基于tcp协议的通信方式为例,具体说明添加单元30添加与每个通信通道都连接的中转通信节点的具体原理:
将进程A与udp转换器1连接,使进程A与udp转换器1通过udp通信,将进程C与udp转换器2连接,使进程C与udp转换器2通过udp通信,并且,udp转换器1和udp转换器2均与中转通信节点P连接,这两个udp转换器均通过tcp与中转通信节点P通信,以此实现在进程A与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程A的目标连接地址更改为udp转换器1的地址,实现将进程A与udp转换器1连接,更改进程A的目标连接地址为udp转换器1的地址,即是将进程A的目标连接地址更改为udp转换器1的网络端口。同样,可以将进程C的目标连接地址更改为udp转换器2的地址,实现将进程C与udp转换器2连接,更改进程D的目标连接地址为udp转换器2的地址,即是将进程D的目标连接地址更改为udp转换器2的网络端口。
将进程B与内存转换器1连接,使进程B与内存转换器1通过内存共享方式通信,将进程C与内存转换器2连接,使进程C与内存转换器2通过内存共享方式通信,并且,内存转换器1和内存转换器2均与中转通信节点P连接,这两个内存转换器均通过tcp与中转通信节点P通信,以此实现在进程B与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程B的目标连接地址更改为内存转换器1的地址,实现将进程B与内存转换器1连接,更改进程B的目标连接地址为内存转换器1的地址,即是将进程B的内存关键字更改为内存转换器1的内存关键字。同样,可以将进程C的目标连接地址更改为内存转换器2的地址,实现将进程C与内存转换器2连接,更改进程C的目标连接地址为内存转换器2的地址,即是将进程C的内存关键字更改为内存转换器2的内存关键字。
由于进程A和进程B之间直接采用tcp协议通信,与中转通信节点P所采用的通信方式相同,因此无需再建立进程与转换器之间的连接,直接将进程A和进程B连接至中转通信节点P的相关通信地址上即可。
当然,如果中转通信节点P所采用的通信方式不是基于tcp协议的方式,则需要将进程A与tcp转换器1连接,使进程A与tcp转换器1通过tcp通信,将进程C与tcp转换器2连接,使进程C与tcp转换器2通过tcp通信,并且,tcp转换器1和tcp转换器2均与中转通信节点P连接,这两个tcp转换器均通过中转通信节点P所采用的通信方式与中转通信节点P通信,以此实现在进程A与进程C之间的通信通道中添加上中转通信节点P。其中,可以将进程A的目标连接地址更改为tcp转换器1的地址,实现将进程A与tcp转换器1连接,更改进程A的目标连接地址为tcp转换器1的地址,即是将进程A的目标连接地址更改为tcp转换器1的网络端口。同样,可以将进程C的目标连接地址更改为tcp转换器2的地址,实现将进程C与tcp转换器2连接,更改进程D的目标连接地址为tcp转换器2的地址,即是将进程D的目标连接地址更改为tcp转换器2的网络端口。
其中,无论是tcp转换器、udp转换器、内存转换器,还是其它进行通信方式转化的转换器,均是通过程序实现的转换进程。
添加与每个通信通道都连接的中转通信节点之后,即建立了进程与中转通信节点之间的连接路径,相应地,重启进程后,进程原始的通信通道被修改为与中转通信节点相连接的通信通道,这样,就可以监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向。
优选地,本发明实施例的监测装置还包括第一绘制单元和第一显示单元,在建立单元20根据获取到的通信关系建立进程之间的通信通道之后,第一绘制单元以每个进程为节点,以每个通信通道为节点连接路径,绘制通信拓扑图。第一显示单元则用于显示该通信拓扑图。以此实现向测试者提供一个能够直观地反映进程间通信关系的通信拓扑图。
进一步地,监测装置还包括第一控制单元,在第一绘制单元以每个进程为节点,以每个通信通道为节点连接路径,绘制通信拓扑图之前,第一控制单元用于控制多个进程以多列形式分布,其中,具有通信关系的进程分布在相邻列上。或第一控制单元用于控制多个进程以多行形式分布,其中,具有通信关系的进程分布在相邻行上。这样,最大程度地避免进程之间连接路径的交叉,使得第一绘制单元绘制出的通信拓扑图能够清楚简洁地反映进程间通信关系。
优选地,监测装置还包括第二绘制单元、关联单元、第一接收单元和第二控制单元,在第一监测单元40监测流经中转通信节点的数据内容和数据流向,得到进程之间的通信数据和通信方向之后,第二绘制单元用于以通信方向为指向,绘制每两个具有通信关系的进程之间的通信链路,生成通信时序图,其中,每一条通信链路中还具有相应的通信数据。关联单元用于关联通信拓扑图和通信时序图。第一接收单元用于接收客户端第一指令,其中,客户端第一指令用于从通信拓扑图上选中至少两个进程。第二控制单元用于控制选中的进程之间的通信链路在通信时序图上显示。
通过绘制通信时序图,并将通信时序图与通信拓扑图相关联,并控制选中的通信链路在通信时序图上显示,实现了能够根据测试者意愿,自行选择所关注的进程,来观测该进程通信流向的效果。
其中,在生成通信时序图之后,还可以显示通信时序图,实现向测试者提供一个能够直观地反映进程间通信流向的时序图。
进一步地,监测装置还包括第二接收单元和第三控制单元,具体地,在第二控制单元控制选中的进程之间的通信链路在通信时序图上显示之后,第二接收单元用于接收客户端第二指令,其中,客户端第二指令用于从通信拓扑图上更改已选中的进程。第三控制单元用于控制更改后的进程之间的通信链路在通信时序图上显示。以此实现增加或减少通信时序图上显示的进程之间的通信链路。
更进一步地,监测装置还包括第三接收单元和第二显示单元,在控制选中的进程之间的通信链路在通信时序图上显示之后,第三接收单元用于接收客户端第三指令,其中,客户端第三指令用于从通信时序图上选中目标通信链路。第二显示单元用于显示与目标通信链路对应的通信数据。实现将进程间的通信数据直观地显示给测试者。
其中,监测装置还包括第四控制单元,在以通信方向为指向,绘制每两个具有通信关系的进程之间的通信链路,生成通信时序图之前,该第四控制单元控制多个进程以多列形式分布,其中,每一列均只分布一个进程,并且相邻列为不同的进程。或第四控制单元控制多个进程以多行形式分布,其中,每一行均只分布一个进程,并且相邻行为不同的进程。
图8a是根据本发明一种可选实施例的进程的监测装置的示意图,如图8a所示,该可选实施例所提供的监测装置主要包括获取单元10、建立单元20、添加单元30、第一监测单元40、第一发送单元501、第二监测单元601和第一判断单元701。
获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理与图7中示出的获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理相同,此处不再赘述。
第一发送单元501用于在通过中转通信节点监测到第一进程向第二进程传输第一请求时,通过中转通信节点发送由第三进程向第一进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
第二监测单元601用于监测第一进程对第二请求的处理结果。
第一判断单元701用于根据处理结果判断第一进程的竞争状态。
由于多进程协同完成一次事务的过程中,存在一种竞争状态窗口期,待测系统为了维护事务性,需要妥善的处理在这期间的请求。通过第一发送单元501、第二监测单元601和第一判断单元701,实现了在一次进程组的层级调用之间,测试者插入一个测试数据请求,来测试目标进程对该请求是否处理正确。其中,如果处理结果表示第一进程崩溃,则可判断出第一进程对竞争机制响应所体现出的竞争状态较弱,反之,如果处理结果表示第一进程能够正确反馈对第二请求的反馈,则可判断出第一进程对竞争机制响应所体现出的竞争状态较强。实现了在第一进程发送请求的情况下,测试该第一进程对接收到的来自第三者的请求的竞争情况。
假设第一进程为进程maysvrd,第二进程为进程world_login,第三进程为进程tconnd,则上述监测方式即为:当进程maysvrd发送给进程world_login一个带有内容包含D1特征的数据时,通过中转通信节点发送从进程tconnd到进程maysvrd的内容包含为D2特征的数据,以测试进程maysvrd对该请求是否处理正确。具体地,可以利用JSON格式将上述测试规则定义如下:
图8b是根据本发明又一种可选实施例的进程的监测装置的示意图,如图8b所示,该可选实施例所提供的监测装置主要包括获取单元10、建立单元20、添加单元30、第一监测单元40、第二发送单元502、第三监测单元602和第二判断单元702。
获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理与图7中示出的获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理相同,此处不再赘述。
第二发送单元502用于在通过中转通信节点监测到第一进程接收来自第二进程传输的第一请求时,通过中转通信节点发送由第三进程向第一进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
第三监测单元602用于监测第一进程对第二请求的处理结果。
第二判断单元702用于根据处理结果判断第一进程的竞争状态。
与上述第一发送单元501、第二监测单元601和第一判断单元701的工作原理相同,通过第二发送单元502、第三监测单元602和第二判断单元702实现了在第一进程接收请求的情况下,测试该第一进程对接收到的来自第三者的请求的竞争情况。
图8c是根据本发明又一种可选实施例的进程的监测装置的示意图,如图8c所示,该可选实施例所提供的监测装置主要包括获取单元10、建立单元20、添加单元30、第一监测单元40、第三发送单元503、第四监测单元603和第三判断单元703。
第三发送单元503用于在通过中转通信节点监测到第一进程向第二进程传输第一请求时,通过中转通信节点发送由第一进程向第三进程传输的第二请求,其中,第一请求包括第一特征,第二请求包括第二特征,第一进程和第二进程为多个进程中具有通信关系的任意两个进程,第三进程为多个进程中与第一进程具有通信关系的进程,并且,第三进程和第二进程为不同的进程,第一特征和第二特征为不同的特征。
第四监测单元603用于监测第三进程对第二请求的处理结果。
第三判断单元703用于根据处理结果判断第一进程的竞争状态。
与上述第一发送单元501、第二监测单元601和第一判断单元701的工作原理相同,通过第三发送单元503、第四监测单元603和第三判断单元703实现了在第一进程发送请求的情况下,测试该第一进程对发送另一请求的竞争情况。
图9是根据本发明又一种可选实施例的监测装置的示意图,如图9所述,该可选实施例所提供的监测装置主要包括获取单元10、建立单元20、添加单元30、第一监测单元40、第一提取单元80、第二提取单元90和第一确定单元100,其中:
获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理与图7中示出的获取单元10、建立单元20、添加单元30和第一监测单元40的具体组成和工作原理相同,此处不再赘述。
第一提取单元80用于提取通信数据中的外部输入数据和SQL语句,即,从第一监测单元40所监测到的各个进程之间的通信数据中,提取外部输入数据和SQL语句。
第二提取单元90用于从SQL语句中提取参数的数值Value_set。
第一确定单元100用于根据参数的数值与外部输入数据的匹配关系确定外部输入数据与SQL语句的对应关系。
通过对外部输入数据和SQL语句进行提取,并确定二者之间的对应关系,达到了对外部输入数据能够产生什么样的SQL语句进行测试的效果。
进一步地,还可以显示确定出的外部输入数据与SQL语句的对应关系,实现将外部输入数据所产生的SQL语句直观地提供给测试者。
具体地,第一确定单元100主要包括第二判断子单元、第二获取子单元和确定子单元,其中:第二判断子单元用于判断外部输入数据与提取到的数值是否存在相同数据。第二获取子单元,用于在判断出外部输入数据与提取到的数值存在相同数据的情况下,获取相同数据所在的SQL语句。确定子单元用于确定获取到的SQL语句为外部输入数据对应的SQL语句。
第一提取单元80主要包括第三获取子单元和提取子单元,其中:第三获取子单元用于从监测到的通信数据中获取流向待测系统数据库的SQL数据。提取子单元用于从SQL数据中提取SQL语句。
更进一步地,监测装置还包括修改单元、第四发送单元和第二确定单元,在第一确定单元100根据参数的数值与外部输入数据的匹配关系确定外部输入数据与SQL语句的对应关系之后,修改单元用于修改外部输入数据。第四发送单元用于发送修改后的外部输入数据至待测系统。第二确定单元用于重新确定修改后的外部输入数据与SQL语句的对应关系。具体确定方法与上述第一确定单元100确定外部输入数据与SQL语句对应关系的方法相同,此处不再赘述。
通过将修改后的外部输入数据发送至待测试系统,再重新确定修改后的外部输入数据与SQL语句的对应关系,实现了可以有目的地测试具体外部数据所能够产生的SQL语句的效果。
本发明实施例还提供了一种进程的监测系统,该监测系统包括本发明实施例上述内容所提供的任一种进程的监测装置和待测系统。
从以上描述中可以看出,本发明实现了对待测试系统的多进程间的通信逻辑进行监测,解决了现有技术中无法对多进程间的通信逻辑进行监测的技术问题,进而达到了对待测试系统进程间的通信逻辑进行灰盒测试的技术效果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (35)
1.一种进程的监测方法,其特征在于,包括:
获取待测系统的进程以及所述进程之间的通信关系,其中,所述进程的数量为多个;
根据获取到的通信关系建立所述进程之间的通信通道;
添加与每个所述通信通道都连接的中转通信节点;以及
监测流经所述中转通信节点的数据内容和数据流向,得到所述进程之间的通信数据和通信方向。
2.根据权利要求1所述的监测方法,其特征在于,所述监测流经所述中转通信节点的数据内容和数据流向,得到所述进程之间的通信数据和通信方向包括:
监测第一进程和第二进程流经所述中转通信节点的数据内容和数据流向,得到所述第一进程和所述第二进程之间的通信数据和通信方向,其中,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程。
3.根据权利要求1所述的监测方法,其特征在于,获取到的通信关系包括通信方式,其中,所述添加与每个所述通信通道都连接的中转通信节点包括:
获取第一进程和第二进程之间发送和接收数据所采用的第一通信方式,其中,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程;
判断所述第一通信方式与所述中转通信节点发送和接收数据所采用的第二通信方式是否相同;
在判断出所述第一通信方式与所述第二通信方式不相同的情况下,建立所述第一进程与第一转换进程之间的连接,并建立所述第二进程与第二转换进程之间的连接,其中,所述第一转换进程和所述第二转换进程均为采用所述第二通信方式与所述中转通信节点相连接的进程,并且所述第一转换进程与所述第一进程之间的通信方式为所述第一通信方式,所述第二转换进程与所述第二进程之间的通信方式为所述第一通信方式;以及
在判断出所述第一通信方式与所述第二通信方式相同的情况下,建立所述第一进程与所述中转通信节点之间的连接,并建立所述第二进程与所述中转通信节点之间的连接。
4.根据权利要求3所述的监测方法,其特征在于:
所述建立所述第一进程与第一转换进程之间的连接,并建立所述第二进程与第二转换进程之间的连接包括:获取所述第一进程的目标连接地址和所述第二进程的目标连接地址;以及更改所述第一进程的目标连接地址为所述第一转换进程的地址,并更改所述第二进程的目标连接地址为所述第二转换进程的地址;
所述建立所述第一进程与所述中转通信节点之间的连接,并建立所述第二进程与所述中转通信节点之间的连接包括:获取所述第一进程的目标连接地址和所述第二进程的目标连接地址;以及更改所述第一进程的目标连接地址为第一连接地址,并更改所述第二进程的目标连接地址为第二连接地址,其中,所述第一连接地址为所述中转通信节点中用于与所述第一进程通信的地址,所述第二连接地址为所述中转通信节点中用于与所述第二进程通信的地址。
5.根据权利要求1所述的监测方法,其特征在于,在所述添加与每个所述通信通道都连接的中转通信节点之后,所述监测方法还包括:
在通过所述中转通信节点监测到第一进程向第二进程传输第一请求时,通过所述中转通信节点发送由第三进程向所述第一进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
监测所述第一进程对所述第二请求的处理结果;以及
根据所述处理结果判断所述第一进程的竞争状态。
6.根据权利要求1所述的监测方法,其特征在于,在添加与每个所述通信通道都连接的中转通信节点之后,所述监测方法还包括:
在通过所述中转通信节点监测到第一进程接收来自第二进程传输的第一请求时,通过所述中转通信节点发送由第三进程向所述第一进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
监测所述第一进程对所述第二请求的处理结果;以及
根据所述处理结果判断所述第一进程的竞争状态。
7.根据权利要求1所述的监测方法,其特征在于,在添加与每个所述通信通道都连接的中转通信节点之后,所述监测方法还包括:
在通过所述中转通信节点监测到第一进程向第二进程传输第一请求时,通过所述中转通信节点发送由所述第一进程向第三进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
监测所述第三进程对所述第二请求的处理结果;以及
根据所述处理结果判断所述第一进程的竞争状态。
8.根据权利要求1所述的监测方法,其特征在于,在所述根据获取到的通信关系建立所述进程之间的通信通道之后,所述监测方法还包括:
以每个所述进程为节点,以每个所述通信通道为节点连接路径,绘制通信拓扑图;以及
显示所述通信拓扑图。
9.根据权利要求8所述的监测方法,其特征在于,在所述以每个所述进程为节点,以每个所述通信通道为节点连接路径,绘制通信拓扑图之前,所述监测方法还包括:
控制多个所述进程以多列形式分布,其中,具有通信关系的所述进程分布在相邻列上;或
控制多个所述进程以多行形式分布,其中,具有通信关系的所述进程分布在相邻行上。
10.根据权利要求8所述的监测方法,其特征在于,在所述监测流经所述中转通信节点的数据内容和数据流向,得到所述进程之间的通信数据和通信方向之后,所述监测方法还包括:
以所述通信方向为指向,绘制每两个具有通信关系的所述进程之间的通信链路,生成通信时序图,其中,每一条所述通信链路中还具有相应的通信数据;
关联所述通信拓扑图和所述通信时序图;
接收客户端第一指令,其中,所述客户端第一指令用于从所述通信拓扑图上选中至少两个所述进程;以及
控制选中的所述进程之间的所述通信链路在所述通信时序图上显示。
11.根据权利要求10所述的监测方法,其特征在于,在所述控制选中的所述进程之间的所述通信链路在所述通信时序图上显示之后,所述监测方法还包括:
接收客户端第二指令,其中,所述客户端第二指令用于从所述通信拓扑图上更改已选中的所述进程;以及
控制更改后的所述进程之间的所述通信链路在所述通信时序图上显示。
12.根据权利要求10所述的监测方法,其特征在于,在所述控制选中的所述进程之间的所述通信链路在所述通信时序图上显示之后,所述监测方法还包括:
接收客户端第三指令,其中,所述客户端第三指令用于从所述通信时序图上选中目标通信链路;以及
显示与所述目标通信链路对应的所述通信数据。
13.根据权利要求10所述的监测方法,其特征在于,在以所述通信方向为指向,绘制每两个具有通信关系的所述进程之间的通信链路,生成通信时序图之前,所述监测方法还包括:
控制多个所述进程以多列形式分布,其中,每一列均只分布一个所述进程,并且相邻列为不同的所述进程;或
控制多个所述进程以多行形式分布,其中,每一行均只分布一个所述进程,并且相邻行为不同的所述进程。
14.根据权利要求1所述的监测方法,其特征在于,在所述监测流经所述中转通信节点的数据内容和数据流向,得到所述进程之间的通信数据和通信方向之后,所述监测方法还包括:
提取所述通信数据中的外部输入数据和SQL语句;
从所述SQL语句中提取参数的数值;以及
根据所述参数的数值与所述外部输入数据的匹配关系确定所述外部输入数据与所述SQL语句的对应关系。
15.根据权利要求14所述的监测方法,其特征在于,所述根据提取到的数值与所述外部输入数据的匹配关系,确定所述外部输入数据与所述SQL语句的对应关系包括:
判断所述外部输入数据与提取到的数值是否存在相同数据;
在判断出所述外部输入数据与提取到的数值存在相同数据的情况下,获取所述相同数据所在的SQL语句;以及
确定获取到的所述SQL语句为所述外部输入数据对应的SQL语句。
16.根据权利要求14所述的监测方法,其特征在于,提取所述通信数据中的SQL语句包括:
从监测到的所述通信数据中获取流向所述待测系统数据库的SQL数据;以及
从所述SQL数据中提取所述SQL语句。
17.根据权利要求14所述的监测方法,其特征在于,在所述根据所述参数的数值与所述外部输入数据的匹配关系确定所述外部输入数据与所述SQL语句的对应关系之后,所述监测方法还包括:
修改所述外部输入数据;
发送修改后的所述外部输入数据至所述待测系统;以及
重新确定修改后的所述外部输入数据与所述SQL语句的对应关系。
18.一种进程的监测装置,其特征在于,包括:
获取单元,用于获取待测系统的进程以及所述进程之间的通信关系,其中,所述进程的数量为多个;
建立单元,用于根据获取到的通信关系建立所述进程之间的通信通道;
添加单元,用于添加与每个所述通信通道都连接的中转通信节点;以及
第一监测单元,用于监测流经所述中转通信节点的数据内容和数据流向,得到所述进程之间的通信数据和通信方向。
19.根据权利要求18所述的监测装置,其特征在于,所述第一监测单元包括:
监测子单元,用于监测第一进程和第二进程流经所述中转通信节点的数据内容和数据流向,得到所述第一进程和所述第二进程之间的通信数据和通信方向,其中,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程。
20.根据权利要求18所述的监测装置,其特征在于,获取到的通信关系包括通信方式,其中,所述添加单元包括:
第一获取子单元,用于获取第一进程和第二进程之间发送和接收数据所采用的第一通信方式,其中,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程;
第一判断子单元,用于判断所述第一通信方式与所述中转通信节点发送和接收数据所采用的第二通信方式是否相同;
第一建立子单元,用于在判断出所述第一通信方式与所述第二通信方式不相同的情况下,建立所述第一进程与第一转换进程之间的连接,并建立所述第二进程与第二转换进程之间的连接,其中,所述第一转换进程和所述第二转换进程均为采用所述第二通信方式与所述中转通信节点相连接的进程,并且所述第一转换进程与所述第一进程之间的通信方式为所述第一通信方式,所述第二转换进程与所述第二进程之间的通信方式为所述第一通信方式;以及
第二建立子单元,用于在判断出所述第一通信方式与所述第二通信方式相同的情况下,建立所述第一进程与所述中转通信节点之间的连接,并建立所述第二进程与所述中转通信节点之间的连接。
21.根据权利要求20所述的监测装置,其特征在于:
所述第一建立子单元包括:第一获取模块,用于获取所述第一进程的目标连接地址和所述第二进程的目标连接地址;以及第一更改模块,用于更改所述第一进程的目标连接地址为所述第一转换进程的地址,并更改所述第二进程的目标连接地址为所述第二转换进程的地址;
所述第二建立子单元包括:第二获取模块,用于获取所述第一进程的目标连接地址和所述第二进程的目标连接地址;以及第二更改模块,用于更改所述第一进程的目标连接地址为第一连接地址,并更改所述第二进程的目标连接地址为第二连接地址,其中,所述第一连接地址为所述中转通信节点中用于与所述第一进程通信的地址,所述第二连接地址为所述中转通信节点中用于与所述第二进程通信的地址。
22.根据权利要求18所述的监测装置,其特征在于,所述监测装置还包括:
第一发送单元,用于在通过所述中转通信节点监测到第一进程向第二进程传输第一请求时,通过所述中转通信节点发送由第三进程向所述第一进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
第二监测单元,用于监测所述第一进程对所述第二请求的处理结果;以及
第一判断单元,用于根据所述处理结果判断所述第一进程的竞争状态。
23.根据权利要求18所述的监测装置,其特征在于,所述监测装置还包括:
第二发送单元,用于在通过所述中转通信节点监测到第一进程接收来自第二进程传输的第一请求时,通过所述中转通信节点发送由第三进程向所述第一进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
第三监测单元,用于监测所述第一进程对所述第二请求的处理结果;以及
第二判断单元,用于根据所述处理结果判断所述第一进程的竞争状态。
24.根据权利要求18所述的监测装置,其特征在于,所述监测装置还包括:
第三发送单元,用于在通过所述中转通信节点监测到第一进程向第二进程传输第一请求时,通过所述中转通信节点发送由所述第一进程向第三进程传输的第二请求,其中,所述第一请求包括第一特征,所述第二请求包括第二特征,所述第一进程和所述第二进程为多个所述进程中具有通信关系的任意两个进程,所述第三进程为多个所述进程中与所述第一进程具有通信关系的进程,并且,所述第三进程和所述第二进程为不同的进程,所述第一特征和所述第二特征为不同的特征;
第四监测单元,用于监测所述第三进程对所述第二请求的处理结果;以及
第三判断单元,用于根据所述处理结果判断所述第一进程的竞争状态。
25.根据权利要求18所述的监测装置,其特征在于,所述监测装置还包括:
第一绘制单元,用于以每个所述进程为节点,以每个所述通信通道为节点连接路径,绘制通信拓扑图;以及
第一显示单元,用于显示所述通信拓扑图。
26.根据权利要求25所述的监测装置,其特征在于,所述监测装置还包括:
第一控制单元,用于控制多个所述进程以多列形式分布,其中,具有通信关系的所述进程分布在相邻列上;或
所述第一控制单元,用于控制多个所述进程以多行形式分布,其中,具有通信关系的所述进程分布在相邻行上。
27.根据权利要求25所述的监测装置,其特征在于,所述监测装置还包括:
第二绘制单元,用于以所述通信方向为指向,绘制每两个具有通信关系的所述进程之间的通信链路,生成通信时序图,其中,每一条所述通信链路中还具有相应的通信数据;
关联单元,用于关联所述通信拓扑图和所述通信时序图;
第一接收单元,用于接收客户端第一指令,其中,所述客户端第一指令用于从所述通信拓扑图上选中至少两个所述进程;以及
第二控制单元,用于控制选中的所述进程之间的所述通信链路在所述通信时序图上显示。
28.根据权利要求27所述的监测装置,其特征在于,所述监测装置还包括:
第二接收单元,用于接收客户端第二指令,其中,所述客户端第二指令用于从所述通信拓扑图上更改已选中的所述进程;以及
第三控制单元,用于控制更改后的所述进程之间的所述通信链路在所述通信时序图上显示。
29.根据权利要求27所述的监测装置,其特征在于,所述监测装置还包括:
第三接收单元,用于接收客户端第三指令,其中,所述客户端第三指令用于从所述通信时序图上选中目标通信链路;以及
第二显示单元,用于显示与所述目标通信链路对应的所述通信数据。
30.根据权利要求27所述的监测装置,其特征在于,所述监测装置还包括:
第四控制单元,用于控制多个所述进程以多列形式分布,其中,每一列均只分布一个所述进程,并且相邻列为不同的所述进程;或
所述第四控制单元,用于控制多个所述进程以多行形式分布,其中,每一行均只分布一个所述进程,并且相邻行为不同的所述进程。
31.根据权利要求18所述的监测装置,其特征在于,所述监测装置还包括:
第一提取单元,用于提取所述通信数据中的外部输入数据和SQL语句;
第二提取单元,用于从所述SQL语句中提取参数的数值;以及
第一确定单元,用于根据所述参数的数值与所述外部输入数据的匹配关系确定所述外部输入数据与所述SQL语句的对应关系。
32.根据权利要求31所述的监测装置,其特征在于,所述第一确定单元包括:
第二判断子单元,用于判断所述外部输入数据与提取到的数值是否存在相同数据;
第二获取子单元,用于在判断出所述外部输入数据与提取到的数值存在相同数据的情况下,获取所述相同数据所在的SQL语句;以及
确定子单元,用于确定获取到的所述SQL语句为所述外部输入数据对应的SQL语句。
33.根据权利要求31所述的监测装置,其特征在于,所述第一提取单元包括:
第三获取子单元,用于从监测到的所述通信数据中获取流向所述待测系统数据库的SQL数据;以及
提取子单元,用于从所述SQL数据中提取所述SQL语句。
34.根据权利要求31所述的监测装置,所述监测装置还包括:
修改单元,用于修改所述外部输入数据;
第四发送单元,用于发送修改后的所述外部输入数据至所述待测系统;以及
第二确定单元,用于重新确定修改后的所述外部输入数据与所述SQL语句的对应关系。
35.一种进程的监测系统,其特征在于,包括权利要求18至34中任一项所述的进程的监测装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055292.9A CN104852823B (zh) | 2014-02-18 | 2014-02-18 | 进程的监测方法、装置和系统 |
PCT/CN2015/072712 WO2015124073A1 (en) | 2014-02-18 | 2015-02-11 | Process monitoring method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055292.9A CN104852823B (zh) | 2014-02-18 | 2014-02-18 | 进程的监测方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104852823A true CN104852823A (zh) | 2015-08-19 |
CN104852823B CN104852823B (zh) | 2019-04-12 |
Family
ID=53852190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410055292.9A Active CN104852823B (zh) | 2014-02-18 | 2014-02-18 | 进程的监测方法、装置和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104852823B (zh) |
WO (1) | WO2015124073A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221928A (zh) * | 2019-06-11 | 2019-09-10 | Oppo广东移动通信有限公司 | 信息记录方法、装置、终端及存储介质 |
WO2020259515A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 一种tcp应用的调用链获取方法及装置 |
CN113055339A (zh) * | 2019-12-26 | 2021-06-29 | 中国移动通信集团海南有限公司 | 一种进程数据的处理方法、装置、存储介质和计算机设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110809304B (zh) * | 2019-11-01 | 2021-08-17 | 北京星河亮点技术股份有限公司 | 一种网络中数据流报文转发方法及网络系统 |
CN112685287B (zh) * | 2020-11-30 | 2023-11-28 | 青岛海尔科技有限公司 | 产品数据的测试方法、装置、存储介质及电子装置 |
CN114615169B (zh) * | 2020-12-03 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 路径监控方法、装置和计算机可读存储介质 |
CN116685950A (zh) * | 2021-12-31 | 2023-09-01 | 京东方科技集团股份有限公司 | 进程通信方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675798A (en) * | 1993-07-27 | 1997-10-07 | International Business Machines Corporation | System and method for selectively and contemporaneously monitoring processes in a multiprocessing server |
CN1507210A (zh) * | 2002-12-10 | 2004-06-23 | 深圳市中兴通讯股份有限公司 | 一种在多结点系统中进行消息传输的方法 |
CN1791037A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 一种实现Web服务自动化测试的方法 |
CN102591726A (zh) * | 2011-12-31 | 2012-07-18 | 青岛海信宽带多媒体技术有限公司 | 一种多进程通信方法 |
CN103455380A (zh) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | 多进程通信系统及其建立和通信方法 |
-
2014
- 2014-02-18 CN CN201410055292.9A patent/CN104852823B/zh active Active
-
2015
- 2015-02-11 WO PCT/CN2015/072712 patent/WO2015124073A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675798A (en) * | 1993-07-27 | 1997-10-07 | International Business Machines Corporation | System and method for selectively and contemporaneously monitoring processes in a multiprocessing server |
CN1507210A (zh) * | 2002-12-10 | 2004-06-23 | 深圳市中兴通讯股份有限公司 | 一种在多结点系统中进行消息传输的方法 |
CN1791037A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 一种实现Web服务自动化测试的方法 |
CN102591726A (zh) * | 2011-12-31 | 2012-07-18 | 青岛海信宽带多媒体技术有限公司 | 一种多进程通信方法 |
CN103455380A (zh) * | 2012-06-05 | 2013-12-18 | 上海斐讯数据通信技术有限公司 | 多进程通信系统及其建立和通信方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221928A (zh) * | 2019-06-11 | 2019-09-10 | Oppo广东移动通信有限公司 | 信息记录方法、装置、终端及存储介质 |
WO2020259515A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 一种tcp应用的调用链获取方法及装置 |
CN113055339A (zh) * | 2019-12-26 | 2021-06-29 | 中国移动通信集团海南有限公司 | 一种进程数据的处理方法、装置、存储介质和计算机设备 |
CN113055339B (zh) * | 2019-12-26 | 2023-04-28 | 中国移动通信集团海南有限公司 | 一种进程数据的处理方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015124073A1 (en) | 2015-08-27 |
CN104852823B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104852823A (zh) | 进程的监测方法、装置和系统 | |
CN105260337B (zh) | 一种单片机的自动编址方法及系统 | |
US8667119B2 (en) | System and method for re-generating packet load for load test | |
CN105005521B (zh) | 测试方法及装置 | |
JP2019513246A (ja) | ランダムフォレストモデルの訓練方法、電子装置及び記憶媒体 | |
CN108255847A (zh) | 页面生成方法及装置 | |
CN105279435A (zh) | 网页漏洞检测方法和装置 | |
CN105049290B (zh) | 页面访问监测方法及装置 | |
CN105872958A (zh) | 一种发射功率调整方法以及通信终端 | |
CN107911251A (zh) | 一种网络设备配置方法、装置和介质 | |
CN103581317B (zh) | 一种网络资源共享的方法 | |
CN101964923A (zh) | 交互式命令的配置系统及方法 | |
CN104536926B (zh) | 串口设备的控制方法及装置 | |
CN103986620A (zh) | 一种基于xml方式的监控项管理方法及系统 | |
CN109150981A (zh) | 区块链网络组网方法、装置、设备及计算机可读存储介质 | |
CN106789449A (zh) | 一种can总线开发与测试方法及系统 | |
EP3824612B1 (de) | Penetrationstestverfahren, computerprogramm und vorrichtung zur datenverarbeitung | |
CN107180525A (zh) | 一种物理设备的蓝牙控制方法、装置、系统和相关设备 | |
CN102238571A (zh) | 物联网m2m业务处理的装置、系统以及方法 | |
CN107231275A (zh) | 用于用户设备与家居设备连接配置的方法 | |
CN104601358A (zh) | 一种实现采集系统与分析系统间的匹配方法及装置 | |
CN109960508A (zh) | 一种接口调用的方法及装置 | |
CN105512020B (zh) | 测试方法及装置 | |
CN109788034A (zh) | 用于网关接入设备的配置方法、电子设备及存储介质 | |
CN105929794B (zh) | 一种即插即用的工业网络扩展方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |