CN109621406A - 一种配置文件的生成方法和装置 - Google Patents

一种配置文件的生成方法和装置 Download PDF

Info

Publication number
CN109621406A
CN109621406A CN201811489749.1A CN201811489749A CN109621406A CN 109621406 A CN109621406 A CN 109621406A CN 201811489749 A CN201811489749 A CN 201811489749A CN 109621406 A CN109621406 A CN 109621406A
Authority
CN
China
Prior art keywords
configuration
data
file
template
configuration file
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.)
Pending
Application number
CN201811489749.1A
Other languages
English (en)
Inventor
罗荣君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201811489749.1A priority Critical patent/CN109621406A/zh
Publication of CN109621406A publication Critical patent/CN109621406A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种配置文件的生成方法及装置,通过获取配置对象所需的配置信息、预设的模板中间件以及针对所述配置对象的第一源文件;确定所述第一源文件中与所述配置信息对应的第一信息;采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件,从而通过可编程的模板中间件实现了配置项之间的各种逻辑关系,达到灵活、便捷的效果,且所有配置对象都共用一个模板中间件,剥离了逻辑和数据,极大地提高了配置文件的可维护性、易读性和可扩展性,显著地提高了开发人员生成配置对象启动配置文件的工作效率和准确率。

Description

一种配置文件的生成方法和装置
技术领域
本发明涉及网络游戏技术领域,特别是涉及一种配置文件的生成方法及装置。
背景技术
网络游戏大部分都采用CS架构,即客户端(Client)和服务端(Server)。服务端本质上是可执行程序,需要在操作系统中启动运行,服务端的启动运行涉及程序的启动配置。
为了实现代码结构的合理性,当前采用的是将服务器启动配置写到一个配置文件中,将逻辑和配置分开。如:服务器玩家人数上限、排队人数、数据库地址、监听端口等等,这些配置项不会写在代码中,而是写到一个配置文件中,然后服务器在启动的时候读取这个配置文件,从中获得配置项的值,实现对服务器的控制。此外,当前采用的是“键值对(key-value pair)”的方式对配置文件进行填写。
然而,随着游戏行业的发展,游戏运行的逻辑和功能愈加丰富,服务端的架构也随之愈加复杂,使得服务器的启动配置愈加多样。通过上述简单的配置方式不仅无法满足当前游戏服务端的需求,且采用“键值对”的方式描述启动配置,可读性差,不易维护,容易错漏,还无法实现配置项之间存在逻辑关系。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种配置文件的生成方法和相应的一种配置文件的生成装置。
为了解决上述问题,本发明实施例公开了一种配置文件的生成方法,包括:
获取配置对象所需的配置信息、预设的模板中间件以及针对所述配置对象的第一源文件;
确定所述第一源文件中与所述配置信息对应的第一信息;
采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件。
优选地,所述方法还包括:
所述模板中间件通过如下方式生成:
获取第一数据,所述第一数据为配置项声明;
采用所述第一数据,生成第二数据,所述第二数据为配置模板;
采用所述第二数据,生成第三数据,所述第三数据用于所述配置模板的逻辑实现;
采用所述第一数据、所述第二数据以及所述第三数据,生成所述模板中间件。
优选地,所述方法还包括:
所述第一源文件通过如下方式生成:
获取第一数据中第一目标数据,所述第一目标数据为所有所述配置对象所需的配置项;
采用所述第一目标数据,生成第二目标数据,所述第二目标数据为赋值配置项;
采用所述第二目标数据,生成所述第一源文件。
优选地,所述方法还包括:
采用所述第二目标数据,生成第三目标数据,所述第三目标数据用于所述赋值配置项的逻辑实现;
采用所述第二目标数据和所述第三目标数据,生成所述第一源文件。
优选地,所述采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件,包括:
将所述第一信息导入所述第二数据,生成第四数据,所述第四数据为赋值配置模板;
调用所述第四数据,生成适配所述配置对象的配置文件。
优选地,还包括:
输出所述配置文件;
判断输出目录是否存在预设配置文件;
当所述输出目录不存在所述预设配置文件时,在所述输出目录生成所述配置文件。
优选地,还包括:
当所述输出目录存在所述预设配置文件时,将所述配置文件的修改时间与所述预设配置文件的修改时间进行比较;
根据比较结果,判断是否在所述输出目录生成所述配置文件。
优选地,所述根据比较结果,判断是否在所述输出目录生成所述配置文件,包括:
当所述配置文件的修改时间晚于所述预设配置文件的修改时间时,在所述输出目录生成所述配置文件;
当所述配置文件的修改时间早于所述预设配置文件的修改时间时,删除所述配置文件。
本发明实施例还公开了一种配置文件的生成装置,包括:
配置信息获取模块,用于获取配置对象所需的配置信息;
中间件获取模块,用于获取预设的模板中间件;
源文件获取模块,用于获取针对所述配置对象的第一源文件;
第一信息确定模块,用于确定所述第一源文件中与所述配置信息对应的第一信息;
配置文件生成模块,用于采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件。
本发明实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的配置文件的生成方法。
本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的配置文件的生成方法。
本发明实施例包括以下优点:
在本发明实施例中,通过获取配置对象所需的配置信息,以及获取预设的模板中间件和针对所述配置对象的第一源文件,接着确定第一源文件中与配置对象的配置信息对应的第一信息,然后模板中间件可以通过读取第一源文件中的第一信息,并运行逻辑,生成与配置对象适配的启动配置,接着调用文件生成接口将所有配置对象的启动配置,输出至实体文件,生成配置对象的配置文件,从而通过可编程的模板中间件实现了配置项之间的各种逻辑关系,达到灵活、便捷的效果,且所有配置对象都共用一个模板中间件,剥离了逻辑和数据,极大地提高了配置文件的可维护性、易读性和可扩展性,显著地提高了开发人员生成配置对象启动配置文件的工作效率和准确率。
附图说明
图1是本发明的一种配置文件的生成方法一实施例的步骤流程图;
图2是本发明的一种配置文件的生成方法另一实施例的步骤流程图;
图3是本发明的一种配置文件的生成装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种配置文件的生成方法实施例一的步骤流程图,具体可以包括如下步骤:
步骤101,获取配置对象所需的配置信息、预设的模板中间件以及针对配置对象的第一源文件;
对于网络游戏,它们可以看作是由提供多个特定游戏功能的服务器组合而成。因此,网络游戏可以通过一定的方式将这些特定游戏功能的服务分割,从而把负载分布到独立的服务器上。例如,一般的网络游戏包括网关服务器、中心服务器、主服务器、子服务器、登录服务器、逻辑服务器、邮件服务器、名字服务器、排名服务器以及其他工具服务器等多个服务器,同时不同的服务器可以运行着不同的游戏进程,例如:中心服务器可以运行家族进程,主服务器可以运行玩家存档进程等。通过上述分布式的服务,网络游戏不再只运行在单台服务器上,而是将组成游戏的多个服务分配到多个服务器内,多台服务器之间连接成一个统一的网络,从而使得网络游戏可以运行在分布式服务器上。
由于服务器或者游戏进程本质上是可执行程序,需要在操作系统中启动运行,服务器或者游戏进程的启动运行涉及程序的启动配置。因此,在本发明实施例中,针对不同的配置对象,通过预设的模板中间件获取配置对象所需的配置信息,并获取针对配置对象的第一源文件,然后根据不同的配置对象,输出不同的配置文件,以使配置对象启动成功。
其中,配置对象可以包括服务器和游戏进程,配置信息可以为服务器的配置项,也可以为游戏进程的配置项。
在具体实现中,获取预设的模板中间件、不同服务器或游戏进程所需的配置项以及第一源文件,然后可以根据不同类型的服务器或游戏进程输出不同的配置文件。
在本发明实施例中,模板中间件为可编程的模板文件,其可以包括所有服务器和游戏进程的配置项声明代码段、所有服务器和游戏进程的启动配置模板代码段以及配置项与配置模板的逻辑实现代码段。
在本发明实施例的一种优选实施例中,模板中间件可以通过如下方式生成:
步骤S11,获取第一数据;
在本发明实施例中,模板中间件是可编程的模板文件,由于在代码环境下,因此,服务器或游戏进程需要用到的配置信息,即配置项,都需要进行声明,从而对每一个配置项进行定义,且可以指明每一个配置项的来源。
在具体实现中,首先对函数进行定义,接着该函数解析并返回用户输入的命令行参数,调用该函数,获取用户输入的命令行,并从命令行中提取出值配置文件的路径,从该路径读取值配置文件,并为config赋值。
例如,可以对服务器的组ID(group_id)、服务器上玩家ID的起始ID(start_global_id)以及该服务器运行的机器IP(local_ip)进行声明定义,同时在声明中指明来源,接着可以从来源路径读取值配置文件,获得相应的数值,对group_id、start_global_id以及local_ip进行赋值。
配置项声明完毕后,可以采用枚举的方式将所有配置项声明写入模板中间件中。模板中间件中服务器或游戏进程需要用到的每一个配置项,都进行定义,定义的过程即枚举的过程。
步骤S12,采用所述第一数据,生成第二数据;
在本发明实施例中,当服务器或游戏进程所需的配置项声明完毕,获得第一数据后,通过对第一数据进行处理,获得第二数据,其中,第二数据为所有服务器和游戏进程的启动配置模板代码段。
在具体实现中,用户对需要用到的所有配置项声明完毕后,可以采用枚举的方式将所有与服务器或游戏进程启动有关的配置模板写入模板中间件中,并通过编程的方式将步骤S11枚举的配置项声明中的配置项,引入到适配的配置模板中,从而将配置项引入配置模板,实现每一行配置模板语句都对应一条可用配置语句,使得复杂的启动配置变得易读和易维护。
需要说明的是,在本发明实施例中,不同类型的服务器或游戏进程对应的配置模板包括至少一行配置语句。
需要说明的是,在本发明实施例中,以编程的方式将配置项引入到配置模板为例进行示例性说明,本领域技术人员还可以采用其他方式实现配置模板引用配置项,本发明对此不作限制。
步骤S13,采用所述第二数据,生成第三数据;
在本发明实施例中,通过引用配置项填充配置模板,获得第二数据后,可以对第二数据进行处理,生成第三数据,其中,第三数据为配置项与配置模板的逻辑实现代码段。
在具体实现中,用户在模板中间件中枚举出所有与服务器或游戏进程启动有关的配置模板,并引用相应的配置项之后,可以对配置项和配置模板进行逻辑的实现,包括采用条件控制逻辑或循环控制逻辑对配置项和配置模板进行逻辑的实现,还可以采用条件控制逻辑和循环控制逻辑对配置项和配置模板进行逻辑的实现。
在本发明实施例中的一种示例中,假设当前游戏需要启动4个场景进程,每一个场景进程的启动配置都由7行启动配置实现,若将所有启动配置均写入模板中间件,则需要写入28行启动配置,假设游戏需要启动100个场景,则需要写入700行启动配置,效率低下,且扩展性差。
在具体实现中,可以采用循环控制逻辑对上述4个场景进程的启动配置进行逻辑化处理,并从值配置文件中导入相应的值,然后启动场景进程。通过循环控制逻辑对配置项与配置模板进行逻辑处理,实现了对于具有类似行为的配置模板,可以通过循环结构迭代执行模板语句,免去了重复性地写入配置工作,也使得模板的维护更加方便快捷。
在本发明实施例的另一种示例中,假设当前需要启动不同类型的服务器,则需要根据不同的需求输出相应的配置。例如可以通过条件控制逻辑和循环控制逻辑对配置项与配置模板进行逻辑化处理,从而实现了在统一模板下根据不同类型的服务器进行差异化地输出。
步骤S14,采用第一数据、第二数据以及第三数据,生成模板中间件。
在具体实现中,当枚举配置项声明、配置模板、以及对配置项与配置模板进行逻辑化处理后,可以采用所有配置项声明代码段、配置模板代码段以及配置项与配置模板逻辑实现代码段生成模板中间件。
例如,可以采用写入配置项声明、配置模板以及配置项与配置模板逻辑化处理的顺序生成模板中间件,首先写入配置项声明的代码段,对服务器或游戏进程需要用到的配置项进行声明,接着写入配置模板,用配置项填充模板语句,形成一条条可用的配置语句,然后写入逻辑实现的代码段,对配置项与配置模板进行逻辑实现,从而采用编程的方式将配置项声明、配置模板以及逻辑实现写入模板中间件中。
需要说明的是,在本发明实施例中,以模板中间件包括配置项声明代码段、配置模板代码段以及配置项与配置模板逻辑实现代码段为例进行示例性说明,本领域技术人员还可以根据实际需要,增添其他组成代码段,或删减代码段,本发明对此不作限制。
在本发明实施例中,第一源文件为可编程的值配置文件,包括所有配置对象的配置信息,以及与配置信息对应的第一信息,其中,配置信息为配置项。
需要说明的是,第一信息可以包括名称、端口号、ID值、数值、链接、文件目录、服务器地址等,本领域技术人员可以根据实际需要进行设置,本发明实施例对此不作限制。
在本发明实施例的一种优选实施例中,值配置文件可以通过如下方式生成:
步骤S21,获取第一数据中的第一目标数据;
在本发明实施例中,第一数据为所有服务器和游戏进程所需要的配置项声明,用户可以根据服务器或游戏进程实际的需要,提取第一目标数据,并采用枚举的方式将第一目标数据写入值配置文件中,其中,第一目标数据为声明完毕的配置项代码段。
在具体实现中,用户可以从模板中间件的配置项声明中,提取出声明完毕的配置项,并采用枚举的方式将所有配置项写入值配置文件中。
步骤S22,采用第一目标数据,生成第二目标数据;
在本发明实施例中,第二目标数据为赋值后的配置项代码段。当用户采用枚举的方式将所有配置项写入值配置文件后,可以根据不同的服务器、不同的游戏进程,对每一个配置项进行赋值处理,具体为将第一信息写入与配置项对应的位置,从而获得赋值后的配置项。
步骤S23,采用第二目标数据,生成第一源文件。
在本发明实施例中,用户对所有配置项赋值完毕后,可以枚举出所有赋值后的配置项,并生成值配置文件。
在具体实现中,采用枚举的方式将所有配置项写入值配置文件中,并对所有配置项进行赋值处理,将第一信息写入与配置项对应的位置,例如“group_id=100”、“pyserver_path='/home/x00/running/gameserver/PyServer'”以及“verify_server_url='http://123.45.678.00:1111'”等,然后枚举出所有赋值后的配置项,生成值配置文件。
在本发明实施例的另一种优选实施例中,值配置文件可以通过如下方式生成:
步骤S31,获取第一数据中的第一目标数据;
在具体实现中,用户可以从模板中间件的配置项声明中,提取出声明完毕的配置项,并采用枚举的方式将配置项写入值配置文件中。
步骤S32,采用第一目标数据,生成第二目标数据;
在本发明实施例中,第二目标数据为赋值后的配置项代码段。当用户采用枚举的方式将所有声明完毕的配置项写入值配置文件后,可以根据不同的服务器、不同的游戏进程,对每一个配置项进行赋值处理,具体为将第一信息写入到与配置项对应的位置,从而获得赋值后的配置项。
步骤S33,采用第二目标数据,生成第三目标数据;
在本发明实施例中,第三目标数据为赋值配置项逻辑实现代码段。当用户枚举出所有赋值后的配置项之后,可以进一步对赋值后的配置项进行逻辑化处理,可以采用条件控制逻辑或循环控制逻辑对赋值配置项进行逻辑实现,还可以采用条件控制逻辑和循环控制逻辑对赋值配置项进行逻辑实现,从而实现根据不同服务器类型、不同游戏进程进行差异化赋值。
步骤S34,采用第二目标数据和第三目标数据,生成第一源文件。
在本发明实施例中,用户对所有配置项赋值完毕后,可以枚举出赋值后的配置项,同时可以对赋值后的配置项进行逻辑化处理,然后采用赋值后的配置项代码段和逻辑化处理的配置项代码段,生成值配置文件。
在具体实现中,采用枚举的方式将所有配置项写入值配置文件中,并对所有配置项进行赋值处理,具体为将第一信息写入与配置项对应的位置,例如“group_id=100”、“pyserver_path='/home/x00/running/gameserver/PyServer'”以及“verify_server_url='http://123.45.678.00:1111'”等,接着枚举出所有赋值后的配置项,同时对赋值后的配置项进行逻辑化处理,然后采用赋值后的配置项代码段和逻辑化处理的配置项代码段,生成值配置文件
通过对赋值后的配置项进行逻辑化处理,一方面可以采取递归的方式产出实体值,其中的每个值都在每一次的递归中有不同的差异化赋值(在本实施例中是逐次递增),另一方面可以控制迭代次数,从而极大地提高用户对值配置文件执行差异化赋值时的灵活性、可读性和可维护性。并且由于值配置文件可编程,具有较好的可拓展性,能够实现用户的任何需求。
步骤102,确定第一源文件中与配置信息对应的第一信息;
在本发明实施例中,不同类型的服务器或游戏进程对应的不同的配置信息,针对获取服务器或游戏进程所需的配置信息,可以从第一源文件中确定与配置信息对应的第一信息。
在具体实现中,针对不同的服务器或游戏进程所需的配置项,可以从值配置文件中读取与该配置项对应的第一信息,即读取赋值配置项。
在本发明实施例的一种示例中,假设需要启动不同的场景进程,值配置文件可以根据不同的场景进程对各个配置项进行差异化赋值,具体为:在获取服务器或游戏进程的配置信息之后,可以通过值配置文件针对不同的服务器类型、不同的游戏进程,对各个配置项进行差异化赋值,从而极大地提高了用户对值配置文件执行差异化赋值时的灵活性、可读性和可维护性。
步骤103,采用第一信息,通过模板中间件生成适配配置对象的配置文件。
在本发明实施例中,确定第一源文件中与配置对象所需的配置信息对应的第一信息之后,可以根据第一信息,对模板中间件进行更新,具体为将第一信息导入第二数据,从而获得第四数据。
在具体实现中,获得第一信息后,将值配置文件的第一信息导入模板中间件的配置模板中,对配置模板中与第一信息对应的配置项进行更新,实现对模板中间件中配置模板的赋值。
在本发明实施例的一种优选实施例中,步骤103可以包括如下子步骤;
子步骤S41,将第一信息导入中间件的第二数据,生成第四数据;
在具体实现中,针对配置对象所需的配置信息,从值配置文件中获取对应的配置项赋值代码段,并对代码段进行展开得到相应的第一信息,接着将第一信息导入模板中间件的配置模板代码段,获得第四数据,其中,第四数据为赋值后的配置模板代码段。
子步骤S42,调用第四数据,生成适配配置对象的配置文件。
在本发明实施例中,在配置项与配置模板的逻辑实现过程中,第三数据读取第四数据,并对第一数据和第四数据进行逻辑化处理后,则配置对象的启动配置已经存在与运行时(runtime)内存中,接着通过调用文件生成接口,将内存中配置对象的启动配置,生成与配置对象适配的配置文件。
需要说明的是,在本发明实施例中,以将第一信息导入模板中间件的配置模板代码段生成第四数据为例进行示例性说明,本领域技术人员可以理解,在实际中,模板中间件在调用值配置文件的过程中,并不需要生成新的代码段,或更新代码段。
在具体实现中,模板中间件通过读取值配置文件中的第一信息,将第一信息导入配置模板中,接着对配置项与配置模板进行逻辑化处理,从而将服务器或游戏进程需要的启动配置保存于内存中,等待输出实体文件。然后调用文件生成接口,将内存中的所有启动配置,输出到实体文件中,以使用户传送、部署和管理该配置文件。
在本发明实施例中,通过获取配置对象所需的配置信息,以及获取预设的模板中间件和针对所述配置对象的第一源文件,接着确定第一源文件中与配置对象的配置信息对应的第一信息,然后模板中间件可以通过读取第一源文件中的第一信息,并运行逻辑,生成与配置对象适配的启动配置,接着调用文件生成接口将所有配置对象的启动配置,输出至实体文件,生成配置对象的配置文件,从而通过可编程的模板中间件实现了配置项之间的各种逻辑关系,达到灵活、便捷的效果,且所有配置对象都共用一个模板中间件,剥离了逻辑和数据,极大地提高了配置文件的可维护性、易读性和可扩展性,显著地提高了开发人员生成配置对象启动配置文件的工作效率和准确率。
参照图2,示出了本发明的一种配置文件的生成方法另一实施例的步骤流程图,具体可以包括如下步骤:
步骤201,获取本地环境信息;
在具体实现中,模板中间件支持运行在不同的操作系统中。当中间件运行之后,可以获取本地计算机名称、本地操作系统类型、当前所在目录路径等环境信息,接着将获取的信息传递至后续的模板生成流程中,从而实现了中间件对本地环境的自匹配,提高了中间件的兼容性。
需要说明的是,在本发明实施例中,以中间件作为配置文件生成算法进行示例性说明,本领域技术人员可以采用其他方式生成配置文件,本发明对此不作限制。
步骤202,获取配置对象所需的配置信息、预设的模板中间件以及针对配置对象的第一源文件;
在具体实现中,模板中间件可以获取本地环境的信息,并获取不同类型的服务器或游戏进程所需的配置项,可以读取值配置文件中的第一信息。
步骤203,确定第一源文件中与配置信息对应的第一信息;
在具体实现中,模板中间件可以针对不同的服务器或游戏进程所需的配置项,从值配置文件中读取与配置对象对应的赋值配置项。
步骤204,采用第一信息,通过模板中间件生成适配配置对象的配置文件;
在具体实现中,获得第一信息后,将值配置文件的第一信息导入模板中间件的配置模板中,实现对模板中间件中配置模板的赋值。
在本发明实施例的一种优选实施例中,步骤204可以包括如下子步骤:
子步骤S51,将第一信息导入中间件的第二数据,获得第四数据;
在具体实现中,针对配置对象所需的配置信息,从值配置文件中获取对应的赋值配置项代码段,并对代码段进行展开得到相应的第一信息,接着将第一信息导入模板中间件的配置模板代码段,获得第四数据,其中,第四数据为赋值后的配置模板代码段。
子步骤S52,调用第四数据,生成适配配置对象的配置文件。
在具体实现中,模板中间件通过读取值配置文件中的第一信息,并将第一信息导入配置模板中,接着对配置项与配置模板进行逻辑化处理,从而将服务器或游戏进程需要的启动配置保存于内存中,等待输出实体文件。然后调用文件生成接口,将内存中的所有启动配置,输出到实体文件中,以使用户传送、部署和管理该配置文件。
步骤205,输出配置文件;
在具体实现中,模板中间件生成与配置对象适配的配置文件后,可以将配置文件输出至相应的输出目录中。
步骤206,判断输出目录是否存在预设配置文件;
在具体实现中,针对不同的配置对象,模板中间件从值配置文件读取相应的值,生成配置文件,并在输出该配置文件时,判断输出目录是否存在预设配置文件,接着根据判断结果,判断是否在输出目录中生成配置文件。
步骤207,当所述输出目录不存在预设配置文件时,在输出目录生成配置文件。
在本发明实施例中,判断输出目录是否存在预设配置文件后,可以根据判断结果,进一步判断是否在输出目录中生成配置文件,当输出目录不存在预设配置文件时,在输出目录生成配置文件。当输出目录存在预设配置文件时,表示输出目录已存在相同的配置文件,需要判断是否对预设配置文件进行更新。
在具体实现中,当生成配置文件后,中间件可以判断输出目录是否存在预设配置文件,当不存在预设配置文件时,在输出目录中生成一个配置文件。
当存在预设配置文件时,将配置文件的修改时间与预设配置文件的修改时间进行比较,当配置文件的修改时间晚于预设配置文件的修改时间时,表示此时,输出的配置文件为新的配置文件,可以在输出目录中输出配置文件,当配置文件的修改时间早于预设配置文件的修改时间时,删除输出的配置文件。
在本发明实施例中,通过获取配置对象所需的配置信息,以及获取预设的模板中间件和针对所述配置对象的第一源文件,接着确定第一源文件中与配置对象的配置信息对应的第一信息,然后模板中间件可以通过读取第一源文件中的第一信息,并运行逻辑,生成与配置对象适配的启动配置,接着调用文件生成接口将所有配置对象的启动配置,输出至实体文件,生成配置对象的配置文件,从而通过可编程的模板中间件实现了配置项之间的各种逻辑关系,达到灵活、便捷的效果,且所有配置对象都共用一个模板中间件,剥离了逻辑和数据,极大地提高了配置文件的可维护性、易读性和可扩展性,显著地提高了开发人员生成配置对象启动配置文件的工作效率和准确率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种配置文件的生成装置实施例的结构框图,具体可以包括如下模块:
配置信息获取模块301,用于获取配置对象所需的配置信息;
中间件获取模块302,用于获取预设的模板中间件;
源文件获取模块303,用于获取针对所述配置对象的第一源文件;
第一信息确定模块304,用于确定所述第一源文件中与所述配置信息对应的第一信息;
配置文件生成模块305,用于采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件。
在本发明实施例的一种优选实施例中,还包括:
中间件生成模块,用于生成所述模板中间件;
在本发明实施例的一种优选实施例中,所述中间件生成模块,包括:
第一数据获取子模块,用于获取第一数据,所述第一数据为配置项声明;
第二数据生成子模块,用于采用所述第一数据,生成第二数据,所述第二数据为配置模板;
第三数据生成子模块,用于采用所述第二数据,生成第三数据,所述第三数据用于所述配置模板的逻辑实现;
中间件生成子模块,用于采用所述第一数据、所述第二数据以及所述第三数据,生成所述模板中间件。
在本发明实施例的一种优选实施例中,还包括:
源文件生成模块,用于生成所述第一源文件;
在本发明实施例的一种示例中,所述源文件生成模块可以包括:
第一目标数据获取子模块,用于获取第一数据中第一目标数据,所述第一目标数据为所有所述配置对象所需的配置项;
第二目标数据生成子模块,用于采用所述第一目标数据,生成第二目标数据,所述第二目标数据为赋值配置项;
第一源文件生成子模块,用于采用所述第二目标数据,生成所述第一源文件。
在本发明实施例的另一种示例中,源文件生成模块还可以包括:
第三目标数据生成子模块,用于采用所述第二目标数据,生成第三目标数据,所述第三目标数据用于所述赋值配置项的逻辑实现;
第二源文件生成子模块,用于采用所述第二目标数据和所述第三目标数据,生成所述第一源文件。
在本发明实施例的一种优选实施例中,所述配置文件生成模块包括:
第四数据生成子模块,用于将所述第一信息导入所述第二数据,生成第四数据;
第一配置文件生成子模块,用于调用所述第四数据,生成适配所述配置对象的配置文件。
在本发明实施例的一种优选实施例中,所述装置还可以包括:
配置文件输出模块,用于输出所述配置文件;
第一判断模块,用于判断输出目录是否存在预设配置文件;
第二配置文件生成子模块,用于当所述输出目录不存在所述预设配置文件时,在所述输出目录生成所述配置文件。
在本发明实施例的一种优选实施例中,所述装置还可以还包括:
修改时间比较模块,用于当所述输出目录存在所述预设配置文件时,将所述配置文件的修改时间与所述预设配置文件的修改时间进行比较;
第二判断模块,用于判断是否在所述输出目录生成所述配置文件。
在本发明实施例的一种优选实施例中,所述第二判断模块可以包括:
第三配置文件生成子模块,用于当所述配置文件的修改时间晚于所述预设配置文件的修改时间时,在所述输出目录生成所述配置文件;
配置文件删除子模块,用于当所述配置文件的修改时间早于所述预设配置文件的修改时间时,删除所述配置文件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本发明实施例所述的配置文件的生成方法。
本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的配置文件的生成方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种配置文件的生成方法和一种配置文件的生成装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种配置文件的生成方法,其特征在于,包括:
获取配置对象所需的配置信息、预设的模板中间件以及针对所述配置对象的第一源文件;
确定所述第一源文件中与所述配置信息对应的第一信息;
采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述模板中间件通过如下方式生成:
获取第一数据,所述第一数据为配置项声明;
采用所述第一数据,生成第二数据,所述第二数据为配置模板;
采用所述第二数据,生成第三数据,所述第三数据用于所述配置模板的逻辑实现;
采用所述第一数据、所述第二数据以及所述第三数据,生成所述模板中间件。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述第一源文件通过如下方式生成:
获取第一数据中第一目标数据,所述第一目标数据为所有所述配置对象所需的配置项;
采用所述第一目标数据,生成第二目标数据,所述第二目标数据为赋值配置项;
采用所述第二目标数据,生成所述第一源文件。
4.根据权利要求3所述的方法,其特征在于,还包括:
采用所述第二目标数据,生成第三目标数据,所述第三目标数据用于所述赋值配置项的逻辑实现;
采用所述第二目标数据和所述第三目标数据,生成所述第一源文件。
5.根据权利要求2所述的方法,其特征在于,所述采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件,包括:
将所述第一信息导入所述第二数据,生成第四数据,所述第四数据为赋值配置模板;
调用所述第四数据,生成适配所述配置对象的配置文件。
6.根据权利要求1所述的方法,其特征在于,还包括:
输出所述配置文件;
判断输出目录是否存在预设配置文件;
当所述输出目录不存在所述预设配置文件时,在所述输出目录生成所述配置文件。
7.根据权利要求6所述的方法,其特征在于,还包括:
当所述输出目录存在所述预设配置文件时,将所述配置文件的修改时间与所述预设配置文件的修改时间进行比较;
根据比较结果,判断是否在所述输出目录生成所述配置文件。
8.根据权利要求7所述的方法,其特征在于,所述根据比较结果,判断是否在所述输出目录生成所述配置文件,包括:
当所述配置文件的修改时间晚于所述预设配置文件的修改时间时,在所述输出目录生成所述配置文件;
当所述配置文件的修改时间早于所述预设配置文件的修改时间时,删除所述配置文件。
9.一种配置文件的生成装置,其特征在于,包括:
配置信息获取模块,用于获取配置对象所需的配置信息;
中间件获取模块,用于获取预设的模板中间件;
源文件获取模块,用于获取针对所述配置对象的第一源文件;
第一信息确定模块,用于确定所述第一源文件中与所述配置信息对应的第一信息;
配置文件生成模块,用于采用所述第一信息,通过所述模板中间件生成适配所述配置对象的配置文件。
10.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1-8所述的一个或多个的方法。
11.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-8所述的一个或多个的方法。
CN201811489749.1A 2018-12-06 2018-12-06 一种配置文件的生成方法和装置 Pending CN109621406A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811489749.1A CN109621406A (zh) 2018-12-06 2018-12-06 一种配置文件的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811489749.1A CN109621406A (zh) 2018-12-06 2018-12-06 一种配置文件的生成方法和装置

