CN111949607B - 一种udt文件的监控方法、***和装置 - Google Patents
一种udt文件的监控方法、***和装置 Download PDFInfo
- Publication number
- CN111949607B CN111949607B CN202010918185.XA CN202010918185A CN111949607B CN 111949607 B CN111949607 B CN 111949607B CN 202010918185 A CN202010918185 A CN 202010918185A CN 111949607 B CN111949607 B CN 111949607B
- Authority
- CN
- China
- Prior art keywords
- monitoring
- udt
- file
- data
- server
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/156—Query results presentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种UDT文件的监控方法、***和装置,所述方法包括:所述监控服务器接收所述版本管理服务器发送的提交通知;所述监控服务器根据所述提交通知获取待监控UDT文件;所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果。通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,实现对用户所提交的UDT文件的Diff自动化监控,降低开发人员的工作量以及提高工作效率。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种UDT文件的监控方法、一种UDT文件的监控***和一种UDT文件的监控装置。
背景技术
在现有的游戏项目开发中,通常使用大量的策划配置表(一般为Excel表格)来保存一些静态外部数据,程序人员可以通过对导表脚本编写的方式,将Excel数据解析为项目代码可读的形式,从而使解析后的外部数据在游戏代码中生效,并完成特定的功能。
然而在开发过程中,策划人员和程序人员可能会对策划配置表进行频繁改动,由于人工操作往往会产生各种各样的错误,需要及时发现和纠正这些错误。一般利用协作工具管理配置表时产生的Diff(指的是对比文本文件,所对比的可以是本次修改和最近一次数据内容的差异)文件,只需要及时获取这些Diff文件,并通过核查对比获知修改内容,即可发现和修改错误。
而对于UE引擎(Unreal Engine,虚幻引擎)而言,其策划配置表同样可能被频繁修改且频繁出现错误,然而UE支持的内置协作工具并不能很好地获取配置表所产生的Diff文件,只能通过编辑器进行人工查看,且耗费一定程度的人工成本,容易出现监控不及时、遗漏修改等风险。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种UDT文件的监控方法、一种UDT文件的监控***和一种UDT文件的监控装置。
为了解决上述问题,本发明实施例公开了一种UDT文件的监控方法,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,所述方法包括:
所述监控服务器接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知;
所述监控服务器根据所述提交通知获取待监控UDT文件;
所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果。
可选地,所述提交通知包括版本信息;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;所述监控服务器根据所述提交通知获取待监控UDT文件,包括:
所述监控服务器根据所述版本信息生成UDT文件获取请求,并向所述版本管理服务器发送所述UDT文件获取请求;
所述监控服务器接收所述版本管理服务器发送的当前版本UDT文件以及先前版本UDT文件;所述当前版本UDT文件以及所述历史版本文件为所述版本管理服务器根据所述版本信息获取的UDT文件。
可选地,所述目标监控资源数据包括第一目标监控资源数据以及第二目标监控资源数据;所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据,包括:
所述监控服务器向远程服务器发送当前版本UDT文件以及所述先前版本UDT文件;
所述监控服务器接收所述远程服务器发送的第一目标监控资源数据以及第二目标监控资源数据;所述第一目标监控资源数据为对所述当前版本UDT文件进行数据解析以及格式转换后的数据;所述第二目标监控资源数据为对所述先前版本UDT文件进行数据解析以及格式转换后的数据。
可选地,所述目标监控资源数据包括以单个属性为行单位的数据;所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果,包括:
所述监控服务器将所述第一目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第一数据;
所述监控服务器将所述第二目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第二数据;
所述监控服务器对所述第一数据以及所述第二数据进行对比操作,得到监控结果。
可选地,所述监控服务器具有对比模块;所述监控服务器对所述第一数据以及所述第二数据进行对比操作,得到监控结果,包括:
所述监控服务器通过所述对比模块,对所述第一数据以及第二数据进行对比,得到对比数据;所述对比数据包括多个行数据以及与所述行数据对应的多个属性值;
所述监控服务器对与所述行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
可选地,所述提交通知包括人员信息;所述监控服务器根据所述目标资源数据得到监控结果之后,还包括:
所述监控服务器根据所述监控结果生成监控数据条目,并存储至预设数据库;
所述监控服务器根据所述监控结果生成监控通知,并根据所述人员信息对相关人员发送所述监控通知;
当接收到针对所述监控结果的结果查看请求时,所述监控服务器根据所述查看请求从所述预设数据库中获取所述监控数据条目,以便相关人员查看所述监控数据条目。
本发明实施例还公开了一种UDT文件的监控***,所述***包括版本管理服务器、监控服务器以及远程服务器,
所述版本管理服务器用于当检测到对预设UDT文件的提交请求时,对所述提交请求进行拦截并生成提交通知,以及向所述监控服务器发送所述提交通知;
所述监控服务器用于接收所述版本管理服务器发送的提交通知,并根据所述提交通知获取待监控UDT文件,以及向远程服务器发送所述待监控UDT文件;
所述远程服务器用于通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换得到目标监控资源数据,并向所述监控服务器发送所述目标监控资源数据;
所述监控服务器还用于接收所述远程服务器发送的目标监控资源数据,以及对所述目标监控资源数据进行对比操作,得到监控结果。
本发明实施例还公开了一种UDT文件的监控装置,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,所述装置包括:
提交通知接收模块,用于接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知;
待监控UDT文件获取模块,用于根据所述提交通知获取待监控UDT文件;
目标监控资源数据接收模块,用于向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
监控结果获取模块,用于对所述目标监控资源数据进行对比操作,得到监控结果。
可选地,所述提交通知包括版本信息;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;所述待监控UDT文件获取模块包括:
UDT文件获取请求发送子模块,用于根据所述版本信息生成UDT文件获取请求,并向所述版本管理服务器发送所述UDT文件获取请求;
UDT文件接收子模块,用于接收所述版本管理服务器发送的当前版本UDT文件以及先前版本UDT文件;所述当前版本UDT文件以及所述历史版本文件为所述版本管理服务器根据所述版本信息获取的UDT文件。
可选地,所述目标监控资源数据包括第一目标监控资源数据以及第二目标监控资源数据;所述目标监控资源数据接收模块包括:
UDT文件发送子模块,用于向远程服务器发送当前版本UDT文件以及所述先前版本UDT文件;
目标UDT文件接收子模块,用于接收所述远程服务器发送的第一目标监控资源数据以及第二目标监控资源数据;所述第一目标监控资源数据为对所述当前版本UDT文件进行数据解析以及格式转换后的数据;所述第二目标监控资源数据为对所述先前版本UDT文件进行数据解析以及格式转换后的数据。
可选地,所述目标监控资源数据包括以单个属性为行单位的数据;所述监控结果获取模块包括:
第一数据获取子模块,用于将所述第一目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第一数据;
第二数据获取子模块,用于将所述第二目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第二数据;
监控结果获取子模块,用于对所述第一数据以及所述第二数据进行对比操作,得到监控结果。
可选地,所述监控服务器具有对比模块;所述监控结果获取子模块包括:
对比数据获取单元,用于通过所述对比模块,对所述第一数据以及第二数据进行对比,得到对比数据;所述对比数据包括多个行数据以及与所述行数据对应的多个属性值;
监控结果获取单元,用于对与所述行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
可选地,所述提交通知包括人员信息;在所述监控服务器根据所述目标资源数据得到监控结果之后,还包括:
监控数据条目生成模块,用于根据所述监控结果生成监控数据条目,并存储至预设数据库;
监控通知发送模块,用于根据所述监控结果生成监控通知,并根据所述人员信息对相关人员发送所述监控通知;
监控数据条目获取模块,用于当接收到针对所述监控结果的结果查看请求时,根据所述查看请求从所述预设数据库中获取所述监控数据条目,以便相关人员查看所述监控数据条目。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述UDT文件的监控方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述UDT文件的监控方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,当版本管理服务器检测到针对UDT文件的提交请求时可以对提交请求进行拦截,以及生成相应的提交通知并向监控服务器发送提交通知;监控服务器在接收到版本管理服务器发送的提交通知之后,可以根据提交通知向版本管理服务器获取待监控UDT文件,以及将获取的待监控UDT文件发送给远程服务器,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及格式转换,得到目标监控UDT文件;最后,监控服务器可以对远程服务器发送的目标监控UDT文件进行对比操作,得到监控结果。通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,实现对用户所提交的UDT文件的Diff自动化监控,降低开发人员的工作量以及提高工作效率。
附图说明
图1是本发明的一种UDT文件的监控方法实施例一的步骤流程图;
图2是本发明的一种UDT文件的监控方法实施例二的步骤流程图;
图3是本发明实施例中UDT文件的监控方法的应用场景图;
图4是本发明的一种UDT文件的监控方法实施例三的步骤流程图;
图5是本发明实施例中远程服务器存放待监控UDT文件的示意图;
图6是本发明的一种UDT文件的监控***实施例的结构框图;
图7是本发明实施例中生成Diff信息的示意图;
图8是本发明实施例中UDT文件的监控***的前后端框架图;
图9是本发明实施例中UDT文件的监控***的部署模式原理图;
图10是本发明实施例中UDT文件的监控***的前后端工作原理图;
图11是本发明的一种UDT文件的监控装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在开发过程中,策划人员和程序人员可能会对策划配置表进行频繁改动,一般可以对利用协作工具管理配置表时产生的Diff(指的是对比文本文件,所对比的可以是本次修改和最近一次数据内容的差异)文件进行获取,以便通过核查对比获知修改内容,及时发现和修改错误。
对于传统的非UE项目而言,不论是代码、配置表还是资源,都可以通过协作工具提供的Diff功能,或者利用专门的Diff工具获取它们的Diff信息。其工作原理主要可以概括如下:
(1)在协作服务器上维护原始文件A;(2)用户在修改本地文件A后,将修改后的文件A’进行上传;(3)利用Diff工具对比原始文件A以及修改后的文件A’的内容,并得到A与A’的Diff结果;(4)自动获取以及展示Diff结果和相关信息;(5)开发人员和测试人员可以通过Diff结果对修改内容进行确认。
其中,上述(1)和(2)都是获取Diff信息的正常工作内容,而(4)和(5)是对Diff结果进行的二次加工,并按照更为直观且易理解的方式进行呈现,以提高开发人员和测试人员的工作效率以及准确度。对于(3)而言,可以具有不同的Diff规则和获取方法,且得到的Diff结果也是可以不同的。需要说明的是,由于传统的非UE项目文件大多为明文,尽管可以具有不同的Diff规则和获取方法,采用Diff工具进行的对比操作主要是对明文进行简单直接的对比,即在文件内容是乱码的情况下,Diff工具也会将乱码内容当作正常的字符进行对比处理,并得到错误的Diff结果。
然而,UE引擎主张集成化的开发模式,即可以将所有的开发方法和功能都构建在引擎之上,并且集成在UE编辑器中。其中,策划配置表可以采用UDT(UdataTable,UE数据表)的形式进行管理,UDT数据表为UE编辑器自带的一种数据管理类,可以以UE资源文件的形式对数据进行存储,且编辑器本身也可以提供用户在UI(User Interface,使用者界面)操作界面的支持,以方便用户在编辑器上自由编辑数据;UE资源文件(uasset)为UE自带的资源文件格式,其可以以二进制形式存储所有类型的资源,且只有UE本身可以对该uasset文件进行解析。
对于UE项目而言,不论是蓝图、配置表、资源都是由UE编辑器自行管理的,且UE编辑器以UDT数据表的形式对数据进行管理,即所有文件都以uasset文件的格式存在于UDT数据表中,此uasset文件是由UE进行加密后的文件,只有UE本身可以对该uasset文件进行解析。即便采用UE支持的内置协作工具或常见的Diff工具,也不能很好地获取UDT数据表的Diff文件,具体会存在以下问题:
(1)依赖UE引擎,必需通过引擎启动工具才能获取Diff结果;(2)必需打开UE编辑器才能看到Diff结果,在非图形化界面下无法获得;(3)所得到的Diff结果中的信息格式和使用的协作工具有关,信息并不直观;(4)存在中文字符的解码问题,且普遍存在乱码现象;(5)无法实现自动化获取Diff信息;(6)Diff结果和信息无法二次加工,无法在引擎之外使用;(7)受UE和第三方的协作工具的限制,功能扩展受限。
基于上述存在的问题,本发明实施例的核心思想之一是通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,在基于UE集成化的开发模式下,对加密的UDT文件进行解析从而自动化获取Diff信息,在不需要通过UE编辑器人工核查的低效率监控方式的情况下,实现对用户所提交的UDT文件的Diff自动化监控,提高对配置表进行监控的效率。
参照图1,示出了本发明的一种UDT文件的监控方法实施例一的步骤流程图,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,具体可以包括如下步骤:
步骤101,所述监控服务器接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知;
在本发明的一种实施例中,监控服务器在接收到版本管理服务器发送的提交通知,以便根据所接收的提交通知对待监控UDT文件进行获取;其中,监控服务器所接收的提交通知,可以是当版本管理服务器检测到针对UDT文件的提交请求后,对提交请求进行拦截并生成的通知。
其中,对于本地的UDT文件数据来说,要生成针对该UDT文件的Diff信息,则需要对新旧版本的两个UDT文件的数据进行比较,此时可以采用版本管理服务器对不同版本的UDT文件数据进行副本的备份,即在用户每次提交UDT文件时,版本管理服务器均可以对提交的UDT文件进行备份,并可以生成与备份的UDT文件相应的记录以及版本号。
具体的,版本管理服务器检测到针对UDT文件的提交请求对提交请求进行拦截操作,其拦截操作的实现可以通过版本管理服务器的hook(钩子,消息处理机制的一个平台)实现,即一旦检测到提交请求时可以触发hook功能,并通过hook接口获取此次提交的UDT文件的相关提交信息。
需要说明的是,上述采用的版本管理服务器可以是与版本管理***所部署的对应的服务器,该版本管理***可以是任意可写入版本信息且用于管理文件副本的***。
步骤102,所述监控服务器根据所述提交通知获取待监控UDT文件;
在本发明的一种实施例中,在接收到版本管理服务器发送的提交通知之后,监控服务器可以根据所接收到的提交通知对待监控UDT文件进行获取,以便向远程服务器发送待监控UDT文件,并接收得到经过数据处理后的目标监控UDT文件。
在实际应用中,版本管理服务器在检测到针对用户提交UDT文件的提交请求时,可以触发hook功能对此次提交的UDT文件的相关提交信息进行获取,所获取的相关提交信息可以包括UDT文件的文件名、提交人、操作信息(包括新增信息或修改信息)、提交时间以及版本号等;在对UDT文件的相关提交信息进行获取之后,可以根据获取的提交信息生成提交通知,并向监控服务器发送提交通知,以便告知监控服务器具有新的UDT文件被用户进行提交。
在实际应用中,监控服务器接收到版本管理服务器的提交通知后,提交通知可以携带有与此次提交的UDT文件相关的提交信息,监控服务器可以依据携带的提交信息通过版本服务器获取待监控UDT文件,以便将所获取的待监控UDT文件发送给远程服务器。
步骤103,所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
在本发明的一种实施例中,监控服务器根据提交通知对待监控UDT文件进行获取之后,可以向远程服务器发送所获取的待监控UDT文件,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及数据转换,得到进行解析以及转换后的目标监控UDT文件。
在实际应用中,监控服务器根据提交通知并通过版本管理服务器获取的待监控UDT文件可以是uasset格式的UDT文件,由于该uasset文件是由UE进行加密后的文件,只有UE本身可以对该uasset文件进行解析,为了在不打开UE编辑器的前提下,对待监控UDT文件进行解析操作,此时可以采用UE引擎本身提供的一种简易版引擎功能调用方式,可以在实现在不启动引擎编辑器的情况下,通过命令行完成预定义功能。
其中,对UE引擎进行简易版的引擎调用,还是需要启动引擎,且至少需要30s的消耗时间用于启动引擎,该消耗时间还会随着引擎本身关联的功能复杂度持续增长。由于引擎启动的所需的消耗时间消耗是必然的且不可控的,所以可以考虑采用网络通信的方法完成对UE引擎的引擎功能调用。
具体的,可以搭建远程服务器以用于通过命令行启动UE引擎,在远程服务器持续运行的过程中,UE引擎将会长期向该服务器提供用于解析uasset格式的UDT文件的数据解析服务。
以及,由于uasset格式的UDT文件是UE自行定义的数据格式,即远程服务器通过引擎所提供的数据解析服务对待目标UDT文件进行解析,解析得到的UDT文件是以UDT(UserDefined Type Data)形式的数据内容,该自行定义的数据格式不利于直接获取其Diff信息,此时可以将解析得到的UDT形式的数据进行数据转换,以转换为便于获取Diff信息的另一种数据格式,例如Json、py、lua文件等。
需要说明的是,上述进行数据解析以及数据转换操作是在搭建的远程服务器上完成的,不会受到UE编辑器的任何限制,且对于提交UDT文件的用户而言,引擎启动的消耗是不可见的。
步骤104,所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果。
在本发明的一种实施例中,监控服务器在接收到由远程服务器进行数据解析以及数据转换后的目标监控UDT文件之后,可以对具有便于获取Diff信息的数据格式的目标监控UDT文件进行对比操作,以得到对应的监控结果与相应Diff信息。
其中,监控服务器对目标监控UDT文件进行对比操作,可以通过Diff获取模块进行操作,也可以通过对Python的Difflib库进行使用,以获取Diff信息。对此,本发明实施例不加以限制。
在本发明实施例中,当版本管理服务器检测到针对UDT文件的提交请求时可以对提交请求进行拦截,以及生成相应的提交通知并向监控服务器发送提交通知;监控服务器在接收到版本管理服务器发送的提交通知之后,可以根据提交通知向版本管理服务器获取待监控UDT文件,以及将获取的待监控UDT文件发送给远程服务器,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及格式转换,得到目标监控UDT文件;最后,监控服务器可以对远程服务器发送的目标监控UDT文件进行对比操作,得到监控结果。通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,实现对用户所提交的UDT文件的Diff自动化监控,降低开发人员的工作量以及提高工作效率。
参照图2,示出了本发明的一种UDT文件的监控方法实施例二的步骤流程图,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,具体可以包括如下步骤:
步骤201,接收版本管理服务器发送的基于对UDT文件的提交请求进行拦截并生成的提交通知;
在本发明的一种实施例中,监控服务器在接收到版本管理服务器发送的提交通知,以便根据所接收的提交通知对待监控UDT文件进行获取;其中,监控服务器所接收的提交通知,可以是当版本管理服务器检测到针对UDT文件的提交请求后,对提交请求进行拦截并生成的通知。
具体的,用户在完成对UE资源文件的编辑之后,会把编辑后的UE资源文件提交到可写入版本信息的版本管理***,此时版本管理***对应的版本管理服务器在收到用户提交请求后,可以根据用户提交请求接收编辑后的UE资源文件,生成最新的版本号,并会保存此次提交UE资源文件的相关提交信息,提交信息可以包括提交人员、log、UE资源文件名以及提交时间等。
在一种优选的实施例中,监控管理服务器可以采用配置文件的注册方式在版本管理服务器中进行注册,该配置文件存在于版本管理服务器的指定分支地址中,可以使得版本管理服务器向监控服务器转发相关信息,具体表现为,当版本管理服务器检测到用户对UE资源文件进行提交时,可以在用户提交UE资源文件后,可以根据此次提交的相关信息生成提交通知,并把此次的提交通知转发到监控服务器的Web接口,告知监控服务器具有新的UDT文件被用户进行提交,使得监控服务器可以实时捕获用户最新的提交信息。
步骤202,根据提交通知获取待监控UDT文件;
在本发明的一种实施例中,监控服务器接收到版本管理服务器的提交通知后,提交通知可以携带有与此次提交的UDT文件相关的提交信息,监控服务器可以依据携带的提交信息通过版本服务器获取待监控UDT文件,以便将所获取的待监控UDT文件发送给远程服务器。
在本发明的一种实施例中,所述提交通知包括版本信息;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;步骤202可以包括如下子步骤:
子步骤S11,所述监控服务器根据所述版本信息生成UDT文件获取请求,并向所述版本管理服务器发送所述UDT文件获取请求;
在本发明的一种实施例中,监控服务器可以根据提交通知所携带的版本信息生成相应的UDT文件获取请求,由于版本管理服务器可以对所有提交的UDT文件进行备份,并可以生成与备份的UDT文件相应的记录以及版本号,此时监控服务器可以向版本管理服务器发送UDT文件获取请求,以便获取相应的待监控UDT文件。
其中,为了生成针对UDT文件的Diff信息,UDT文件获取请求可以是针对新旧版本的两个UDT文件的获取请求,主要是与此次提交通知对应的当前版本UDT文件以及历史版本UDT文件。
子步骤S12,所述监控服务器接收所述版本管理服务器发送的当前版本UDT文件以及先前版本UDT文件;所述当前版本UDT文件以及所述历史版本文件为所述版本管理服务器根据所述版本信息获取的UDT文件。
在实际应用中,版本管理服务器在接收到监控服务器根据版本信息生成的UDT文件获取请求之后,可以根据版本信息对用户之前提交UDT文件时的相应的记录以及版本号,对进行备份的当前版本UDT文件以及先前版本UDT文件的副本进行获取,并向监控服务器发送所获取的待监控UDT文件,即当前版本UDT文件以及先前版本UDT文件。
需要说明的是,版本管理服务器可以用于维护某个UDT文件的所有提交文件,且可以回溯到任意版本,历史版本UDT文件可以是相比当前版本的上一版本UDT文件,也可以是上几版的UDT文件,对此,本发明实施例不加以限制。
步骤203,向远程服务器发送根据UDT文件获取请求获取的待监控UDT文件,并接收远程服务器发送的通过预设引擎提供的数据解析服务进行数据解析以及格式转换后的目标监控资源数据;
在本发明的一种实施例中,监控服务器根据提交通知对待监控UDT文件进行获取之后,可以向远程服务器发送所获取的待监控UDT文件,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及数据转换,得到进行解析以及转换后的目标监控UDT文件。
在本发明的一种实施例中,所述目标监控资源数据包括第一目标监控资源数据以及第二目标监控资源数据;步骤203可以包括如下子步骤:
子步骤S21,所述监控服务器向远程服务器发送当前版本UDT文件以及所述先前版本UDT文件;
在实际应用中,为了生成针对UDT文件的Diff信息,监控服务器根据监控UDT文件获取请求获取的待监控UDT文件可以是针对新旧版本的两个UDT文件,主要是与此次提交通知对应的当前版本UDT文件以及历史版本UDT文件;此时,监控服务器可以向远程服务器发送当前版本UDT文件以及历史版本UDT文件。
子步骤S22,所述监控服务器接收所述远程服务器发送的第一目标监控资源数据以及第二目标监控资源数据;所述第一目标监控资源数据为对所述当前版本UDT文件进行数据解析以及格式转换后的数据;所述第二目标监控资源数据为对所述先前版本UDT文件进行数据解析以及格式转换后的数据。
在本发明的一种实施例中,监控服务器向远程服务器发送当前版本UDT文件以及历史版本UDT文件,以使得远程服务器采用预设引擎提供的数据解析服务对当前版本UDT文件以及历史版本UDT文件进行数据解析以及格式转换。
具体的,由于UEUDT文件无法脱离UE引擎来解析和读取,可以搭建远程服务器以用于通过命令行启动UE引擎,在远程服务器持续运行的过程中,UE引擎将会长期向该服务器提供用于解析UE资源文件的数据解析服务。
其中,UE引擎可以为远程服务器提供一个Commandlet基类,以使得远程服务器可以通过命令行启动UE引擎,并完成对远程服务器提供预定的功能,在本发明实施例中,预定的功能可以是数据解析服务。Commandlet基类的使用方法可以如下:
1)远程服务定义自己的类UMyTestCommandlet,并继承自UCommandlet;2)在所定义的类UMyTestCommandlet中开发Main函数,此为命令行的唯一入口,入口参数即为命令行的可变参数;3)执行命令:
>>UEEditor-Cmd.exe YourProject.uproject–run=MyTest[other params],其中,UEEditor-Cmd.exe指的是UE引擎编辑器可执行文件位置;YourProject.uproject指的是开发项目的工程位置;–run=MyTest指的是要执行的Commandlet类,即参数对应自定义类的类名;[other params]可以是其它自定义可变参数,以-开头,代码中自行提取即可,比如-TableName=xxx.xls。
需要说明的是,远程服务器可以通过上述命令行的方式启动引擎功能,该引擎功能可以是UE引擎所具有的服务或功能,例如数据解析功能、数据转换功能等。
此外,UE资源文件具有自行定义的数据格式,即远程服务器通过引擎所提供的数据解析服务对待目标UDT文件进行解析,解析得到的UDT文件是以UDT(User Defined TypeData)形式的数据内容,由于UE引擎本身可以对UDT形式的数据进行直接识别处理,且UE本身也是有提供UDT序列化输出接口的,它为编辑器提供一种数据导出的辅助功能,包括导出普通字符串、CSV格式字符串、JSON字符串的接口。其中,前两者的数据很干净,但是对于结构体数据,UE将其中的大括号、中括号,统一替换成了圆括号,这样会对后续的结构体数据转换造成很大的障碍。
在一种优选的实施例中,可以选用JSON格式作为常见的通信标准,即远程服务器还可以采用上述命令行的方式对UE引擎具有的数据导出的辅助功能进行启动,以便采用UE所提供的数据导出功能导出JSON格式的UE资源数据。
然而,通过UE提供的数据导出功能导出的JSON格式的UE资源数据比较杂乱,且包含太多自带的标识信息和格式控制,并不能直接使用,此时可以对导出后的UE资源数据进行一定的后处理。处理的内容主要包括:
1)UE序列化后自带的表头信息,包含资源路径、表名、大小等信息,此时可以进行过滤删除;2)各种换行、退格、回车转移字符,UE是为了做文本展示的格式控制,但是这些转义字符占用数据量,且连续出现,有可能会导致网络传输数据时出错,此时可以进行过滤删除;3)部分字段的多语言本地化附加信息,是UE支持多语言版本的一项功能,会多出一段本地化编码字段,对策划编辑来说无意义,此时可以进行过滤删除;4)部分空白字段的默认值,比如字符串、浮点数、布尔值、结构体等,这些不同类型的单元格数据,在序列化时使用的空白默认值是不同的,UE有默认处理,此时需要确认是否能正确识别;5)浮点数的值在UE中是有很长精度的,不足精度的内容会自行添加,不太可控,建议把精度做下控制,可以减少数据量,提升数值准确度。需要说明的是,导出的JSON格式的UE资源数据可能存在其它无用的UE自带的序列化信息,均可以进行过滤删除。
在本发明的实施例中,远程服务器在接收到监控服务器发送的当前版本UDT文件以及历史版本UDT文件之后,远程服务器可以通过上述Commandlet基类的命令行方式启动UE引擎具有的数据解析功能,对当前版本UDT文件以及历史版本UDT文件进行数据解析,分别得到当前版本资源数据以及历史版本资源数据,然而进行数据解析后得到的当前版本资源数据以及历史版本资源数据不利于直接获取其Diff信息;此时远程服务器同样可以通过命令行方式启动UE引擎具有的数据导出功能对当前版本资源数据以及历史版本资源数据导出为JSON格式的数据,并对导出后数据中无用的UE自带的序列化信息进行过滤删除,分别得到第一目标监控资源数据以及第二目标监控资源数据。
步骤204,对经过数据解析以及数据转换后的目标监控资源数据进行对比操作,得到监控结果;
在本发明的一种实施例中,监控服务器在接收到由远程服务器进行数据解析以及数据转换后的目标监控UDT文件之后,可以对具有便于获取Diff信息的数据格式的目标监控UDT文件进行对比操作,以得到对应的监控结果与相应Diff信息。
在本发明的一种实施例中,所述目标监控资源数据包括以单个属性为行单位的数据;步骤204可以包括如下子步骤:
子步骤S31,所述监控服务器将所述第一目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第一数据;
子步骤S32,所述监控服务器将所述第二目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第二数据;
在实际应用中,监控服务器对第一目标监控资源数据以及第二目标监控资源数据进行对比操作,以得到对应的监控结果与相应Diff信息,然而监控服务器所接收的JSON格式的第一目标监控资源数据以及第二目标监控资源数据中默认是以单个属性为行单位存储的。
例如,以单个属性为行单位存储的第一目标监控资源数据可以如下:
以单个属性为行单位存储的第二目标监控资源数据可以如下:
针对以上的数据,在以单个属性为行单位的第一目标监控资源数据以及第二目标监控资源数据进行对比操作后,可以产生以单个属性为行单位的Json格式数据的Diff信息,且可以清楚地看到两者之间的数据差异,但在实际应用中,用户编辑数据在一行中是可以包括多个属性值的,且用户在查看Diff信息时,一般是先定位哪一行有Diff,然后再关注该行中具体属性的差异,因此,需要将上述以单个属性为行单位存储的JSON格式的第一目标监控资源数据以及第二目标监控资源,转成以多个属性为行单位的JSON格式的数据,分别得到第一数据以及第二数据。
例如,以多个属性为行单位的第一数据可以如下:
{"Name":"1002","HeroID":"180","Openingvoice":"[{\"VoiceID\":0,\"Voicesequence\":[{\"HeroID\":1002,\"Voice\}],"OpeningChatVoice":"[]","Battlevoice":"[{\"voicerD\":0,\"voicesequence\":[{"HerorD\":1002,\"Voice\}]},
以多个属性为行单位的第二数据可以如下:
{"Name":"1009","HeroID":"1009","Openingvoice":"[{\"VoiceID\":0,\"Voicesequence\":[{\"HeroID\":1009,\"Voice\}],"OpeningChatVoice":"[{\"VoiceID\":1009201,\"Voicesequence\":[{\"HeroID\":1009,\"Voice\}],"Battlevoice":"[{\"voicerD\":0,\"voicesequence\":[{"HerorD\":1009,\"Voice\}]}。
子步骤S33,所述监控服务器对所述第一数据以及所述第二数据进行对比操作,得到监控结果。
在实际应用中,在以单个属性为行单位存储的JSON格式的第一目标监控资源数据以及第二目标监控资源,分别转成以多个属性为行单位的JSON格式的第一数据以及第二数据之后,监控服务器可以对第一数据以及第二数据进行对比操作,以得到对应的监控结果与相应Diff信息。
在本发明的一种实施例中,所述监控服务器具有对比模块;子步骤S33可以包括如下子步骤:
子步骤S331,所述监控服务器通过所述对比模块,对所述第一数据以及第二数据进行对比操作,得到对比数据;所述对比数据包括多个行数据以及与所述行数据对应的多个属性值;
其中,由于Python已有成熟的Diff算法库,监控服务器可以通过对比模块采用Python的difflib库,实现对第一数据以及第二数据的对比操作,以得到对比数据。
具体的,Python的difflib库具体使用方法可以如下:
其中,last_json_lines指的是旧的Json数据,即第二数据;
cur_json_lines指的是当前的Json数据,即第一数据;last_file指的是第二数据组合版本号的文件名,例如A_2,起标识的作用;cur_file指的是第一数据组合版本号的文件名,例如A_1,同样起到标识的作用;n表示的是展示Diff所有在行,相邻n行的信息,例如,如果n=2,且Diff在第五行,则最终Diff的结果会显示第三、四、五、六、七行。
子步骤S332,所述监控服务器对与所述行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
在一种优选的实施例中,在通过使用Python的difflib库,对第一数据以及第二数据进行对比操作,并得到对比数据之后,监控服务器还可以通过对比模块对与行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
具体的,在上述得到的对比数据中,可以得到带有“-”号以及“+”号的Diff信息,其中“-”号可以表示当前版本没有的行,即第一数据没有的行,“+”号可以表示当前版本新增的行,即第一数据中新增的行。该优点是能展现出整行的信息,且能帮用户准确定位Diff的行信息。缺点是各个具体的属性差异看不出,还需要再进行二次处理。此时可以对每个属性值的进行遍历,并进行相应处理,以便得到清晰的监控结果以及对应的Diff信息,其处理方式可以如下:
(1)首先可以对行ID进行比较,在这里是Name属性,该属性标记了该行的唯一性,如果该Name属性的值,同时存在于“–”和“+”号的Diff行中,表示该行是修改行,该行标记为*,表示是修改;然后依次遍历该行所有属性值,看值是否相同,如果相同,则不处理;如果不相同,则在旧属性值加“–”号,当前属性值加“+”号,然后拼接起来;(2)如果该Name属性的值,只存在于“-”号的Diff行中,表示改行是删除行,该行所有属性前面都标记一个“-”号;(3)如果该Name属性的值,只存在于“+”号的Diff行中,表示改行是新增行,该行所有属性前面都标记一个“+”号。
步骤205,所述监控服务器根据所述监控结果生成监控数据条目,并存储至预设数据库。
在本发明的一种实施例中,监控服务器在得到清晰的监控结果以及对应的Diff信息之后,可以将监控结果以及对应的Diff信息生成监控数据条目,并存储至预设数据库中,以便相关人员可以从预设数据库中获取监控数据条目。
具体的,监控服务器可以把从Diff获取模块中得到的监控结果以及对应的Diff信息,存储至预设数据库中,这里的预设数据库可以采用MongoDB数据库,MongoDB数据库是一种专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。MongoDB的本地复制和自动故障转移功能使应用程序具有企业级的可靠性和操作灵活性。
监控服务器将监控数据条目存储至MongoDB数据库,由于MongoDB数据库为分布式的数据库,具有适量级内存,它可以将数据存储在物理内存中(而不仅仅是索引和少部分数据),使得数据的读写变得十分迅速;以及采用Json的存储格式进行存储,大大简化了存储的方式和操作。
其中,存储至MongoDB数据库的监控数据条目,可以具有基本信息,例如:_id代表该Diff条目的唯一性;version是用户提交UDT生成的版本号;author和author_name是UDT提交的作者邮箱和作者姓名;ctime是用户提交的时间;action表示UDT操作类型,M是修改,A是新增;log是用户提交UDT的时候,填写的log;branch是SVN的分支信息;columns是每个属性的名称,且可以存在数字下标表示第几列;diff_row_info是存储的Diff信息,其中可以存在数字下标表示该属性值显示在哪一列中;show_list表示哪些属性列,是存在Diff的,存储的数组下标与columns中的一致,方便前端区分展示;hide_list表示哪些属性列,是没有Diff的,存储的数组下标与columns中的一致,方便前端区分展示;file_name是提交的UDT文件名;qa和qa_email表示测试人员的邮箱和姓名;created_date和updated_date表示该Diff创建时间和最后一次更新时间。
在一种优选的实施例中,监控服务器在得到监控结果以及对应的Diff信息之后,还可以根据监控结果生成监控通知,并根据人员信息对相关人员发送监控通知,以通知开发人员和测试人员对修改内容进行确认。
在一种优选的实施例中,监控服务器还可以接收到针对监控结果的结果查看请求,此时可以根据查看请求从预设数据库中获取相应的监控数据条目,以便相关人员对监控数据条目进行查看。
为了使本领域技术人员能够更好地理解本申请实施例,可以参照图3,示出了本发明实施例中UDT文件的监控方法的应用场景图。
在本发明实施例中,当版本管理服务器检测到针对UDT文件的提交请求时可以对提交请求进行拦截,以及生成相应的提交通知并向监控服务器发送提交通知;监控服务器在接收到版本管理服务器发送的提交通知之后,可以根据提交通知向版本管理服务器获取待监控UDT文件,以及将获取的待监控UDT文件发送给远程服务器,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及格式转换,得到目标监控UDT文件;最后,监控服务器可以对远程服务器发送的目标监控UDT文件进行对比操作,得到监控结果。通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,实现对用户所提交的UDT文件的Diff自动化监控,降低开发人员的工作量以及提高工作效率。
参照图4,示出了本发明的一种UDT文件的监控方法实施例三的步骤流程图,应用于远程服务器,所述远程服务器与监控服务器通信连接,具体可以包括如下步骤:
步骤401,所述远程服务器接收所述监控服务器发送的待监控UDT文件;
在本发明的一种实施例中,远程服务器可以接收监控服务器发送的待监控UDT文件,以便采用预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及格式转换。
具体的,远程服务器所接收的待监控UDT文件可以包括当前版本UDT文件以及历史版本UDT文件,当远程服务器接收到当前版本UDT文件以及历史版本UDT文件时,为了避免因传统同名文件覆盖的方法会由于UE引擎的自身特点的影响而返回旧的内容,也可能由于UE引擎占用该文件而导致文件覆盖失败,具体的,参照图5,示出了本发明实施例中远程服务器存放待监控UDT文件的示意图,可以通过创建新的文件夹改变UDT的存放路径,使UE认为返回的对应源文件内容一定是最新的,从而解决了UE引擎文件占用、返回旧缓存的问题。
步骤402,所述远程服务器通过预设引擎所提供的数据解析服务对所述待监控UDT文件进行数据解析,得到目标监控资源数据;
步骤403,所述远程服务器向所述监控服务器发送所述目标监控资源数据,以使所述监控服务器根据所述目标监控资源数据得到监控结果。
在本发明实施例中,当版本管理服务器检测到针对UDT文件的提交请求时可以对提交请求进行拦截,以及生成相应的提交通知并向监控服务器发送提交通知;监控服务器在接收到版本管理服务器发送的提交通知之后,可以根据提交通知向版本管理服务器获取待监控UDT文件,以及将获取的待监控UDT文件发送给远程服务器,以便远程服务器通过预设引擎提供的数据解析服务对待监控UDT文件进行数据解析以及格式转换,得到目标监控UDT文件;最后,监控服务器可以对远程服务器发送的目标监控UDT文件进行对比操作,得到监控结果。通过版本管理服务器对针对UDT文件的提交请求的拦截操作,远程服务器具有预设引擎提供的数据解析服务,以及监控服务器对目标监控UDT文件的对比操作,实现对用户所提交的UDT文件的Diff自动化监控,降低开发人员的工作量以及提高工作效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明的一种UDT文件的监控***实施例的结构框图,所述***包括版本管理服务器601、监控服务器602以及远程服务器603,
其中,所述版本管理服务器601用于当检测到对预设UDT文件的提交请求时,对所述提交请求进行拦截并生成提交通知,以及向所述监控服务器发送所述提交通知;
所述监控服务器602用于接收所述版本管理服务器发送的提交通知,并根据所述提交通知获取待监控UDT文件,以及向远程服务器发送所述待监控UDT文件;
所述远程服务器603用于通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换得到目标监控资源数据,并向所述监控服务器发送所述目标监控资源数据;
所述监控服务器602还用于接收所述远程服务器发送的目标监控资源数据,以及对所述目标监控资源数据进行对比操作,得到监控结果。
具体的,参照图7,示出了本发明实施例中生成Diff信息的示意图,具体生成Diff信息的过程可以如下:
①为了获取Diff信息,除了需要当前版本文件,还需要有可对比的文件。此时可以采用版本管理服务器,回溯到历史提交的任意版本文件。假设当前文件名为A1,通过版本管理服务器回溯到上一个提交的版本文件A2,以得到两个不同版本的对比文件A1和A2;②由于UDT文件(即UEUDT文件)只能通过UE引擎进行解析,可以采用将文件解析放到外部的方式对UDT文件进行解析,例如搭建由UE引擎提供的具有数据解析功能的远程服务器;③采用HTTP文件发送的方式,把UDT文件A1和A2,传输到远程已开启UE文件解析的服务器;④远程UE服务器,接收监控服务器,即可以是与Diff***对应的服务器发来的UDT源文件;⑤通过UE引擎的文件解析功能将UDT文件A1和A2的内容,转为可读的Json格式的数据,然后将Json数据通过HTTP方式发送回监控服务器;⑥监控服务器接收到的Json格式的数据,由于Json格式的数据默认是以单个属性为行单位存储的;⑦此时可以把Json格式数据转成多个属性为行单位的数据,再进行Diff数据的比较。
在一种优选的实施例中,监控服务器在得到监控结果以及对应的Diff信息之后,还可以根据监控结果生成监控通知,并根据人员信息对相关人员发送监控通知,以通知开发人员和测试人员对修改内容进行确认,以及监控服务器还可以接收到针对监控结果的结果查看请求,此时可以根据查看请求从预设数据库中获取相应的监控数据条目,以便相关人员对监控数据条目进行查看。
参照图8,示出了本发明实施例中UDT文件的监控***的前后端框架图,UDT文件的监控***的前端可以采用Bootstrap4框架,该部分采用HTML+JavaScript+Jquery+AJAX实现;其后端可以采用Flask框架,是一个轻量级Web应用框架,它使用简单的核心,方便拓展,在本发明实施例中,可以加入如下模块:
(1)OpenID登录认证:所有用户访问,都必须经过用户认证,有权限的用户才能访问Diff页面;(2)MongoDB:数据库是MongoDB,可快速读取数据,返回给用户;(3)Log中心:有助于记录用户操作信息和报错信息,可以有三种等级log:Error:运行发生错误时记录;Warning:运行发生警告时记录;nfo:记录用户的操作;(4)任务处理队列:这是一个守护进程,***每次收到Diff处理请求,均会放到这个后台处理队列中,不会阻塞其他用户对网页的访问;(5)消息通知***:专门用于通知用户的***,例如有Diff生成,或Diff***运行异常时,给管理员或其他用户短信、邮件的通知。
其部署模式可以采用virtualenv+gunicorn+supervisor+nginx的部署模式,参照图9,示出了本发明实施例中UDT文件的监控***的部署模式原理图,Diff***是通过Gunicorn启动来产生应用进程的,Diff***和Gunicorn的运行环境都依赖virtualenv虚拟环境;Gunicorn应用进程,通过Supervisor进行管理;用户请求通过Nginx反向代理,发送到Diff***处理请求,如果是静态文件下载,则可以直接通过Nginx静态文件下载,无需占用Diff***资源。
参照图10,示出了本发明实施例中UDT文件的监控***的前后端工作原理图,(1)用户通过浏览器发起HTTP访问请求;(2)后端接收到用户请求后,先对用户进行OpenID的身份验证;(3)用户输入正确的OpenID身份信息后,方可进行下一步访问;(4)Diff***根据用户访问请求,从数据库中检索相关数据;(5)将从数据库中检索的数据,进行格式化输出,最后返回给用户;(6)在用户端,浏览器会将服务器返回的数据,展示出来。
其中,Diff前端页面功能展示,主要有以下三个方面:(1)所有未确认Diff条目展示,可以清晰看到每次提交的文件名、版本号、提交时间,提交人和log信息,可以手动指派跟进的测试人员;最右侧“确认”按键,提供给测试人员使用,测试人员确认Diff没有问题,即可点击“确认”,该记录就会转到“历史记录”中;界面右上角的“更新所有”和“更新最近”,是提供给用户,手动生成Diff使用的,例如用户加入了其他想监控的UDT文件,此时点击“更新所有”,会生成该文件的所有历史提交Diff;
(2)Diff具体内容页面;(3)单文件所有历史Diff条目,可看到单个文件的,所有历史提交的Diff,包括确认和未确认的,方便用户进行针对性筛选。
在本发明实施例中,解决了只能通过编辑器才可查看UDT文件(即UEUDT文件)和Diff信息的问题,降低了用户的操作复杂度,同时因为是后台自动获取Diff的,不需要人工查看和跟进,可在第一时间捕捉修改,获取Diff信息,降低了开发人员的工作量,提高了工作效率。
在本发明实施例中,因开发过程中,UDT的修改会对产品功能产生影响,当发生错误时,开发人员就需要追溯修改Diff以查询问题发生的原因。在确保不会遗漏任何UDT修改的情况下,提取需要的Diff信息,并清晰的展示在Web前端,开发人员可以轻松、快速的通过页面上的信息追溯修改内容,查找错误原因,提高工作效率。
在本发明实施例中,因开发过程中,UDT的修改会对产品功能产生影响,故而存在错误风险。测试人员在日常工作中,需要确认UDT的每次修改的具体内容是否正确,以免开发人员在不知情或操作失误的情况下改出问题,引发错误。为测试人员提供及时、有效、便捷、高效的自动化监控服务,测试人员只需要在Web前端浏览Diff信息即可。
在本发明实施例中,实现了对加密UDT文件自动获取Diff信息,和传统的明文数据获取Diff和监控达到了一样的效果,不仅能够实时获取Diff和处理信息,而且在用户操作、信息展示、工作习惯和经验上都完美继承,在用户层面没有任何因改变而导致的学习成本。
在本发明实施例中,建立在UDT之上的,因此UDT的任何改动会直接生效,不需要额外维护,任何扩展都不必考虑UDT本身功能影响。还可以在获取的Diff信息之上做任何需要的二次开发,提供一种需要的扩展功能,未来还可再次开发自动纠错、错误报警等功能。因为核心功能实现简单,独立性强,自由度高,所以未来有其它任何的工作需求,都是可以进行自由拓展的。
参照图11,示出了本发明的一种UDT文件的监控装置实施例的结构框图,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,具体可以包括如下模块:
提交通知接收模块1101,用于接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知;
待监控UDT文件获取模块1102,用于根据所述提交通知获取待监控UDT文件;
目标监控资源数据接收模块1103,用于向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
监控结果获取模块1104,用于对所述目标监控资源数据进行对比操作,得到监控结果。
在本发明的一种实施例中,所述提交通知包括版本信息;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;待监控UDT文件获取模块可以包括如下子模块:
UDT文件获取请求发送子模块,用于根据所述版本信息生成UDT文件获取请求,并向所述版本管理服务器发送所述UDT文件获取请求;
UDT文件接收子模块,用于接收所述版本管理服务器发送的当前版本UDT文件以及先前版本UDT文件;所述当前版本UDT文件以及所述历史版本文件为所述版本管理服务器根据所述版本信息获取的UDT文件。
在本发明的一种实施例中,所述目标监控资源数据包括第一目标监控资源数据以及第二目标监控资源数据;目标监控资源数据接收模块可以包括如下子模块:
UDT文件发送子模块,用于向远程服务器发送当前版本UDT文件以及所述先前版本UDT文件;
目标UDT文件接收子模块,用于接收所述远程服务器发送的第一目标监控资源数据以及第二目标监控资源数据;所述第一目标监控资源数据为对所述当前版本UDT文件进行数据解析以及格式转换后的数据;所述第二目标监控资源数据为对所述先前版本UDT文件进行数据解析以及格式转换后的数据。
在本发明的一种实施例中,所述目标监控资源数据包括以单个属性为行单位的数据;监控结果获取模块可以包括如下子模块:
第一数据获取子模块,用于将所述第一目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第一数据;
第二数据获取子模块,用于将所述第二目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第二数据;
监控结果获取子模块,用于对所述第一数据以及所述第二数据进行对比操作,得到监控结果。
在本发明的一种实施例中,所述监控服务器具有对比模块;监控结果获取子模块可以包括如下单元:
对比数据获取单元,用于通过所述对比模块,对所述第一数据以及第二数据进行对比,得到对比数据;所述对比数据包括多个行数据以及与所述行数据对应的多个属性值;
监控结果获取单元,用于对与所述行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
在本发明的一种实施例中,所述提交通知包括人员信息;在所述监控服务器根据所述目标资源数据得到监控结果之后,还包括:
监控数据条目生成模块,用于根据所述监控结果生成监控数据条目,并存储至预设数据库;
监控通知发送模块,用于根据所述监控结果生成监控通知,并根据所述人员信息对相关人员发送所述监控通知;
监控数据条目获取模块,用于当接收到针对所述监控结果的结果查看请求时,根据所述查看请求从所述预设数据库中获取所述监控数据条目,以便相关人员查看所述监控数据条目。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的对比简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述UDT文件的监控方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对UDT文件的监控方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种UDT文件的监控方法、一种UDT文件的监控***和一种UDT文件的监控装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种UDT文件的监控方法,其特征在于,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,所述方法包括:
所述监控服务器接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知,所述提交通知包括版本信息;
所述监控服务器根据所述提交通知获取待监控UDT文件;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;
所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果。
2.根据权利要求1所述的方法,其特征在于,所述监控服务器根据所述提交通知获取待监控UDT文件,包括:
所述监控服务器根据所述版本信息生成UDT文件获取请求,并向所述版本管理服务器发送所述UDT文件获取请求;
所述监控服务器接收所述版本管理服务器发送的当前版本UDT文件以及历史版本UDT文件;所述当前版本UDT文件以及所述历史版本UDT文件为所述版本管理服务器根据所述版本信息获取的UDT文件。
3.根据权利要求2所述的方法,其特征在于,所述目标监控资源数据包括第一目标监控资源数据以及第二目标监控资源数据;所述监控服务器向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据,包括:
所述监控服务器向远程服务器发送当前版本UDT文件以及所述历史版本UDT文件;
所述监控服务器接收所述远程服务器发送的第一目标监控资源数据以及第二目标监控资源数据;所述第一目标监控资源数据为对所述当前版本UDT文件进行数据解析以及格式转换后的数据;所述第二目标监控资源数据为对所述历史版本UDT文件进行数据解析以及格式转换后的数据。
4.根据权利要求3所述的方法,其特征在于,所述目标监控资源数据包括以单个属性为行单位的数据;所述监控服务器对所述目标监控资源数据进行对比操作,得到监控结果,包括:
所述监控服务器将所述第一目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第一数据;
所述监控服务器将所述第二目标监控资源数据中以单个属性为行单位的数据转换成以多个属性为行单位的数据,得到第二数据;
所述监控服务器对所述第一数据以及所述第二数据进行对比操作,得到监控结果。
5.根据权利要求4所述的方法,其特征在于,所述监控服务器具有对比模块;所述监控服务器对所述第一数据以及所述第二数据进行对比操作,得到监控结果,包括:
所述监控服务器通过所述对比模块,对所述第一数据以及第二数据进行对比,得到对比数据;所述对比数据包括多个行数据以及与所述行数据对应的多个属性值;
所述监控服务器对与所述行数据对应的多个属性值进行遍历以及添加相应行标识,得到对比信息。
6.根据权利要求1所述的方法,其特征在于,所述提交通知包括人员信息;在所述监控服务器根据所述目标监控资源数据得到监控结果之后,还包括:
所述监控服务器根据所述监控结果生成监控数据条目,并存储至预设数据库;
所述监控服务器根据所述监控结果生成监控通知,并根据所述人员信息对相关人员发送所述监控通知;
当接收到针对所述监控结果的结果查看请求时,所述监控服务器根据所述查看请求从所述预设数据库中获取所述监控数据条目,以便相关人员查看所述监控数据条目。
7.一种UDT文件的监控***,其特征在于,所述***包括版本管理服务器、监控服务器以及远程服务器,
所述版本管理服务器用于当检测到对预设UDT文件的提交请求时,对所述提交请求进行拦截并生成提交通知,以及向所述监控服务器发送所述提交通知,所述提交通知包括版本信息;
所述监控服务器用于接收所述版本管理服务器发送的提交通知,并根据所述提交通知获取待监控UDT文件,以及向远程服务器发送所述待监控UDT文件;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;
所述远程服务器用于通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换得到目标监控资源数据,并向所述监控服务器发送所述目标监控资源数据;
所述监控服务器还用于接收所述远程服务器发送的目标监控资源数据,以及对所述目标监控资源数据进行对比操作,得到监控结果。
8.一种UDT文件的监控装置,其特征在于,应用于监控服务器,所述监控服务器与版本管理服务器以及远程服务器通信连接,所述装置包括:
提交通知接收模块,用于接收所述版本管理服务器发送的提交通知;所述提交通知为所述版本管理服务器对UDT文件的提交请求进行拦截并生成的通知,所述提交通知包括版本信息;
待监控UDT文件获取模块,用于根据所述提交通知获取待监控UDT文件;所述待监控UDT文件包括当前版本UDT文件以及历史版本UDT文件;
目标监控资源数据接收模块,用于向远程服务器发送所述待监控UDT文件,并接收所述远程服务器发送的目标监控资源数据;所述目标监控资源数据为所述远程服务器通过预设引擎提供的数据解析服务对所述待监控UDT文件进行数据解析以及格式转换后的数据;
监控结果获取模块,用于对所述目标监控资源数据进行对比操作,得到监控结果。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述UDT文件的监控方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述UDT文件的监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918185.XA CN111949607B (zh) | 2020-09-03 | 2020-09-03 | 一种udt文件的监控方法、***和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918185.XA CN111949607B (zh) | 2020-09-03 | 2020-09-03 | 一种udt文件的监控方法、***和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949607A CN111949607A (zh) | 2020-11-17 |
CN111949607B true CN111949607B (zh) | 2023-06-27 |
Family
ID=73367401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010918185.XA Active CN111949607B (zh) | 2020-09-03 | 2020-09-03 | 一种udt文件的监控方法、***和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949607B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608727B (zh) * | 2021-08-04 | 2023-07-25 | 网易(杭州)网络有限公司 | 可视化编程的代码处理方法、装置、*** |
CN116863040A (zh) * | 2023-05-29 | 2023-10-10 | 上海幻维数码科技有限公司 | 基于引擎搭建的多人协作*** |
CN117312434B (zh) * | 2023-10-08 | 2024-03-19 | 北京皓宽网络科技有限公司 | 一种数据交换方法以及平台 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输***及方法 |
CN106170804A (zh) * | 2013-11-11 | 2016-11-30 | 亚马逊技术有限公司 | 文档管理和协作*** |
US10031920B1 (en) * | 2012-04-23 | 2018-07-24 | Google Llc | Third-party indexable text |
US10311076B1 (en) * | 2016-10-26 | 2019-06-04 | Open Invention Network, Llc | Automated file acquisition, identification, extraction and transformation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7017148B2 (en) * | 2001-07-10 | 2006-03-21 | Intel Corporation | Apparatus and method for UPnP device code generation using XML |
KR101579493B1 (ko) * | 2015-01-08 | 2015-12-23 | 주식회사 파수닷컴 | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
US10664551B2 (en) * | 2016-07-25 | 2020-05-26 | American Megatrends International, Llc | Intuitive user interface (UI) for device or vendor independent network switch management via embedded management controller |
US10191736B2 (en) * | 2017-04-28 | 2019-01-29 | Servicenow, Inc. | Systems and methods for tracking configuration file changes |
US10517020B2 (en) * | 2017-12-15 | 2019-12-24 | Industrial Technology Research Institute | Mobile edge platform servers and user equipment context migration management methods thereof |
-
2020
- 2020-09-03 CN CN202010918185.XA patent/CN111949607B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输***及方法 |
US10031920B1 (en) * | 2012-04-23 | 2018-07-24 | Google Llc | Third-party indexable text |
CN106170804A (zh) * | 2013-11-11 | 2016-11-30 | 亚马逊技术有限公司 | 文档管理和协作*** |
US10311076B1 (en) * | 2016-10-26 | 2019-06-04 | Open Invention Network, Llc | Automated file acquisition, identification, extraction and transformation |
Also Published As
Publication number | Publication date |
---|---|
CN111949607A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613971B1 (en) | Autonomous testing of web-based applications | |
CN111949607B (zh) | 一种udt文件的监控方法、***和装置 | |
US20210318851A1 (en) | Systems and Methods for Dataset Merging using Flow Structures | |
US11379657B2 (en) | Systems and methods for automatic report generation and retaining of annotations in reporting documents after regeneration | |
EP2778929B1 (en) | Test script generation system | |
US11321669B2 (en) | Creating a customized email that includes an action link generated based on form data | |
US11775262B2 (en) | Multi-technology visual integrated data management and analytics development and deployment environment | |
US20080262860A1 (en) | System and Method for Supporting Software | |
US20160306690A1 (en) | Integrated test design, automation, and analysis | |
US11086765B2 (en) | Test reuse exchange and automation system and method | |
US9442718B1 (en) | System for assisting in locating changes in source code version control system | |
CN108073511B (zh) | 测试代码生成方法和装置 | |
CN110865806B (zh) | 代码处理方法、装置、服务器及存储介质 | |
CN117875288A (zh) | 一种表单页面生成方法、装置及电子设备 | |
CN110908907A (zh) | Web页面测试方法、装置、设备及存储介质 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
US10885013B2 (en) | Automated application lifecycle tracking using batch processing | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
US9104573B1 (en) | Providing relevant diagnostic information using ontology rules | |
JP6865042B2 (ja) | ナレッジ管理装置、ナレッジ管理方法およびコンピュータプログラム | |
Singh | Analysis of bug tracking tools | |
US20220374342A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
US20220374340A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
US20220374341A1 (en) | Techniques for decoupled management of software test execution planning and corresponding software test execution runs | |
US11657351B2 (en) | Management system for responding to incidents based on previous workflows |
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 |