CN110753050A - 协议文档的生成方法及装置、计算机存储介质、电子设备 - Google Patents
协议文档的生成方法及装置、计算机存储介质、电子设备 Download PDFInfo
- Publication number
- CN110753050A CN110753050A CN201911007200.9A CN201911007200A CN110753050A CN 110753050 A CN110753050 A CN 110753050A CN 201911007200 A CN201911007200 A CN 201911007200A CN 110753050 A CN110753050 A CN 110753050A
- Authority
- CN
- China
- Prior art keywords
- data
- protocol
- protocol document
- application layer
- identifier
- 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
Images
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/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开涉及通信技术领域,提供了一种协议文档的生成方法、协议文档的生成装置、计算机存储介质、电子设备,其中,协议文档的生成方法包括:对抓取到的网络数据包进行解析处理,以获取协议标识符;将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;对所述目标应用层数据中包含的消息体数据进行反序列化处理,以确定目标数据;根据所述目标数据的字段以及字段值类型,生成所述协议文档。本公开中的协议文档的生成方法能够解决现有技术中的协议文档由人工编写而导致的格式不统一、信息不完整、更新不及时的技术问题,提高协议文档的编写质量以及生成效率。
Description
技术领域
本公开涉及通信技术领域,特别涉及一种协议文档的生成方法、协议文档的生成装置、计算机存储介质及电子设备。
背景技术
网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。“协议”简单来说就是一种规则,网络上的计算机在相互通信的过程中必须遵守统一的规则,否则通信将无法进行,这些规则我们称之计算机协议。协议文档为客户端与服务端,服务端与服务端之间的协作提供了通信标准和约定规则。
目前,协议文档一般由开发人员手动编写,因而,文档的格式和质量参差不齐。并且当协议文档有变更时,文档维护人员需要联系到所有与该协议相关的开发人员,告知变更内容。因此协议变更时的人工通知往往会有遗漏,从而容易产生线上事故。
鉴于此,本领域亟需开发一种新的协议文档的生成方法及装置。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开的目的在于提供一种协议文档的生成方法、协议文档的生成装置、计算机存储介质及电子设备,进而至少在一定程度上避免了现有技术中的协议文档手工编写而导致的格式和质量参差不齐的缺陷。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种协议文档的生成方法,包括:对抓取到的网络数据包进行解析处理,以获取协议标识符;将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;对所述目标应用层数据进行反序列化处理,以确定目标数据;根据所述目标数据的字段以及字段值类型,生成所述协议文档。
在本公开的示例性实施例中,所述方法还包括:获取所述目标应用层数据中包含的外部请求数据,以及,获取所述目标应用层数据对应的内部请求数据;对所述外部请求数据进行解析处理,以确定第一请求方标识符;对所述内部请求数据进行解析处理,以确定第二请求方标识符;将所述协议标识符作为关键字,所述第一请求方标识符作为键值对应保存至内存缓冲区中;将所述协议标识符作为关键字,所述第二请求方标识符作为键值对应保存至所述内存缓冲区中。
在本公开的示例性实施例中,所述对抓取到的网络数据包进行解析处理,以获取协议标识符,包括:获取所述网络数据包中所述原始应用层数据的头部信息;对所述头部信息进行解析处理,以获取所述协议标识符。
在本公开的示例性实施例中,所述方法还包括:若所述目标数据的字段类型为目标对象类型,则迭代遍历所述目标对象类型中包含的子字段值类型;根据所述目标数据的子字段以及子字段值类型,生成所述协议文档。
在本公开的示例性实施例中,所述方法还包括:将所述协议标识符作为关键字,所述协议文档作为键值对应保存至所述内存缓冲区中;定时将所述内存缓冲区中的数据同步至协议文档存储部中。
在本公开的示例性实施例中,所述方法还包括:响应于对所述协议文档的变更操作,获取所述协议文档对应的订阅者信息;基于所述订阅者信息,向订阅者发送变更提示信息。
在本公开的示例性实施例中,所述方法还包括:定时获取所述协议文档存储部中的协议文档;将所述协议文档与所述内存缓冲区中的协议文档进行内容比对;若比对结果为不一致,则向所述订阅者发送报警提示信息。
根据本公开的第二方面,提供一种协议文档的生成装置,包括:解析处理模块,用于对抓取到的网络数据包进行解析处理,以获取协议标识符;数据拼接模块,用于将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;数据处理模块,用于对所述目标应用层数据中包含的消息体数据进行反序列化处理,以确定目标数据;生成模块,用于根据所述目标数据的字段值以及字段类型,生成所述协议文档。
根据本公开的第三方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的协议文档的生成方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面所述的协议文档的生成方法。
由上述技术方案可知,本公开示例性实施例中的协议文档的生成方法、协议文档的生成装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
在本公开的一些实施例所提供的技术方案中,一方面,通过对抓取到的网络数据包进行解析处理,以获取协议标识符,并将协议标识符与网络数据包中的原始应用层数据拼接为目标应用层数据,并对目标应用层数据进行反序列化处理,以确定目标数据,能够将应用层数据转化为系统可以直接处理的数据格式,提高数据处理效率。另一方面,根据目标数据的字段以及字段值类型,生成协议文档,能够解决现有技术中的协议文档由开发人员手工编写而导致的格式不统一、信息不完整、更新不及时的技术问题,提高协议文档的编写质量以及编写效率。
本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开一示例性实施例中协议文档的生成方法的流程示意图;
图2示出本公开另一示例性实施例中协议文档的生成方法的流程示意图;
图3示出本公开一示例性实施例中目标数据的内容示意图;
图4示出本公开一示例性实施例中协议文档的示意图;
图5示出本公开再一示例性实施例中协议文档的生成方法的流程示意图;
图6示出本公开又一示例性实施例中协议文档的生成方法的流程示意图;
图7示出本公开示例性实施例中协议文档的生成装置的结构示意图;
图8示出本公开示例性实施例中计算机存储介质的结构示意图;
图9示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
目前,协议文档一般由开发人员手动编写。协议之间的依赖关系也需要人工维护,有些业务甚至没有维护。当协议文档有变更时,文档维护人员需要联系到所有与该协议相关的开发人员,告知变更内容。由于协议文档产生后,随时可能有其他的客户端或服务端动态接入,手动维护依赖关系难度较大,因此协议变更时的人工通知往往会有遗漏,从而容易产生线上事故。
在本公开的实施例中,首先提供了一种协议文档的生成方法,至少在一定程度上克服现有技术中提供的协议文档的生成方法协议文档手工编写而导致的格式和质量参差不齐的缺陷。
图1示出本公开一示例性实施例中协议文档的生成方法的流程示意图,该协议文档的生成方法的执行主体可以是生成协议文档的服务器。
参考图1,根据本公开的一个实施例的协议文档的生成方法包括以下步骤:
步骤S110,对抓取到的网络数据包进行解析处理,以获取协议标识符;
步骤S120,将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;
步骤S130,对所述目标应用层数据进行反序列化处理,以确定目标数据;
步骤S140,根据所述目标数据的字段以及字段值类型,生成所述协议文档。
在图1所示实施例所提供的技术方案中,一方面,通过对抓取到的网络数据包进行解析处理,以获取协议标识符,并将协议标识符与网络数据包中的原始应用层数据拼接为目标应用层数据,并对目标应用层数据进行反序列化处理,以确定目标数据,能够将应用层数据转化为系统可以直接处理的数据格式,提高数据处理效率。另一方面,根据目标数据的字段以及字段值类型,生成协议文档,能够解决现有技术中的协议文档由开发人员手工编写而导致的格式不统一、信息不完整、更新不及时的技术问题,提高协议文档的编写质量以及编写效率。
以下对图1中的各个步骤的具体实现过程进行详细阐述:
在步骤S110中,对抓取到的网络数据包进行解析处理,以获取协议标识符。
在本公开的示例性实施例中,可以对抓取到的网络数据包进行解析处理,以获取到协议标识符。通过抓取网络数据包的方式,而不是在业务进程里直接推送网络数据包,能够使得抓包程序完全独立于其他的程序进程,不会影响到线上的业务逻辑,保证服务的稳定性。
在本公开的示例性实施例中,示例性的,可以利用抓包软件,例如tcpdump软件,通过监听网卡的数据在数据传输链路上抓取经过网络接口的网络数据包,进而,可以将抓取到的网络数据包输出屏幕或者记录下来。
在本公开的示例性实施例中,网络数据包即使用基于TCP/IP协议的网络时,在网络中传输的数据包,示例性的,可以是数据链路层的数据包。数据包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“包”。一个数据包分成两个部分,包括控制信息(头,header)和数据本身(负载,payload)。我们可以将一个数据包比作一封信,头相当于信封,而数据包的数据部分则相当于信的内容。数据包的结构包含:数据链路层头部信息,网络层头部信息,传输层头部信息,应用层头部信息,应用层数据。只有应用层包含有实际数据(数据本身),其他各层只包含控制信息(头),用于网络通信。
在本公开的示例性实施例中,数据链路层主要用于提供介质访问和链路管理。网络层主要用于IP选址以及路由选择。传输层主要用于建立、管理和维护端到端的连接。应用层是最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。例如:为用户发送商业报价单,合同等,就是应用层提供的一种网络服务。
在本公开的示例性实施例中,在抓取到上述网络数据包之后,可以对抓取到的网络数据包进行解析,得到上述网络数据包的数据链路层头部信息,网络层头部信息,传输层头部信息,原始应用层数据的头部信息,原始应用层数据。进一步的,可以依次去除上述数据链路层头部信息,网络层头部信息以及传输层头部信息,对上述原始应用层数据的头部信息进行解析处理,以获取到协议标识符。协议标识符即应用层协议的唯一标识。
在本公开的示例性实施例中,示例性的,在具体的编程语句中,上述协议标识符可以由两个整型数据sid和cid表示,其中,sid表示网络服务id,每个网络服务都能提供多种不同的操作,cid表示网络服务的操作指令id。需要说明的是,上述协议标识符的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在步骤S120中,将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据。
在本公开的示例性实施例中,在获取到上述协议标识符之后,可以将上述协议标识符与上述网络数据包中的原始应用层数据拼接为目标应用层数据。示例性的,可以将上述协议标识符补充到原始应用层数据中,以确定上述目标应用层数据。进而,可以将上述目标应用层数据推送至kafka队列。一方面,kafka队列为专用于高性能,低延迟提交日志存储,复制和传播的专用分布式文件系统,能够把数据进行持久化直到它们被完全处理,规避数据丢失风险。另一方面,kafka队列具有较好的吞吐量,内置的分区,复制和容错能力,能够将数据按照特定的顺序来处理,保证大量数据的有序性,提高数据处理效率。
在本公开的示例性实施例中,上述目标应用层数据中可以包含协议消息体数据msg以及请求方数据prop。消息体数据msg可以用于研究协议文档。请求方可以包含外部请求以及内部请求,请求方数据prop可以用于研究数据之间的依赖关系,进一步的,请求方数据可以分为外部请求数据(例如:客户端的请求数据)以及内部请求数据(系统内部服务器的请求数据)。
在本公开的示例性实施例中,可以根据上述目标应用层数据中包含的请求方数据研究数据之间的依赖关系。具体的,可以参考图2,图2示意性示出本公开另一示例性实施例中协议文档的生成方法的流程图,具体示出根据上述请求方数据分离出第一请求方标识符与第二请求方标识符的流程示意图,以下结合图2对具体的实施方式进行解释。
在步骤S201中,获取所述目标应用层数据中包含的外部请求数据,以及,获取所述目标应用层数据对应的内部请求数据。
在本公开的示例性实施例中,可以从上述目标应用层数据中包含的请求方数据中获取到外部请求数据,示例性的,在具体的编程语句中,不同的外部请求数据可以用不同的client_type表示。需要说明的是,上述外部请求数据的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,可以从上述目标应用层数据中包含的请求方数据中获取到内部请求数据。示例性的,在具体的编程语句中,不同的内部请求方数据可以用不同的service_name标识。需要说明的是,上述内部请求数据的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在步骤S202中,对所述外部请求数据进行解析处理,以确定第一请求方标识符;对所述内部请求数据进行解析处理,以确定第二请求方标识符。
在本公开的示例性实施例中,在获取到上述外部请求数据之后,可以对上述外部请求数据进行解析处理,以获取到第一请求方标识符。
在本公开的示例性实施例中,在获取到上述内部请求数据之后,可以对上述内部请求数据进行解析处理,以获取到第二请求方标识符。
在步骤S203中,将所述协议标识符作为关键字,所述第一请求方标识符作为键值对应保存至内存缓冲区中;将所述协议标识符作为关键字,所述第二请求方标识符作为键值对应保存至所述内存缓冲区中。
在本公开的示例性实施例中,上述第一请求方标识符与上述第二请求方标识符的数据类型可以为set数据类型,set能够存储同一数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。从而,能够在数据写入时将内容相同的数据自动合并,避免数据重复冗余,提高数据存储效率。
在本公开的示例性实施例中,在获取到上述第一标识符之后,可以将上述协议标识符作为关键字(key),示例性的,在具体的编程语句中,上述关键字key可以表示为client_type_{sid}_{cid},将上述第一请求方标识符作为键值(value)对应保存至内存缓冲区中。需要说明的是,上述关键字key的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,在获取到上述第二标识符之后,可以将上述协议标识符作为关键字(key),示例性的,在具体的编程语句中,上述关键字key可以表示为service_name_{sid}_{cid},上述第一请求方标识符作为键值(value)对应保存至内存缓冲区中(例如:redis缓存)。需要说明的是,上述关键字key的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,可以定时将上述内存缓冲区中的数据同步至协议文档存储部中,协议文档存储部即对上述协议文档及相关数据进行存储的队列。示例性的,上述协议文档存储部可以包含两个数据分组,tb_client_type和tb_service_name,tb_client_type可以用来存储第一请求方标识符(客户端),tb_service_name可以用来存储第二请求方标识符(内部服务器)。需要说明的是,上述数据分组的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,还可以定时将上述内存缓冲区中的数据同步至数据库中,例如:mongodb数据库、mysql数据库或者SQL Server数据库等。需要说明的是,具体的数据库类型可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,通过对外部请求数据与内部请求数据进行分离,并将第一请求标识符与第二请求标识符分开存储在两个数据分组中,能够理清协议数据和内部服务器,以及协议数据与客户端之间的依赖关系,便于后续相关依赖关系维护工作的进行。
继续参考图1,在步骤S130中,对所述目标应用层数据进行反序列化处理,以确定目标数据。
在本公开的示例性实施例中,在数据传输过程中,目标应用层数据是以文本,即字符串的形式传递的,而JS(JavaScript,简称JS,一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。)能够直接操作的是json对象。因而,在获取到上述目标应用层数据之后,可以对上述目标应用层数据中包含的消息体数据进行json反序列化处理(把字节序列恢复为json对象的过程),以将上述字符串形式的消息体数据转换为json对象类型的目标数据,以便于后续相关数据处理过程的进行。
在本公开的示例性实施例中,示例性的,可以参考图3,图3示意性示出本公开一示例性实施例中,对上述目标应用层数据进行反序列化处理之后,得到的目标数据的内容示意图。
在步骤S140中,根据所述目标数据的字段以及字段值类型,生成所述协议文档。
在本公开的示例性实施例中,在确定出上述目标数据之后,可以根据上述目标数据的字段以及字段值类型,生成协议文档。协议文档即包含目标数据中各个字段以及字段值类型的对应关系的文档。通过根据上述目标数据的字段以及字段值类型,自动生成较完整的协议文档,能够解决人工编写协议文档而导致的格式不统一,信息不完整,更新不及时的技术问题,提高协议文档的编写质量。
在本公开的示例性实施例中,在数据库中,表的“列”称为“字段”,每个字段由若干按照某种界限划分的相同数据类型的数据项组成。每个字段包含某一专题的信息,就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。字段值类型即上述目标数据各字段取值的数据类型。示例性的,上述字段值类型可以是json对象型、普通数据型(整型int、字符串型str、字符型char等任一)以及数组型。
在本公开的示例性实施例中,示例性的,参考图3,可以迭代遍历上述目标数据的每个字段的字段值类型,字段“ready”的字段值为1,对应的字段值类型为整型,则可以生成:“ready:int”。字段“server_time”的字段值为152324422,对应的字段值类型为整型,则可以生成“server_time:int”。字段“web_url”的字段值为http://www.cc.163.com,对应的字段值类型为字符串型,则可以生成:“web_url:str”。字段“from”的字段值为[1,2],对应的字段值类型为整型数组,则可以生成“from:[int]”。
在本公开的示例性实施例中,示例性的,若目标数据中字段D(包含子字段d1和d2)对应的字段值类型为目标对象类型(例如:json对象类型),则可以迭代遍历字段D中包含的子字段的字段值类型,根据子字段以及子字段的字段值类型生成协议文档。示例性的,可以遍历子字段d1和d2,当子字段d1对应的子字段值类型为上述普通数据型时,则可以生成:“字段d1:int”。当子字段d2对应的子字段值类型为目标对象类型(json对象类型)时,则可以继续迭代遍历子字段d2对应的子字段,直至获取到普通数据型或数组型的子字段值为止。
在本公开的示例性实施例中,参照上述步骤的相关解释,可以遍历目标数据中的每一个字段及其对应的字段值类型,并根据上述每一个字段以及字段值类型生成对应的协议文档。示例性的,可以参考图4,图4示意性示出本公开一示例性实施例中协议文档的示意图,具体示出对图3中的上述目标数据进行处理之后,得到的协议文档的示意图。参照图4可知,协议文档中包含了图3所示目标数据中的每一个字段值以及对应的字段值类型。
在本公开的示例性实施例中,上述协议文档的数据类型可以为set数据类型,set能够存储同一数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。从而,能够在数据写入时将内容相同的数据自动合并,避免数据重复冗余,提高数据存储效率。
在本公开的示例性实施例中,在生成上述协议文档之后,可以将上述协议标识符作为关键字(key),示例性的,在具体的编程语句中,上述关键字key可以表示为protocal_{sid}_{cid},将协议文档作为对应的键值(value)对应保存至内存缓冲区(例如:redis缓存)中。从而能够减轻数据库的存储压力,提高页面加载速度。需要说明的是,上述关键字key的具体表示可以根据实际情况自行设定,属于本公开的保护范围。
在本公开的示例性实施例中,可以定时将上述内存缓冲区中的数据同步保存至协议文档存储部或数据库中。示例性的,当选用mongodb数据库时,还可以创建一个数据分组tb_protocal,用来存储协议文档。从而,能够避免数据丢失,保证数据的持久性。
在本公开的示例性实施例中,当协议文档发生变更时,可以向相关订阅者发送提示消息,示例性的,可以参考图5,图5示意性示出本公开再一示例性实施例中协议文档的生成方法的流程示意图,具体示出当文档协议发生变更时,向相关订阅者发送变更提示信息的流程示意图。以下结合图5对具体的实施方式进行解释。
在步骤S501中,响应于对所述协议文档的变更操作,获取所述协议文档对应的订阅者信息。
在本公开的示例性实施例中,用户可以登陆相关可视化后台(即利用计算机图形学和图像处理技术,将数据转换成图形或图像并显示出来的平台),并根据上述协议标识符查询上述协议文档。进而,对于上述协议文档中比较难理解的字段,用户可以自行手动补充协议文档,并且对文档进行注释说明。用户还可以根据实际需要自行订阅上述文档协议的变更通知。
在本公开的示例性实施例中,当检测到对上述协议文档的变更操作时,可以获取数据库中保存的订阅者信息(即订阅上述协议文档的相关人员的账号、联系方式等信息)。
在步骤S502中,基于所述订阅者信息,向订阅者发送变更提示信息。
在本公开的示例性实施例中,在获取到上述订阅者信息之后,可以向上述订阅者发送变更提示信息,从而能够解决现有技术中协议文档变更时不能马上通知到相关人员,缺少有效监控的技术问题,保证上述订阅者能够及时了解到上述协议文档的变更操作。
在本公开的示例性实施例中,当协议文档内容与系统中缓存的内容不一致时,还可以向订阅者发送报警提示信息。示例性的,可以参考图6,图6示意性示出本公开又一示例性实施例中协议文档的生成方法的流程示意图,具体示出协议文档内容与系统中缓存的内容不一致时,向相关订阅者发送报警提示信息的流程示意图。以下结合图6对具体的实施方式进行解释。
在步骤S601中,定时获取所述协议文档存储部中的协议文档。
在本公开的示例性实施例中,可以定时从上述kafka队列中获取到目标应用层数据,进而,获取上述目标应用层数据对应的协议标识符,并根据协议标识符提取出保存在上述协议文档存储部中的协议文档。
在步骤S602中,将所述协议文档与所述内存缓冲区中的协议文档进行内容比对。
在本公开的示例性实施例中,在获取到上述协议文档之后,可以将上述协议文档与上述内存缓冲区中的协议文档进行内容比对。具体的,可以检查上述协议文档相比内存缓冲区中的协议文档,是否存在缺失和新增字段,以及,是否有字段类型的变更等等。
在步骤S603中,若比对结果为不一致,则向所述订阅者发送报警提示信息。
在本公开的示例性实施例中,若上述内容比对之后,得出的比对结果为协议文档存储部中的协议文档与内存缓冲区中的协议文档的内容不一致,则可以向上述订阅者发送报警提示信息。从而,能够避免因文档协议被非法篡改而导致线上事故发生的技术问题,保证协议文档传输的安全性。
本公开还提供了一种协议文档的生成装置,图7示出本公开示例性实施例中协议文档的生成装置的结构示意图;如图7所示,协议文档的生成装置700可以包括解析处理模块701、数据拼接模块702、数据处理模块703和生成模块704。其中:
解析处理模块701,用于对抓取到的网络数据包进行解析处理,以获取协议标识符。
在本公开的示例性实施例中,解析处理模块用于对抓取到的网络数据包进行解析处理,以获取协议标识符。
在本公开的示例性实施例中,解析处理模块用于获取网络数据包中原始应用层数据的头部信息;对头部信息进行解析处理,以获取协议标识符。
在本公开的示例性实施例中,获取目标应用层数据中包含的外部请求数据,以及,获取目标应用层数据对应的内部请求数据;对外部请求数据进行解析处理,以确定第一请求方标识符;对内部请求数据进行解析处理,以确定第二请求方标识符;将协议标识符作为关键字,第一请求方标识符作为键值对应保存至内存缓冲区中;将协议标识符作为关键字,第二请求方标识符作为键值对应保存至所述内存缓冲区中。
数据拼接模块702,用于将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据。
在本公开的示例性实施例中,数据拼接模块用于将协议标识符与网络数据包中的原始应用层数据拼接为目标应用层数据。
数据处理模块703,用于对所述目标应用层数据进行反序列化处理,以确定目标数据。
在本公开的示例性实施例中,数据处理模块用于对目标应用层数据中包含的消息体数据进行反序列化处理,以确定目标数据。
生成模块704,用于根据所述目标数据的字段值以及字段类型,生成所述协议文档。
在本公开的示例性实施例中,生成模块用于根据目标数据的字段值以及字段类型,生成协议文档。
在本公开的示例性实施例中,生成模块用于若目标数据的字段类型为目标对象类型,则迭代遍历目标对象类型中包含的子字段值类型;根据目标数据的子字段以及子字段值类型,生成上述协议文档。
在本公开的示例性实施例中,生成模块用于将协议标识符作为关键字,协议文档作为键值对应保存至所述内存缓冲区中;定时将内存缓冲区中的数据同步至协议文档存储部中。
在本公开的示例性实施例中,生成模块用于响应于对协议文档的变更操作,获取协议文档对应的订阅者信息;基于订阅者信息,向订阅者发送变更提示信息。
在本公开的示例性实施例中,生成模块用于定时获取协议文档存储部中的协议文档;将协议文档与内存缓冲区中的协议文档进行内容比对;若比对结果为不一致,则向订阅者发送报警提示信息。
上述协议文档的生成装置中各模块的具体细节已经在对应的协议文档的生成方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图9来描述根据本公开的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图1中所示的:步骤S110,对抓取到的网络数据包进行解析处理,以获取协议标识符;步骤S120,将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;步骤S130,对所述目标应用层数据中包含的消息体数据进行反序列化处理,以确定目标数据;步骤S140,根据所述目标数据的字段以及字段值类型,生成所述协议文档。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(ROM)9203。
存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (10)
1.一种协议文档的生成方法,其特征在于,包括:
对抓取到的网络数据包进行解析处理,以获取协议标识符;
将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;
对所述目标应用层数据进行反序列化处理,以确定目标数据;
根据所述目标数据的字段以及字段值类型,生成所述协议文档。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标应用层数据中包含的外部请求数据,以及,获取所述目标应用层数据对应的内部请求数据;
对所述外部请求数据进行解析处理,以确定第一请求方标识符;对所述内部请求数据进行解析处理,以确定第二请求方标识符;
将所述协议标识符作为关键字,所述第一请求方标识符作为键值对应保存至内存缓冲区中;
将所述协议标识符作为关键字,所述第二请求方标识符作为键值对应保存至所述内存缓冲区中。
3.根据权利要求1所述的方法,其特征在于,所述对抓取到的网络数据包进行解析处理,以获取协议标识符,包括:
获取所述网络数据包中所述原始应用层数据的头部信息;
对所述头部信息进行解析处理,以获取所述协议标识符。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述目标数据的字段类型为目标对象类型,则迭代遍历所述目标对象类型中包含的子字段类型;
根据所述目标数据的字段以及字段值类型,生成所述协议文档。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述协议标识符作为关键字,所述协议文档作为键值对应保存至所述内存缓冲区中;
定时将所述内存缓冲区中的数据同步至协议文档存储部中。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
响应于对所述协议文档的变更操作,获取所述协议文档对应的订阅者信息;
基于所述订阅者信息,向订阅者发送变更提示信息。
7.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
定时获取所述协议文档存储部中的协议文档;
将所述协议文档与所述内存缓冲区中的协议文档进行内容比对;
若比对结果为不一致,则向所述订阅者发送报警提示信息。
8.一种协议文档的生成装置,其特征在于,包括:
解析处理模块,用于对抓取到的网络数据包进行解析处理,以获取协议标识符;
数据拼接模块,用于将所述协议标识符与所述网络数据包中的原始应用层数据拼接为目标应用层数据;
数据处理模块,用于对所述目标应用层数据进行反序列化处理,以确定目标数据;
生成模块,用于根据所述目标数据的字段以及字段值类型,生成所述协议文档。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的协议文档的生成方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述的协议文档的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007200.9A CN110753050B (zh) | 2019-10-22 | 2019-10-22 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911007200.9A CN110753050B (zh) | 2019-10-22 | 2019-10-22 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110753050A true CN110753050A (zh) | 2020-02-04 |
CN110753050B CN110753050B (zh) | 2022-03-04 |
Family
ID=69279325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911007200.9A Active CN110753050B (zh) | 2019-10-22 | 2019-10-22 | 协议文档的生成方法及装置、计算机存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110753050B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073367A (zh) * | 2020-07-28 | 2020-12-11 | 智维云图(上海)智能科技有限公司 | 一种可视化的消防物联网数据的协议解析方法及系统 |
CN112187938A (zh) * | 2020-09-30 | 2021-01-05 | 国网智能科技股份有限公司 | 一种变电站全景监控数据层次化组态处理方法及系统 |
CN112433787A (zh) * | 2020-11-09 | 2021-03-02 | 北京达佳互联信息技术有限公司 | 目标对象的序列化方法、装置、电子设备及存储介质 |
CN113065049A (zh) * | 2021-03-19 | 2021-07-02 | 深圳市腾讯网域计算机网络有限公司 | 数据抓取方法和装置、存储介质及电子设备 |
CN113596527A (zh) * | 2020-04-30 | 2021-11-02 | 西安诺瓦星云科技股份有限公司 | 节目发布方法、装置及系统和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320617A1 (en) * | 2010-06-24 | 2011-12-29 | Saravanakumar Annamalaisami | Systems and methods for detecting incomplete requests, tcp timeouts and application timeouts |
CN103425632A (zh) * | 2013-08-30 | 2013-12-04 | 深圳市路畅科技股份有限公司 | 一种序列化的方法、装置及处理器 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
CN106557974A (zh) * | 2016-11-21 | 2017-04-05 | 中国农业银行股份有限公司 | 一种imix协议数据的处理方法及系统 |
CN107018096A (zh) * | 2017-05-03 | 2017-08-04 | 成都国腾实业集团有限公司 | 基于应用层协议进行数据分析与还原的方法 |
CN109547234A (zh) * | 2018-10-18 | 2019-03-29 | 广州市百果园信息技术有限公司 | 一种数据处理、上报方法、装置、设备和存储介质 |
CN109960499A (zh) * | 2017-12-25 | 2019-07-02 | 阿凡达(上海)动力科技有限公司 | 一种smg-pdc万能接口协议裂变解析引擎技术 |
-
2019
- 2019-10-22 CN CN201911007200.9A patent/CN110753050B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320617A1 (en) * | 2010-06-24 | 2011-12-29 | Saravanakumar Annamalaisami | Systems and methods for detecting incomplete requests, tcp timeouts and application timeouts |
CN103425632A (zh) * | 2013-08-30 | 2013-12-04 | 深圳市路畅科技股份有限公司 | 一种序列化的方法、装置及处理器 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
CN106557974A (zh) * | 2016-11-21 | 2017-04-05 | 中国农业银行股份有限公司 | 一种imix协议数据的处理方法及系统 |
CN107018096A (zh) * | 2017-05-03 | 2017-08-04 | 成都国腾实业集团有限公司 | 基于应用层协议进行数据分析与还原的方法 |
CN109960499A (zh) * | 2017-12-25 | 2019-07-02 | 阿凡达(上海)动力科技有限公司 | 一种smg-pdc万能接口协议裂变解析引擎技术 |
CN109547234A (zh) * | 2018-10-18 | 2019-03-29 | 广州市百果园信息技术有限公司 | 一种数据处理、上报方法、装置、设备和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596527A (zh) * | 2020-04-30 | 2021-11-02 | 西安诺瓦星云科技股份有限公司 | 节目发布方法、装置及系统和计算机可读存储介质 |
CN112073367A (zh) * | 2020-07-28 | 2020-12-11 | 智维云图(上海)智能科技有限公司 | 一种可视化的消防物联网数据的协议解析方法及系统 |
CN112187938A (zh) * | 2020-09-30 | 2021-01-05 | 国网智能科技股份有限公司 | 一种变电站全景监控数据层次化组态处理方法及系统 |
CN112433787A (zh) * | 2020-11-09 | 2021-03-02 | 北京达佳互联信息技术有限公司 | 目标对象的序列化方法、装置、电子设备及存储介质 |
CN113065049A (zh) * | 2021-03-19 | 2021-07-02 | 深圳市腾讯网域计算机网络有限公司 | 数据抓取方法和装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110753050B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110753050B (zh) | 协议文档的生成方法及装置、计算机存储介质、电子设备 | |
CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
US11704191B2 (en) | Error remediation systems and methods | |
US9122510B2 (en) | Querying and managing computing resources in a networked computing environment | |
AU2020331235A1 (en) | Transforming a data stream into structured data | |
US20200327005A1 (en) | Session triage and remediation systems and methods | |
CN111309550A (zh) | 应用程序的数据采集方法、系统、设备和存储介质 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
US10775751B2 (en) | Automatic generation of regular expression based on log line data | |
US11568133B2 (en) | Method and apparatus for detecting anomalies in mission critical environments | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及系统 | |
CN104317570A (zh) | 动态解析Web应用的装置和方法 | |
CN110765090B (zh) | 日志数据管理方法及装置、存储介质、电子设备 | |
CN113268453A (zh) | 日志信息压缩存储方法及装置 | |
WO2023092580A1 (zh) | 页面显示方法、装置、存储介质及电子设备 | |
CN111427899A (zh) | 存储文件的方法、装置、设备和计算机可读介质 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
CN113760734A (zh) | 一种数据准备方法及装置、设备、存储介质 | |
AU2018390863B2 (en) | Computer system and method for extracting dynamic content from websites | |
CN111930385A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN111698109A (zh) | 监控日志的方法和装置 | |
US20090287781A1 (en) | Grouping messages using patterns in a messaging system | |
CN112948733B (zh) | 接口维护方法、装置、计算设备以及介质 | |
CN101772196A (zh) | 处理移动终端发送的信息的方法和系统以及代理服务器 | |
CN117675238A (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 |