Publications (1)

Publication Number Publication Date
CN109621406A true CN109621406A (zh) 2019-04-16

Family

ID=66071753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811489749.1A Pending CN109621406A (zh) 2018-12-06 2018-12-06 一种配置文件的生成方法和装置

Country Status (1)

Country Link
CN (1) CN109621406A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084747A (zh) * 2020-09-17 2020-12-15 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN115562719A (zh) * 2022-12-06 2023-01-03 中国人民解放军国防科技大学 一种接口感知的编译配置项补全方法、系统和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577226A (zh) * 2013-10-24 2014-02-12 上海卓盟信息科技有限公司 一种IOS和Android平台上的组件式游戏构建方法
US20140256437A1 (en) * 2013-03-07 2014-09-11 Steelseries Aps Method and apparatus for configuring a gaming accessory
CN104267984A (zh) * 2014-09-23 2015-01-07 上海卓盟信息科技有限公司 基于安卓平台的应用及游戏自动升级方法
CN106469068A (zh) * 2015-08-14 2017-03-01 中国移动通信集团安徽有限公司 应用程序的部署方法及系统
CN107463418A (zh) * 2017-09-12 2017-12-12 北京宝兰德软件股份有限公司 一种服务器中间件的配置文件生成方法及装置
CN108804091A (zh) * 2018-05-25 2018-11-13 广州小天软件有限公司 一种软件代码生成方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140256437A1 (en) * 2013-03-07 2014-09-11 Steelseries Aps Method and apparatus for configuring a gaming accessory
CN103577226A (zh) * 2013-10-24 2014-02-12 上海卓盟信息科技有限公司 一种IOS和Android平台上的组件式游戏构建方法
CN104267984A (zh) * 2014-09-23 2015-01-07 上海卓盟信息科技有限公司 基于安卓平台的应用及游戏自动升级方法
CN106469068A (zh) * 2015-08-14 2017-03-01 中国移动通信集团安徽有限公司 应用程序的部署方法及系统
CN107463418A (zh) * 2017-09-12 2017-12-12 北京宝兰德软件股份有限公司 一种服务器中间件的配置文件生成方法及装置
CN108804091A (zh) * 2018-05-25 2018-11-13 广州小天软件有限公司 一种软件代码生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084747A (zh) * 2020-09-17 2020-12-15 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN112084747B (zh) * 2020-09-17 2024-02-02 瑞庭网络技术(上海)有限公司 一种资源管理方法、装置、电子设备及存储介质
CN115562719A (zh) * 2022-12-06 2023-01-03 中国人民解放军国防科技大学 一种接口感知的编译配置项补全方法、系统和介质

