发明内容
为了克服现有技术的不足,本发明的目的在于提供一种基于分布式模块化技术的PaaS平台服务管理系统,设计了针对云计算PaaS平台的控制管理框架,控制管理框架通过服务模板文件可在平台上快速部署和支持新的服务而无需改动或升级平台代码,还通过扩展点接入机制实现控制管理框架中各个模块的功能扩展。
为解决上述问题,本发明所采用的技术方案如下:
方案一:
基于分布式模块化技术的PaaS平台服务管理系统,包括:分布式组件库、控制管理框架、分布式插件库和虚拟资源池,分布式组件库中包括组件,分布式插件库中包括插件,控制管理框架包括可互相交互的前端管理模块、逻辑管理模块和资源管理模块,前端管理模块、逻辑管理模块和资源管理模块分别设有对应的扩展点;前端管理模块用于控制前端页面,资源管理模块用于控制虚拟资源池,逻辑管理模块用于加载和解析组件的内容,生成组件指令,配合前端管理模块和虚拟资源管理模块执行组件指令,并将该组件部署至PaaS平台上运行;逻辑管理模块还用于加载和解析插件的内容,生成插件指令,插件指令包含有对应的扩展点信息,由对应的扩展点所在的管理模块执行插件指令。
进一步地,组件包括组件代码、运行环境和服务模板文件,服务模板文件中包含了该组件的服务配置信息。
进一步地,逻辑管理模块加载组件中的内容,解析组件代码,以及服务模板文件中的服务配置信息,生成组件指令。
进一步地,服务模板文件中还包括插件配置信息,插件包括插件代码和插件配置文件,插件配置文件中包含扩展点信息,插件配置信息与对应的插件配置文件关联;逻辑管理模块解析服务模板文件中的插件配置信息,根据其对应的插件配置文件解析对应的插件代码,生成插件指令。
进一步地,执行组件指令时,生成一个对应于组件的组件副本,将组件副本部署至PaaS平台上运行。
进一步地,前端管理模块、逻辑管理模块和资源管理模块之间通过RPC机制进行交互。
方案二:
一种应用于如权利要求1所述的PaaS平台服务管理系统的实现方法,包括组件部署步骤:
S11:逻辑管理模块从分布式组件库中加载用户指定的组件,组件中包含有组件代码、运行环境和服务模板文件,服务模板文件中包含了该组件的服务配置信息;
S12:逻辑管理模块解析服务模板文件中的服务配置信息,以及组件代码,生成组件指令;
S13:逻辑管理模块分别向前端管理模块和资源管理模块转发组件指令中相应的部分,由逻辑管理模块、前端管理模块和资源管理模块共同执行组件指令,以使组件部署至PaaS平台上运行。
还包括插件实现步骤:
S21:在S12中,若服务模板文件中包含有插件配置信息,则执行S22;
S22:逻辑管理模块解析服务模板文件中的插件配置信息,根据其对应的插件配置文件解析对应的插件代码,生成插件指令;其中,插件代码和插件配置文件均在插件中,插件配置信息与对应的插件中的插件配置文件为关联关系;
S23:由插件指令中的扩展点所对应的管理模块执行插件指令,以实现插件。
进一步地,在S13中,执行组件指令时,生成一个对应于组件的组件副本,将组件副本部署至PaaS平台上运行。
进一步地,前端管理模块、逻辑管理模块和资源管理模块之间通过RPC机制进行数据交互。
相比现有技术,本发明的有益效果在于:模块化的控制管理框架给PaaS平台服务提供了高可扩展性和灵活性,通过服务模板文件可在平台上快速部署和支持新的业务(云服务)。开发者通过服务模板文件可以配置云服务的运行环境和定义服务的安装细节等,然后通过控制管理框架自动处理和集成该服务到PaaS平台上。通过控制管理框架支持的组件机制及其服务模板文件可以在线部署新的服务而无需改动或升级平台代码。控制管理框架还通过分布式扩展点接入机制灵活支持框架内各个模块的功能扩展和配置,开发者通过遵循预设的规范和约束条件开发插件便能很好地满足云服务的功能扩展和定制方 面的需求。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
参考图1-2,一种基于分布式模块化技术的PaaS平台服务管理系统,包括:分布式组件库、控制管理框架、分布式插件库和虚拟资源池。控制管理框架分为三层,分别包括前端管理模块、逻辑管理模块和资源管理模块,逻辑管理模块是控制管理框架的控制中心,再配合前端管理模块和资源管理模块执行相应的指令,其中,前端管理模块、逻辑管理模块和资源管理模块之间通过RPC机制进行数据交互,前端管理模块还与前端页面进行数据交互,资源管理模块还与虚拟资源池进行数据交互。
本方案将服务组件化,也可理解为模块化,组件中的内容由用户遵循预设的规范进行开发和定义,将其中的内容打包成压缩包形成组件,组件保存于分布式组件库中,包括组件代码、运行环境和服务模板文件,当然根据不同服务的需要还可包括一些执行脚本。其中组件代码指可执行的代码,运行环境指支撑该服务运行的环境,例如tomcat容器,服务模板文件中包含了该组件的服务配置信息,服务配置信息定义有运行环境和安装步骤等配置。当一个服务需要被部署 至PaaS平台上时,通过逻辑管理模块加载代表该服务的组件中的内容,解析其中的代码,以及服务模板文件中的服务配置信息,生成组件指令,再配合前端管理模块和虚拟资源管理模块执行组件指令,把该组件部署至PaaS平台上运行。进一步地,在执行组件指令时,会生成一个对应于该组件的组件副本,将该组件副本部署至PaaS平台上运行。
本方案还可实现插件扩展,前端管理模块、逻辑管理模块和资源管理模块分别设有对应的扩展点,每个管理模块均可设置多个扩展点。扩展点可以理解为该控制管理框架定义的可接入扩展的接口,通过声明各个扩展点的预定义的规范,就可以实现相应的扩展,即扩展点是在框架中预定义的可以让开发者进行扩展的接口,扩展就是对扩展点的实现。其中,由一个或多个扩展点对应的扩展组成的集合就是插件。
插件也是由开发者遵循预设的规范进行开发和定义,保存于插件库中。至于如何实现插件的加载和运行,在服务模板中还包括插件配置信息,在插件中包括插件代码和插件配置文件,插件配置文件中包含有扩展点信息,服务模板中的插件配置信息与对应的插件中的插件配置文件关联。当需要加载插件时,通过逻辑管理模块解析服务模板中的插件配置信息,根据其对应的插件配置文件解析对应的插件代码,生成插件指令,再由对应的扩展点所在的管理模块执行插件指令,即如果插件配置文件中包含有前端管理模块的其中一个扩展点,便由前端管理模块执行插件指令。
例如,开发者开发了一个可以通过Web界面修改Tomcat服务器配置参数的插件,该插件包含了前端管理模块的PageSet扩展点和资源管理模块的ServerCommand扩展点的实现,则该插件被加载和解析后,将会同时被前端管理模块和资源管理模块分别执行对应的插件指令。用户在页面提交修改参数后,PageSet扩展点的实现代码把获取到的参数通过RPC机制调用属于该用户的所有后端服务器上的ServerCommand扩展点的实现,通过ServerCommand扩展在后端服务器上修改配置文件的参数。
本方案中的服务模板文件可定义为如下样式:
插件配置文件可定义为如下样式:
前端管理模块包括以下扩展点:
扩展点ID:PageSet
实现该扩展点的扩展可以在前端界面上显示自定义的页面,和处理提交到页面的请求。
逻辑管理模块包括以下扩展点:
扩展点ID:ServiceInstallation
实现该扩展点的扩展将在服务安装时被控制中心加载和执行。
扩展点ID:ServiceStartAction
实现该扩展点的扩展将在服务启动时被控制中心加载和执行。
扩展点ID:ServiceStopAction
实现该扩展点的扩展将在服务停止时被控制中心加载和执行。
扩展点ID:ServiceStatus
实现该扩展点的扩展将在服务状态查询时被控制中心加载和执行。
扩展点ID:ServiceCommand
实现该扩展点的扩展可在运行时被其他模块通过RPC动态调用。
资源管理模块包括以下扩展点:
扩展点ID:ServerStartAction
实现该扩展点的扩展将在用户应用启动时在应用所在集群的所有服务器节点上被执行。
扩展点ID:ServerStopAction
实现该扩展点的扩展将在用户应用启动时在应用所在集群的所有服务器节点上被执行。
扩展点ID:ServerCommand
实现该扩展点的扩展可在运行时被其他模块通过RPC动态调用。
对应于上述的基于分布式模块化技术的PaaS平台服务管理系统,还公开了一种实现方法,方法如下:
一种应用于PaaS平台服务管理系统的实现方法,包括组件部署步骤:
S11:逻辑管理模块从分布式组件库中加载用户指定的组件,组件中包含有组件代码、运行环境和服务模板文件,服务模板文件中包 含了该组件的服务配置信息;
S12:逻辑管理模块解析服务模板文件中的服务配置信息,以及组件代码,生成组件指令;
S13:逻辑管理模块分别向前端管理模块和资源管理模块转发组件指令中相应的部分,由逻辑管理模块、前端管理模块和资源管理模块共同执行组件指令,以使组件部署至PaaS平台上运行。
还包括插件实现步骤:
S21:在S12中,若服务模板文件中包含有插件配置信息,则执行S22;
S22:逻辑管理模块解析服务模板文件中的插件配置信息,根据其对应的插件配置文件解析对应的插件代码,生成插件指令;其中,插件代码和插件配置文件均在插件中,插件配置信息与对应的插件中的插件配置文件为关联关系;
S23:由插件指令中的扩展点所对应的管理模块执行插件指令,以实现插件。
进一步地,在S13中,执行组件指令时,生成一个对应于组件的组件副本,将组件副本部署至PaaS平台上运行。
进一步地,前端管理模块、逻辑管理模块和资源管理模块之间通过RPC机制进行数据交互。
本方案的优点在于:模块化的控制管理框架给PaaS平台服务提供了高可扩展性和灵活性,通过服务模板文件可在平台上快速部署和支持新的业务(云服务)。开发者通过服务模板文件可以配置云服务的 运行环境和定义服务的安装细节等,然后通过控制管理框架中的逻辑管理模块加载服务模板文件,解析相关代码,将生成的指令转发至框架内的其它模块执行,共同维持整个云服务的运行。通过控制管理框架支持的组件机制及其服务模板文件可以在线部署新的服务而无需改动或升级平台代码。控制管理框架还通过分布式扩展点接入机制灵活支持框架内各个模块的功能扩展和配置,开发者通过遵循预设的规范和约束条件开发插件便能很好地满足云服务的功能扩展和定制方面的需求。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。