发明内容
针对现有技术中存在的缺陷,本发明提供一种多进程管理方法、系统及网络设备,能够灵活、方便地通过动态部署的多进程实现负载分担和扩容,从而提高多进程系统的处理能力和并发能力。
本发明提供一种多进程管理方法,其包括以下步骤:
提供信息库,信息库包括多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息;
接收业务组件实例的创建指令,根据所述信息库在待创建的业务组件实例所属的进程中创建该业务组件实例,或者,启动待创建的业务组件实例所属的进程并在新启动的进程中创建该业务组件实例。
在上述技术方案的基础上,所述进程包括预设的初始化进程,初始化进程包括至少一个初始化业务组件实例;
接收所述创建指令之前,所述方法还包括:
上电初始化,启动所述初始化进程,并在已启动的所述初始化进程中创建所述初始化业务组件实例。
在上述技术方案的基础上,所述信息库包括进程部署表、组件配置表和组件部署表,进程部署表包括启动所述进程所需的所述启动信息,组件配置表包括创建所述业务组件实例所需的配置信息,组件部署表包括所述进程以及所述进程内的所有所述业务组件实例的对应关系及状态。
在上述技术方案的基础上,所述方法还包括:接收对所述业务组件实例的注销指令,执行注销操作。
在上述技术方案的基础上,判断所述注销指令指定的业务组件实例是否为所属进程内的最后一个业务组件实例,若否,注销所述业务组件实例;若是,注销所述业务组件实例及所属的进程。
本发明还提供一种多进程管理系统,所述管理系统包括信息库、配置管理模块、实体管理模块和进程管理模块;
所述信息库用于保存多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息;
所述配置管理模块用于接收业务组件实例的创建指令并进行解析,在所述信息库中查找待创建的业务组件实例所属的进程,将解析结果以及查找到的进程转发到所述实体管理模块;
所述实体管理模块用于向所述进程管理模块发送启动所述进程的请求,还用于在已经启动的所述进程中创建所述业务组件实例;
所述进程管理模块用于根据所述实体管理模块的请求,启动所述进程,并通知所述实体管理模块。
在上述技术方案的基础上,所述进程包括预设的初始化进程,初始化进程包括至少一个初始化业务组件实例;
初始化时,所述进程管理模块还用于启动所述初始化进程,所述实体管理模块还用于在已启动的所述初始化进程中创建所述初始化业务组件实例。
在上述技术方案的基础上,所述信息库包括进程部署表、组件配置表和组件部署表,进程部署表包括启动所述进程所需的所述启动信息,组件配置表包括创建所述业务组件实例所需的配置信息,组件部署表包括所述进程以及所述进程内的所有所述业务组件实例的对应关系及状态。
在上述技术方案的基础上,所述配置管理模块还用于接收所述业务组件实例的注销指令并进行解析,将解析结果转发到所述实体管理模块;
所述实体管理模块还用于根据所述解析结果,注销所述注销指令对应的所述业务组件实例,并通知所述进程管理模块注销最后一个所述业务组件实例所属的所述进程,以及向所述配置管理模块返回注销结果;
所述进程管理模块还用于根据所述实体管理模块的通知注销所述进程,并通知所述实体管理模块。
本发明还提供一种网络设备,包括主控盘以及连接主控盘的多个业务盘,主控盘具有上述多进程管理系统,所述进程管理模块在主控盘或者所述创建指令指定的业务盘中创建所述进程。
与现有技术相比,本发明的优点如下:
(1)基于业务部署创建进程,不需要提前计划配置进程,能够更加灵活、方便地通过动态部署的多进程实现负载分担和扩容,从而提高多进程系统的处理能力和并发能力,灵活地应对不同业务压力的组网环境,适应复杂、多变的应用场景,满足用户需求。
(2)初始化时,启动初始化进程并创建初始化业务组件实例,初始化进程以及初始化业务组件实例可以执行不同数据通信设备的通用功能,而新创建的进程和业务组件实例可以用于执行定制化的功能,进一步提高多进程管理的效率、处理能力和并发能力。
(3)信息库包括进程部署表、组件配置表和组件部署表,便于查找和更新维护操作,提高多进程管理的效率。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明提供一种多进程管理方法,本多进程管理方法包括以下步骤:
提供信息库,信息库包括多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息。
接收业务组件实例的创建指令,根据信息库在待创建的业务组件实例所属的进程中创建该业务组件实例,或者,启动待创建的业务组件实例所属的进程并在新启动的进程中创建该业务组件实例。
参见图1所示,本发明第一实施例提供一种多进程管理方法,本多进程管理方法包括以下步骤:
S110提供信息库,信息库包括多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息。
具体的,进程的唯一标识称作proc_id,通常用一个整数值表示,其中,proc_id的数值在信息表中进行配置。每个进程中可以运行至少一个业务组件实例,不同进程内运行的业务组件实例的功能可以相同,也可以不同,根据实际需要设定,不作限定。
信息库包括进程部署表、组件配置表和组件部署表,进程部署表包括启动进程所需的启动信息,组件配置表包括创建业务组件实例所需的配置信息,组件部署表包括进程以及进程内的所有业务组件实例的对应关系,该对应关系可以包括业务组件实例ID与进程ID的对应关系及状态,该状态包括进程的启动状态和业务组件实例的创建状态。
动态进程启动所需要的启动信息包括进程名称、进程启动路径和进程端口信息等。此外,启动信息中还可以增加动态进程的运行目录和运行文件等。信息库包括进程部署表、组件配置表和组件部署表,便于查找和更新维护操作,提高多进程管理的效率。
S120接收业务组件实例的创建指令。该创建指令可以是通过命令行输入的,也可以是指令文件,不作限定。
S130根据现有进程的启动状态,判断待创建的业务组件实例所属的进程是否已经启动,若是,进入步骤S140;若否,进入步骤S150。
S140根据信息库,在待创建的业务组件实例所属的进程中创建该业务组件实例,进入步骤S160。
S150启动待创建的业务组件实例所属的进程并在新启动的进程中创建该业务组件实例。
S160在信息库中更新进程的启动状态和业务组件实例的创建状态。具体的,在组件部署表中,根据进程以及进程内的所有业务组件实例的对应关系,更新进程的启动状态和业务组件实例的创建状态。
本实施例基于业务部署创建进程,不需要提前计划配置进程,能够更加灵活、方便地通过动态部署的多进程实现负载分担和扩容,从而提高多进程系统的处理能力和并发能力,灵活地应对不同业务压力的组网环境,适应复杂、多变的应用场景,满足用户需求。
多进程动态部署理论上没有最高上限,可以更加高效的利用系统资源,而在系统负荷压力小时又可以通过减少进程部署减低系统开销。从设计角度来说动态部署的灵活性和可扩展性更好。
本发明第二实施例提供一种多进程管理方法,本多进程管理方法包括以下步骤:
S210提供信息库,信息库包括多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息。
信息库所包括的内容参见本发明第一实施例中的说明,此处不再赘述。信息库中的进程包括预设的初始化进程,初始化进程包括至少一个初始化业务组件实例。
S220上电初始化,启动初始化进程,并在已启动的初始化进程中创建初始化业务组件实例。
S230接收业务组件实例的创建指令。该创建指令可以是通过命令行输入的,也可以是指令文件,不作限定。
S240判断待创建的业务组件实例所属的进程是否已经启动,若是,进入步骤S250;若否,进入步骤S260。
S250根据信息库,在待创建的业务组件实例所属的进程中创建该业务组件实例,进入步骤S270。
S260启动待创建的业务组件实例所属的进程并在新启动的进程中创建该业务组件实例。
S270在信息库中更新进程的启动状态和业务组件实例的创建状态。具体的,在组件部署表中,根据进程以及进程内的所有业务组件实例的对应关系,更新进程的启动状态和业务组件实例的创建状态。
业务进程实例可以根据实际需要进行动态配置或者初始化配置来进行定制。具体的,初始化时,启动初始化进程并创建初始化业务组件实例,初始化进程以及初始化业务组件实例可以执行不同数据通信设备的通用功能,而新创建的进程和业务组件实例可以用于执行定制化的功能,进一步提高多进程管理的效率、处理能力和并发能力。
本发明第三实施例提供一种多进程管理方法,在本发明第一实施例或者第二实施例的基础上,本多进程管理方法还包括:接收业务组件实例的注销指令,执行注销操作。具体包括以下步骤:
S310接收对业务组件实例的注销指令。
S320判断注销指令指定的业务组件实例是否为所属进程内的最后一个业务组件实例,若否,进入步骤S330;若是,进入步骤S340。
S330注销业务组件实例,进入步骤S350。
S340注销业务组件实例及所属的进程。
S350在信息库中更新进程的启动状态和业务组件实例的创建状态。
在实际应用中,接收创建指令和注销指令的先后顺序没有限制。
参见图2所示,本发明第四实施例提供一种多进程管理系统,管理系统包括信息库、配置管理模块、实体管理模块和进程管理模块。
信息库用于保存多个进程的启动信息以及每个进程中至少一个业务组件实例的配置信息。
具体的,进程的唯一标识称作proc_id,通常用一个整数值表示,其中,proc_id的数值在信息表中进行配置。每个进程中可以运行至少一个业务组件实例,不同进程内运行的业务组件实例的功能可以相同,也可以不同,根据实际需要设定,不作限定。
信息库包括进程部署表、组件配置表和组件部署表,进程部署表包括启动进程所需的启动信息,组件配置表包括创建业务组件实例所需的配置信息,组件部署表包括进程以及进程内的所有业务组件实例的对应关系,该对应关系可以是业务组件实例ID与进程ID的对应关系及状态,该状态包括进程的启动状态和业务组件实例的创建状态。
配置管理模块用于接收业务组件实例的创建指令并进行解析,在信息库中查找待创建的业务组件实例所属的进程,将解析结果以及查找到的进程转发到实体管理模块。
实体管理模块用于判断进程是否启动,向进程管理模块发送启动进程的请求,并在已经启动的进程中创建业务组件实例,以及向配置管理模块返回进程的启动状态和业务组件实例的创建结果。
进程管理模块用于根据实体管理模块的请求,启动进程,并通知实体管理模块,具体的,进程管理模块在创建完动态进程后将动态进程的状态通告给实体管理模块,实体管理模块更新动态进程的状态用于后期的进程实体管理判断。
配置管理模块还用于在组件部署表中,根据进程以及进程内的所有业务组件实例的对应关系,更新进程的启动状态和业务组件实例的创建状态。
进程管理模块负责管理系统中进程的生命周期管理和状态维护。创建物理进程实体,并根据启动信息将进程启动参数传递给作为子进程的业务组件实例。在子进程运行期间监控子进程状态,当实体管理模块需要注销某个进程时,进程管理模块负责关闭这个进程。如果子进程异常退出,进程管理模块需要出发进程故障策略进行业务恢复和处理。
实体管理模块负责业务组件实例的生命周期管理。实体管理模块会加载组件部署表,组件部署表中定义业务组件实例归属的进程(不同进程通过进程ID来标识)。当要创建一个新的业务组件实例时,实体管理模块判断其所属的进程是否启动,如果没有启动则请求进程管理模块启动进程。进程启动成功后,实体管理模块在进程上创建业务组件实例。如果要注销一个业务组件实例时,实体管理模块判断对应的业务组件实例是否为进程内最后一个业务组件实例,在注销进程内最后一个业务组件实例后,实体管理模块还要通知进程管理模块将进程也注销。实体管理模块根据进程管理模块的通知,得到进程的启动状态。
用户可以通过命令行将创建业务组件实例或者注销业务组件实例的指令下发。配置管理模块负责将命令行中的指令解析出来,按照固定的结构格式发送给实体管理模块进程以及在该进程中创建/注销的业务组件实例。
本多进程管理系统可以用于实现上述多进程管理方法,具体的,当创建指令是通过命令行输入时,本管理系统还可以包括命令行模块,命令行模块用于接收并解析用户通过命令行输入的指令,根据信息库中现有业务组件实例分配新的业务组件实例ID(例如业务组件实例ID=11)。然后将解析结果和业务组件实例ID发送给配置管理模块。
配置管理模块收到解析结果和业务组件实例ID,加载信息库,在组件部署表中查找待创建的业务组件实例ID所对应的进程,获取进程ID(例如,进程ID=2),然后生成组件配置信息,将组件配置信息及进程ID发送给实体管理模块。
在其他的实施方式中,配置管理模块还可以收到业务组件实例的创建指令,在组件部署表中直接查找待创建的业务组件实例所对应的进程,获取进程ID,然后生成组件配置信息,将组件配置信息及进程ID发送给实体管理模块。
实体管理模块收到待创建业务组件实例的配置信息后,根据现有的进程状态查找待创建的业务组件实例所属的进程,判断进程(进程ID=2)是否已经创建,如果是,则从组件配置表中加载配置信息,在进程2中启动业务组件实例,完成创建,实体管理模块向配置管理模块返回创建结果。
当进程2处于未启动的状态时,实体管理模块向配置管理模块发送请求消息启动进程,进程管理模块收到请求后读取进程部署表,根据进程ID的对应关系决定进程2的进程名和运行目录分别为process2和p_2,然后根据该信息创建进程2,并通知实体管理模块。实体管理模块从组件配置表中加载配置信息,在进程2中启动业务组件实例,完成创建,实体管理模块向配置管理模块返回进程的启动状态和业务组件实例的创建结果。
在一种实施方式中,配置管理模块、实体管理模块和进程管理模块可以运行在一个管理进程中,以提高整个管理系统的运行效率,在启动初始化进程之前,该管理进程就启动运行。在其他实施方式中,配置管理模块、实体管理模块和进程管理模块也可以分别运行互相独立的进程中。
本发明第五实施例提供一种多进程管理系统,在本发明第四实施例的基础上,信息库中的进程包括预设的初始化进程,初始化进程包括至少一个初始化业务组件实例。
上电初始化时,进程管理模块还用于启动初始化进程,实体管理模块还用于在已启动的初始化进程中创建初始化业务组件实例。
初始化进程以及初始化业务组件实例可以执行不同数据通信设备的通用功能,而新创建的进程和业务组件实例可以用于执行定制化的功能,进一步提高多进程管理的效率、处理能力和并发能力。
本发明第六实施例提供一种多进程管理系统,在本发明第四实施例或者第五实施例的基础上,配置管理模块还用于接收业务组件实例的注销指令并进行解析,将解析结果转发到实体管理模块。
实体管理模块还用于根据解析结果,注销注销指令对应的业务组件实例,并通知进程管理模块注销最后一个业务组件实例所属的进程,以及向配置管理模块返回注销结果。
进程管理模块还用于根据实体管理模块的通知注销进程。
具体的,命令行模块解析用户输入,将命令行信息处理之后发送给配置管理模块,配置管理模块收到注销业务组件实例的指令后生成业务组件实例的注销配置,并将注销配置发送给实体管理模块,实体管理模块收到注销配置,判断业务组件实例所属的进程是否还有其它业务组件实例,如果是则注销业务组件实例并向配置管理模块返回注销结果;否则,请求进程管理模块注销进程,进程管理模块注销进程完毕后通知实体管理模块,实体管理模块向配置管理模块返回业务组件实例的注销结果,或者,进程的注销状态和业务组件实例的注销结果,配置管理模块更新组件部署表。
本发明第七实施例提供一种网络设备,该网络设备包括主控盘以及连接主控盘的多个业务盘,主控盘具有如本发明第六实施例的多进程管理系统,进程管理模块在主控盘或者创建指令指定的业务盘中创建进程。
实体管理模块在启动的进程中创建业务组件实例,以及注销注销指令对应的业务组件实例。
基于动态部署创建/注销多进程的机制,可以灵活地创建/注销进程,系统的负载分担性、对系统资源的利用率和灵活性都得到了很大程度的提升。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。