Similar Documents

Publication Publication Date Title
CN105487864B (zh) 代码自动生成的方法和装置
RU2488166C2 (ru) Ориентируемая на обслуживание архитектура, основанная на конвейере
CN105849691B (zh) 用于代码虚拟化和远程进程调用生成的方法和装置
CN110413758B (zh) 基于机器学习的会话框架构建方法和装置
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
CN107944773A (zh) 一种业务流程控制方法、装置及存储介质
CN110162464A (zh) Mcok测试方法及系统、电子设备及可读存储介质
US20190361801A1 (en) Method and system for cloud-based automated software testing
CN111784108B (zh) 一种主数据管理平台的建模方法和装置
CN112162915A (zh) 一种测试数据生成方法、装置、设备及存储介质
WO2016145009A1 (en) Method and system for rapid deployment and execution of customized functionality across multiple distinct platforms
CN112131315A (zh) 多任务并行开发下的数据库同步方法及装置
CN109621406A (zh) 一种配置文件的生成方法和装置
CN106990974B (zh) 一种app应用更新方法、装置及电子设备
CN112988600A (zh) 业务场景测试方法、装置、电子设备及存储介质
CN110019260B (zh) 一种用户数据的更新方法及相关设备
CN112068879B (zh) 基于配置化的客户端应用程序开发框架构建方法及装置
CN106919387A (zh) 一种软件发布系统及发布方法
CN113741960B (zh) 一种基于安卓端的App自动定制打包方法及装置
CN115756692A (zh) 基于样式属性自动组合展示页面的方法及其相关设备
US11714614B2 (en) Code generation tool for cloud-native high-performance computing
CN114936152A (zh) 应用测试方法及设备
CN110321138A (zh) 一种程序更新、迁移方法和装置
CN114500268A (zh) chart资源的部署方法、装置、服务器及存储介质
CN113837870A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190416