软件操作系统及方法
技术领域
本发明涉及一种软件操作系统及方法。
背景技术
目前主流的云计算服务平台,主要研究提供各种资源的使用和管理的平台,包括IaaS(Infrastructure as a Service基础设施即服务)、SaaS(Software as a Service软件即服务),而PaaS(Platform as a Servcie)据其提供的服务又呈现出提供各种需求的功能,包括App Engine、数据库云服务平台等等,软件安装服务系统即属于PaaS类型的云计算系统,传统的IaaS系统,主要考虑提供各种基础设施资源给终端用户,在如何充分、方便利用基础设施资源这块,在软件安装服务系统方面其实有很多可发挥和想象的空间。
发明名称为“一种在虚拟化平台中部署应用的方法及虚拟平台管理器”(申请号:200910243973.7)的专利公开了一种在虚拟机的启动阶段增加的软件安装过程的方法,具体是涉及一种方便的集群部署方法,这种方法不但灵活性欠佳而且由于其采用的是挂载虚拟磁盘的方式,所以只能在虚拟机启动阶段触发安装过程。
现有的云计算IaaS平台主要利用虚拟化技术,给用户提供可定制的、按需使用的硬件计算或其他基础设施资源,用户可利用各种终端查阅和管理自己的虚拟基础设施资源(主要包括虚拟机、虚拟存储空间等),在这种模式下,如何实现虚拟机上运行的各种软件在用户终端上一键安装成功,甚至在部署复杂集群时通过终端不但能按配置要求启动虚拟机,而且能同时安装其需要的各种软件是目前业界亟待解决的问题。
发明内容
本发明的目的在于提供一种软件操作系统及方法,用户通过终端服务模块可一键安装软件到用户相关的虚拟机中,通过虚拟化框架提供的通讯机制在随时触发虚拟机的软件安装或卸载过程,利用此技术用户可更方便部署、管理自己的集群环境,且能方便更多的第三方应用开发者提供自己的应用软件包给终端用户使用,可整合IaaS和SaaS两类系统,把硬件资源、软件资源都以非常便捷的方式如通过终端服务模块的终端界面操作方式进行管理和使用。
为解决上述问题,本发明提供一种软件操作系统,包括:终端服务模块、调度控制模块、软件仓库管理模块、宿主机Agent和虚拟机Agent,其中,
所述终端服务模块用于获取用户的操作请求并发送给所述调度控制模块;
所述调度控制模块用于根据操作请求生成操作指令并发送给宿主机Agent;
所述宿主机Agent用于将所述操作指令发送给虚拟机Agent;
所述虚拟机Agent用于执行所述操作指令;
所述软件仓库管理模块用于存储和提供各种软件包。
进一步的,在上述系统中,所述操作请求包括安装软件请求或卸载软件请求。
进一步的,在上述系统中,所述安装软件请求包括虚拟机Agent的名称、宿主机Agent的物理地址、软件标示信息和软件安装路径的信息。
进一步的,在上述系统中,所述卸载软件请求包括虚拟机Agent的名称、宿主机Agent的物理地址、软件标示信息和软件卸载路径的信息。
进一步的,在上述系统中,所述虚拟机Agent还用于向所述调度控制模块发送获取软件包的标准配置文件的请求和报告操作指令执行状况,并向软件仓库管理模块请求下载软件包。
进一步的,在上述系统中,所述调度控制模块还用于在发送所述操作指令的同时向所述宿主机Agent发送一令牌;
所述宿主机Agent还用于在发送所述操作指令的同时向所述虚拟机Agent发送所述令牌。
进一步的,在上述系统中,所述虚拟机Agent还用于生成一密钥,并将所述密钥和令牌发送给所述调度控制模块。
进一步的,在上述系统中,还包括一元数据模块,所述元数据模块用于存储和提供所述标准配置文件;
所述调度控制模块,还用于向所述元数据模块发送获取所述标准配置文件的请求。
进一步的,在上述系统中,还包括一软件包管理模块,所述软件包管理模块用于接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块和生成所述标准配置文件并发送到所述元数据模块。
进一步的,在上述系统中,所述标准配置文件的格式包括软件名称、版本号和软件在软件包中的相对位置。
进一步的,在上述系统中,所述标准配置文件的格式还包括软件安装脚本相对路径、软件卸载脚本相对路径或软件权限中的一种或任意组合。
进一步的,在上述系统中,所述宿主机Agent根据所述虚拟机Agent的不同虚拟化技术采用相应的消息通讯机制发送所述操作指令给所述虚拟机Agent。
进一步的,在上述系统中,所述宿主机Agent与基于Xen架构的虚拟机Agent通讯时采用Xenstore消息通讯机制发送所述操作指令给所述虚拟机Agent。
根据本发明的另一面,提供一种软件操作方法,包括:
终端服务模块获取用户的操作请求并发送给调度控制模块;
调度控制模块根据所述操作请求生成操作指令并发送给宿主机Agent;
宿主机Agent将所述操作指令发送给虚拟机Agent;
虚拟机Agent执行所述操作指令。
进一步的,在上述方法中,所述操作请求包括安装软件请求或卸载软件请求。
进一步的,在上述方法中,当所述操作请求为安装软件请求时,所述虚拟机Agent执行所述操作指令的步骤中包括:
所述虚拟机Agent从所述调度控制模块获取软件包的标准配置文件;
所述虚拟机Agent分析所述标准配置文件并向软件仓库管理模块请求下载软件包;
所述软件仓库管理模块根据所述请求向所述虚拟机Agent发送软件包;
所述虚拟机Agent向所述调度控制模块报告软件包下载完成;
所述虚拟机Agent安装所述软件包并向所述调度控制模块报告软件安装执行情况。
进一步的,在上述方法统中,当所述操作请求为卸载软件请求时,所述虚拟机Agent执行所述操作指令的步骤中包括:
所述虚拟机Agent从所述调度控制模块获取软件包的标准配置文件;
所述虚拟机Agent卸载所述软件包并向所述调度控制模块报告软件卸载执行情况。
进一步的,在上述方法中,所述调度控制模块将操作指令发送给所述宿主机Agent的同时向所述宿主机Agent发送一令牌;
所述宿主机Agent将所述操作指令发送给虚拟机Agent的同时向所述虚拟机Agent发送所述令牌。
进一步的,在上述方法中,在所述虚拟机Agent从所述调度控制模块获取软件相关的标准配置文件的步骤之前,还包括所述虚拟机Agent生成一密钥,并将所述密钥和令牌发送给所述调度控制模块。
进一步的,在上述方法中,所述调度控制模块从一元数据模块获取所述标准配置文件。
进一步的,在上述方法中,还包括软件包管理模块接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块以及生成软件包的标准配置文件并发送到所述元数据模块。
进一步的,在上述方法中,所述宿主机Agent将所述操作指令发送给虚拟机Agent的步骤中,所述宿主机Agent根据所述虚拟机Agent的不同虚拟化技术采用相应的消息通讯机制。
进一步的,在上述方法中,所述宿主机Agent与基于Xen架构的虚拟机Agent通讯时采用Xenstore消息通讯机制发送所述操作指令给所述虚拟机Agent。
与现有技术相比,本发明通过终端服务模块先获取用户的操作请求,根据所述操作请求生成操作指令并发送给所述调度控制模块,调度控制模块再将所述操作指令发送给所述宿主机Agent,然后宿主机Agent将所述操作指令发送给虚拟机Agent,最后虚拟机Agent执行所述操作指令,为用户提供依赖虚拟化平台提供的软件安装服务平台,用户通过终端服务模块可一键安装软件到用户相关的虚拟机中,通过虚拟化框架提供的通讯机制在随时触发虚拟机的软件安装或卸载过程,利用此技术用户可更方便部署、管理自己的集群环境。
另外,通过软件包管理模块接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块以及生成软件相关的标准配置文件并发送到所述元数据模块,可方便更多的第三方应用开发者提供自己的应用软件包给终端用户使用,可整合IaaS和SaaS两类系统,把硬件资源、软件资源都以非常便捷的方式如通过终端服务模块的终端界面操作方式进行管理和使用。
此外,通过调度控制模块先将所述操作指令发送给所述宿主机Agent,然后宿主机Agent将所述操作指令发送给虚拟机Agent,实现利用虚拟化框架的通讯机制来以事件触发方式通知虚拟机Agent,不会占用虚拟机通讯端口,而且虚拟机Agent也更安全可靠。
附图说明
图1是本发明一实施例的软件操作系统的模块示意图;
图2是本发明一实施例的软件操作方法的流程图;
图3是图2中步骤S5的安装软件详细流程图;
图4是图2中步骤S5的卸载软件详细流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明一实施例的软件操作系统的模块示意图。
如图1所示,本发明还提供一种软件操作系统,所述操作系统负责的操作包括安装软件操作或卸载软件操作,所述操作系统具体包括:软件包管理模块1、终端服务模块2、调度控制模块3、软件仓库管理模块4、宿主机Agent5、虚拟机Agent6和元数据模块7。
软件包管理模块1用于接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块4和生成标准配置文件并发送到所述元数据模块7,具体的,所述标准配置文件的格式包括软件名称、版本号和软件在软件包中的相对位置,除此之外,所述标准配置文件的格式还可包括软件安装脚本相对路径、软件卸载脚本相对路径或软件权限中的一种或任意组合,其中,安装脚本相对路径或软件卸载脚本相对路径主要是针对shell或者bat脚本的可选项,这样安装软件时将根据软件安装脚本和传入的软件安装目录参数、软件相对位置信息安装软件;没有指定安装脚本时虚拟机Agent采用默认的安装脚本执行安装过程;软件包管理模块1是提供给用户的工具包,可以支持将软件按照格式要求打包、上传到软件仓库管理模块4的功能,终端用户或者系统管理员可按照格式要求制作待安装软件包,主要包括其需要依赖的其他软件名称和版本、上传软件包到系统的软件仓库、填写好软件包的标准配置文件如包括软件名称、使用权限后上传软件包到软件仓库管理模块4,以后即可提供给用户在终端上点击方式安装软件到相关的虚拟机Agent 6上,从而方便更多的第三方应用开发者提供自己的应用软件包给终端用户使用,实现IaaS和SaaS两类系统的整合,把硬件资源、软件资源都以非常便捷的方式如通过终端服务模块的终端界面操作方式进行管理和使用。
所述终端服务模块2用于获取用户的操作请求并发送给所述调度控制模块3,具体的,所述终端服务模块2可设于用户的终端设备上,所述操作请求包括安装软件请求或卸载软件请求,例如在安装软件时,用户可在终端设备上按条件查询到其需要的软件,该软件可以是仅限于用户有使用权限的软件,点击“安装”操作,终端服务模块2提示用户选择需要安装此软件的运行中的虚拟机Agent,用户选择后系统开始根据软件的标准配置安装软件到对应的虚拟机,另外,在卸载软件时,用户通过所述终端服务模块2查询到已安装某软件的运行中虚拟机,点击“卸载软件”操作,系统开始根据相关信息卸载已安装在虚拟机上的软件,其中,所述安装软件请求包括虚拟机Agent的名称、宿主机Agent的物理地址、软件标示信息和软件安装路径的信息,所述卸载软件请求包括虚拟机Agent的名称、宿主机Agent的物理地址、软件标示信息和软件卸载路径的信息。
所述调度控制模块3用于根据所述操作请求生成操作指令并发送给所述宿主机Agent,具体的,调度控制模块3是整个软件操作系统的控制器,支持与终端服务模块交互完成各种操作,支持虚拟机Agent查询软件包的标准配置文件等,若所述标准配置文件存储于一元数据模块7中,所述调度控制模块3还用于向所述元数据模块7发送获取所述标准配置文件的请求,为了保证数据传输的安全可靠,所述调度控制模块3还用于在发送所述操作指令的同时向所述宿主机Agent发送一令牌所述令牌用于供调度控制模块3和虚拟机Agent 6之间互相确认身份。
宿主机Agent 5用于将所述操作指令发送给虚拟机Agent 6,即转发调度控制模块3发送给虚拟机Agent 6的操作指令,具体的,所述宿主机Agent 5根据所述虚拟机Agent 6的不同虚拟化技术采用相应的消息通讯机制发送所述操作指令给所述虚拟机Agent 6,例如所述宿主机Agent 5与基于Xen(开放源代码虚拟机监视器)架构的虚拟机Agent 6通讯时采用Xenstore消息通讯机制发送所述操作指令给所述虚拟机Agent 6,其中,Xenstore主要是用来控制建立来自客户机的共享内存区域的事件通道、管理客户机的通知、收集客户机状态数据的工具,另外,为了保证数据传输安全可靠所述宿主机Agent还用于在发送所述操作指令的同时向所述虚拟机Agent发送从所述调度控制模块3接收到的令牌。
虚拟机Agent 6用于执行所述操作指令,具体的,所述虚拟机Agent6用于接受调度控制模块3发送的软件安装指令,向所述调度控制模块3发送获取软件相关的标准配置文件的请求、分析所述标准配置文件和报告操作指令执行状况、向软件仓库管理模块4请求下载软件包,所述标准配置文件可以包括软件名称、软件在软件包中的位置和软件权限,所述标准配置文件可以直接存储在所述调度控制模块3中,也可以另外存放于一元数据模块7,供所述调度控制模块3在需要时进行调取,另外,所述虚拟机Agent 6还用于生成一密钥,所述虚拟机Agent 6将所述密钥和从所述宿主机Agent 5接收到的令牌发送给所述调度控制模块3,在所述虚拟机Agent 6和调度控制模块3通过令牌握手后,可以通过密钥保证所述虚拟机Agent 6从调度控制模块3获取标准配置文件等后续数据传输的安全可靠,需要说明的是,关于虚拟机Agent 6接受调度控制模块3操作指令的通讯机制中,虚拟机Agent 6如果要接受调度控制模块3下发的操作指令,传统的通讯方式是虚拟机启动服务监听某端口等待调度控制模块访问,但是这样对用户虚拟机的侵入性比较大,本发明通过宿主机Agent 5传递调度控制模块3要发送给虚拟机Agent 6的操作指令,利用这种虚拟化框架的通讯机制来以事件触发方式通知虚拟机Agent 6,首先不会占用虚拟机Agent 6通讯端口,同时虚拟机Agent 6也更安全可靠。
所述软件仓库管理模块4用于存储和提供各种软件包,即接受软件包管理模块1上传软件包和查询软件包信息的指令、接受虚拟机Agent 6的下载软件包的操作指令和标准配置文件、管理各种软件包。
所述元数据模块7用于存储和提供所述标准配置文件。
本发明为用户提供依赖虚拟化平台提供的软件安装服务平台,用户通过终端服务模块可一键安装软件到用户相关的虚拟机中,通过虚拟化框架提供的通讯机制在随时触发虚拟机的软件安装或卸载过程,利用此技术用户可更方便部署、管理自己的集群环境。
另外,虚拟机Agent 6与调度控制模块3交互的安全机制是必须更多考虑的因数,本发明通过在调度控制模块3下发操作指令给虚拟机Agent6的同时传递本次操作所用的令牌,然后虚拟机Agent 6与调度控制模块3可使用该令牌来确认自己的身份,双方握手后,可由虚拟机Agent 6提供本次通话时执行业务数据传递的密钥,从而保证数据传输的安全可靠性。
图2是本发明一实施例的软件操作方法示意图,图3是图2中步骤S5的安装软件详细流程图,图4是图2中步骤S5的卸载软件详细流程图。
如图1至图4所示,本发明提供一种软件操作方法,包括:
步骤S1,软件包管理模块1接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块4以及生成软件包的标准配置文件并发送到所述元数据模块7,具体的,所述标准配置文件的格式包括软件名称、版本号和软件在软件包中的相对位置,另外,所述标准配置文件的格式还包括软件安装脚本相对路径、软件卸载脚本相对路径或软件权限中的一种或任意组合;
步骤S2,终端服务模块2获取用户的操作请求,根据所述操作请求生成操作指令并发送给所述调度控制模块3,具体的,所述操作请求包括安装软件请求或卸载软件请求,例如,用户在终端设备上选择合适的待安装软件和需要安装此软件的运行中虚拟机后,点击“安装”操作,终端服务模块3接受到用户操作请求后,发送相关的操作指令给调度控制模块,其中,所述安装软件请求包括虚拟机Agent 6的名称、宿主机Agent 5的物理地址、软件标示信息和软件安装路径的信息;所述卸载软件请求包括虚拟机Agent 6的名称、宿主机Agent 5的物理地址、软件标示信息和软件卸载路径的信息;
步骤S3,调度控制模块3将所述操作指令发送给所述宿主机Agent 5,具体的,为了供调度控制模块3和虚拟机Agent 6互相确认身份,保证数据传输安全可靠,所述调度控制模块3将操作指令发送给所述宿主机Agent 5的同时向所述宿主机Agent 5发送一令牌;
步骤S4,宿主机Agent 5将所述操作指令发送给虚拟机Agent 6,具体的,本步骤中所述宿主机Agent 5根据所述虚拟机Agent 6的不同虚拟化技术采用相应的消息通讯机制,例如所述宿主机Agent 5与基于Xen架构的虚拟机Agent 6通讯时采用Xenstore消息通讯机制发送所述操作指令给所述虚拟机Agent 6,另外,为了供调度控制模块3和虚拟机Agent 6互相确认身份,保证数据传输安全可靠,所述宿主机Agent 5将所述操作指令发送给虚拟机Agent 6的同时向所述虚拟机Agent 6发送所述令牌;
步骤S5,虚拟机Agent执行所述操作指令。
具体的,如图3所示,当所述操作请求为安装软件请求时,步骤S5包括:
步骤S511,所述虚拟机Agent 6生成一密钥,并将所述密钥和从所述宿主机Agent5收到的令牌发送给所述调度控制模块,通过密钥保证所述虚拟机Agent 6从调度控制模块3获取标准配置文件等后续数据传输的安全可靠;
步骤S512,所述虚拟机Agent 6从所述调度控制模块3获取软件包的标准配置文件,具体的,所述标准配置文件可直接存储于所述调度控制模块3,也可存储于一元数据模块7中,当所述虚拟机Agent 6需要获取所述标准配置文件时,所述调度控制模块3从一元数据模块7获取所述标准配置文件,例如调度控制模块3向一元数据模块7发送获取所述标准配置文件的请求和密钥,然后元数据模块7将标准配置文件和密钥发送给调度控制模块3,调度控制模块3再将标准配置文件和密钥发送给虚拟机Agent 6;
步骤S513,所述虚拟机Agent 6分析所述标准配置文件并向所述软件仓库管理模块3请求下载指定软件标示信息和版本的软件包;
步骤S514,所述软件仓库管理模块4根据所述请求向所述虚拟机Agent 6发送软件包;
步骤S515,所述虚拟机Agent 6向所述调度控制模块3报告软件包下载完成;
步骤S516,所述虚拟机Agent 6安装所述软件包并向所述调度控制模块3报告软件安装执行情况,如软件安装进度、软件安装完成等情况,所述虚拟机Agent 6可根据标准配置文件中指定的软件安装脚本相对路径安装所述软件包,没有指定安装脚本相对路径时虚拟机Agent采用默认的安装脚本执行安装过程。
如图4所示,当所述操作请求为卸载软件请求时,步骤S5包括:
步骤S521,所述虚拟机Agent 6从所述调度控制模块3获取软件包的标准配置文件;
步骤S522,所述虚拟机Agent 6卸载所述软件包并向所述调度控制模块报告软件卸载执行情况。
本发明通过终端服务模块先获取用户的操作请求,根据所述操作请求生成操作指令并发送给所述调度控制模块,调度控制模块再将所述操作指令发送给所述宿主机Agent,然后宿主机Agent将所述操作指令发送给虚拟机Agent,最后虚拟机Agent执行所述操作指令,为用户提供依赖虚拟化平台提供的软件安装服务平台,用户通过终端服务模块可一键安装软件到用户相关的虚拟机中,通过虚拟化框架提供的通讯机制在随时触发虚拟机的软件安装或卸载过程,利用此技术用户可更方便部署、管理自己的集群环境。
另外,通过软件包管理模块接受用户的软件上传请求、将软件打包发送到所述软件仓库管理模块以及生成软件相关的标准配置文件并发送到所述元数据模块,可方便更多的第三方应用开发者提供自己的应用软件包给终端用户使用,本发明可整合IaaS和SaaS两类系统,把硬件资源、软件资源都以非常便捷的方式如通过终端服务模块的终端界面操作方式进行管理和使用。
此外,通过调度控制模块先将所述操作指令发送给所述宿主机Agent,然后宿主机Agent将所述操作指令发送给虚拟机Agent,实现利用虚拟化框架的通讯机制来以事件触发方式通知虚拟机Agent,不会占用虚拟机通讯端口,而且虚拟机Agent也更安全可靠。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。