发明内容
本发明设计了一种工作流引擎集群系统,本发明采用的技术方案包括以下模块:
服务器;
工作流虚拟机镜像;
工作流虚拟机;
服务虚拟机镜像;
服务虚拟机;
调度模块;
服务器管理模块;
虚拟机管理模块;
服务器监控模块;
web服务模块。
所述的服务器,是指安装了虚拟机监视器(Virtual machine monitor),可以同时运行多个虚拟操作系统的计算机,虚拟机监视器可以是不同的虚拟化产品,例如VMWare或者Xen等。
所述的工作流虚拟机镜像,是封装了工作流引擎及其他相关软件的虚拟操作系统镜像。根据企业的实际需要,将工作流引擎及其他所需的相关软件(如数据库等)封装在一个操作系统镜像文件中。
所述的工作流虚拟机,是工作流虚拟机镜像在运行时的实体。工作流虚拟机镜像复制到服务器上启动后,就是一个正在运行的工作流虚拟机,每个工作流虚拟机都有唯一的标识。工作流虚拟机承担工作流引擎的功能,负责接收各种工作流服务请求,推动业务流程的运行。
所述的服务虚拟机镜像,是一个虚拟操作系统镜像,工作流服务在运行过程中会调用到的各种服务的源程序,都安装在这个虚拟操作系统上。
所述的服务虚拟机,是服务虚拟机镜像在运行时的实体。服务虚拟机镜像复制到服务器上启动后,就是一个正在运行的服务虚拟机,每个服务虚拟机都有唯一的标识。服务虚拟机负责接收工作流虚拟机发送的服务请求,运行相应的程序以提供服务。
所述的调度模块,是一个安装在工作流虚拟机上的软件模块。当一个运行中的工作流实例需要执行一个任务时,调度模块根据该任务所包含的服务的标识,在所有提供该服务的服务虚拟机中选择一个服务虚拟机并发送服务请求,服务虚拟机接收到服务请求后运行相应的程序以执行任务。当工作流实例需要执行一个子流程类型的任务时,从虚拟机管理模块获取可用的工作流虚拟机列表,选择一个工作流虚拟机并发送启动工作流服务的请求,工作流虚拟机接收到启动工作流服务的请求后便运行该工作流服务的实例。
所述的服务器管理模块是一个软件模块,其功能包括:
1.服务器信息管理功能
系统管理人员可以将新增的服务器的信息注册到资源池管理模块的数据库中,例如服务器的硬件信息和ip地址等;可以将不再使用的服务器的信息从数据库中删除;若有服务器需要停机进行升级维护,则将数据库中对应的服务器的状态信息修改为维护状态。
2.服务器信息查询功能
资源池管理模块对外提供了服务器信息的查询接口,通过网络可以获取所有服务器信息的列表。
所述的虚拟机管理模块是一个软件模块,其功能包括:
1.虚拟机镜像管理功能
虚拟机镜像管理功能包括工作流虚拟机镜像管理功能和服务虚拟机镜像管理功能。
工作流虚拟机镜像管理功能:管理人员通过该功能启动一个纯净的虚拟操作系统,根据业务部门实际的需求,在该操作系统上安装工作流引擎、配置数据库及其他应用程序等,创建一个定制的工作流虚拟机镜像,创建出的虚拟机镜像文件可以选择保存在虚拟机镜像管理模块所属的服务器上、或者企业的共享存储系统上,每个虚拟机镜像文件都有唯一的标识,根据该标识能从网络获取虚拟机镜像文件。
服务虚拟机镜像管理功能:管理人员通过该功能启动一个纯净的虚拟操作系统,根据业务部门实际的需求,将各种为工作流提供服务的程序、软件部署在该操作系统上,创建一个定制的服务虚拟机镜像,创建出的虚拟机镜像文件可以选择保存在虚拟机镜像管理模块所属的服务器上、或者企业的共享存储系统上,每个虚拟机镜像文件都有唯一的标识,根据该标识能从网络获取虚拟机镜像文件。
2.工作流虚拟机集群部署功能
管理人员可以通过该功能创建工作流虚拟机集群。通过资源池管理模块提供的服务器资源查询功能,虚拟机管理模块获取可用的服务器列表,工作流系统管理人员在服务器列表中选择若干个服务器,并且选择需要部署的虚拟机镜像,便可将虚拟机安装在服务器上,形成工作流虚拟机集群。
3.服务虚拟机集群部署功能
管理人员通过该功能将服务器虚拟机镜像部署在服务器上。通过资源池管理模块提供的服务器资源查询功能,虚拟机管理模块获取可用的服务器列表,工作流系统管理人员在服务器列表中选择若干个服务器,并且选择需要部署的虚拟机镜像,便可将虚拟机安装在服务器上,形成服务虚拟机集群。
4.可靠性配置功能
可靠性配置功能包括工作流虚拟机集群可靠性配置和服务虚拟机集群可靠性配置。
工作流虚拟机集群可靠性配置:
在创建工作流虚拟机镜像时,将工作流引擎的数据库连接配置为指向企业共享的数据库的连接,每个工作流虚拟机上运行的工作流实例的状态数据将会保存在一个可靠的数据库集群上。
服务虚拟机集群可靠性配置:
在创建服务虚拟机镜像时,对于那些数据敏感的服务,配置一个指向企业共享的数据库的连接,则这些服务的数据将会保持在一个可靠的数据库集群上。
同时在共享存储设备上,为每个工作流虚拟机和服务虚拟机指定一个虚拟机状态目录,虚拟机实时的运行状态数据将会实时同步到该目录中,数据的同步方法由该虚拟机所在的服务器的虚拟机监视器产品提供。
5.虚拟机信息管理功能
记录所有正在运行的虚拟机的标识,以及虚拟机所在的服务器的标识,并对外提供查询借口。
所述的服务器监控模块是一个软件模块,包括服务器检测功能和虚拟机迁移功能。
1.服务器检测功能:
该模块定期向每个服务器发送检测信息,服务器接收到检测信息后返回一个应答信息。如果服务器没有返回应答信息,则表明该服务器发生故障。
2.虚拟机迁移功能:
服务器监控模块保存着每台服务器上所有虚拟机的标识。当某台服务器发生故障、或需要停机进行升级维护时,服务器监控模块对该服务器上的所有虚拟机启动虚拟机迁移功能。
服务器监控模块配置了的虚拟机动态迁移软件。当服务器发生故障后,服务器监控模块对该服务器上的虚拟机进行迁移。根据服务器管理模块提供的服务器信息查询功能,获取可用的服务器列表,记大小为n,假设故障服务器上有m个服务虚拟机,根据虚拟机管理模块可靠性配置功能中指定的虚拟机状态目录上保存的虚拟机状态数据,服务器监控模块上的虚拟机动态迁移软件将m个虚拟机迁移到n个可用的服务器上并启动,每个服务器启动m/n个虚拟机。由于在虚拟机管理模块的可靠性配置功能中将工作流虚拟机的工作流实例的数据、服务虚拟机的数据都保存在企业的共享数据库上,被迁移的虚拟机都能继续进行迁移前的工作。
所述的web服务模块是一个软件模块,部署在企业中一个能被外网访问到的服务器上。web服务模块将企业的各种工作流服务封装为web服务,接收用户的工作流服务请求,并根据的负载均衡策略,将请求转发给某个工作流虚拟机进行工作流服务的处理。
本发明体现的技术特点如下
1.将不同工作流产品和配套的软件封装为虚拟操作系统,部署在安装了虚拟机监视器产品的服务器上运行,称为工作流虚拟机,多个工作流虚拟机组成的集合称为工作流虚拟机集群。工作流虚拟机发挥工作流引擎的功能,推动工作流流程、进行任务的调度,并且虚拟机技术使得工作流应用能和其他应用在同一台服务器上运行,互相独立。工作流虚拟机集群起到了分担工作流服务请求的作用,使得企业能承担较大规模的工作流服务。
2.将工作流服务会调用到的软件程序等部署、安装在一个虚拟操作系统上,部署在安装了虚拟机监视器产品的服务器上运行,称为服务虚拟机,多个服务虚拟机组成的集合称为服务虚拟机集群。服务虚拟机为工作流流程提供具体的软件服务,如启动一个程序进行数据处理、将文件转发给工作人员的计算机上等。服务虚拟机集群使得企业能承担较大规模的任务处理工作。
3.通过服务器管理模块,对企业中的服务器进行管理,管理人员可以添加、删除服务器信息,或者修改服务器状态信息以进行维护升级;通过虚拟机管理模块可以创建不同的定制的工作流虚拟机和服务虚拟机,并且可以将虚拟机部署在服务器管理模块中标记为可用的服务器上并启动。服务器管理模块和虚拟机管理模块实现了企业的物理资源、虚拟机资源的有效管理。
4.通过虚拟机管理模块的可靠性配置功能,将工作流虚拟机的流程状态数据保存在企业的数据库集群中;将服务虚拟机的虚拟机状态数据保存在企业的共享存储设备中,应用的数据保存在企业的数据库集群中。可靠性配置功能将重要的数据保存在已有的成熟的数据存储产品中,为数据恢复提供了保障。
5.服务器监控模块对服务器进行监测。当发现服务器故障或者需要停机进行升级维护时,便启动虚拟机的迁移功能。虚拟机迁移包括了工作流虚拟机的迁移和服务虚拟机的迁移。工作流虚拟机的迁移是将故障服务器上的工作流虚拟机的工作流实例转移到新的工作流虚拟机上,由新的工作流虚拟机进行运行调度;服务虚拟机的迁移则是通过服务器监控模块上的虚拟机迁移软件,将整个虚拟机重新部署到其他服务器上继续运行。工作流虚拟机迁移所需的工作流实例数据、服务虚拟机迁移所需的虚拟机状态数据已经有虚拟机管理模块的可靠性配置功能储存到企业的数据库集群和共享存储资源上。虚拟机的迁移功能提高了企业工作流服务的可靠性,使得工作流服务可以不间断地进行。
实施方式
1.系统的部署方式
系统的架构如图1所示。
将服务器管理模块、虚拟机管理模块、服务器监控模块、web服务模块安装在计算机上。
登陆服务器管理模块,将企业的服务器信息注册到服务器管理模块中。
登陆虚拟机管理模块,进行工作流虚拟机镜像和服务虚拟机镜像的创建。通过虚拟机管理模块的虚拟机部署功能,选择服务器,将工作流虚拟机镜像和服务虚拟机镜像复制到服务器上并启动虚拟机。
启动服务器监控模块,开始对服务器状态进行监测。
2.系统的运行方式
在系统运行过程中,web服务模块将接收工作流服务请求。当接收到一个工作流服务请求后,解析工作流服务请求中的工作流服务标识,查找所有能够提供该工作流服务的工作流虚拟机,根据负载均衡策略,选择其中一个工作流虚拟机启动该工作流服务的实例。工作流实例在运行过程中,如果需要执行一个任务,则工作流虚拟机的调度模块从虚拟机管理模块获取服务虚拟机列表,选择一个服务虚拟机执行任务;如果需要启动一个子流程,工作流虚拟机的调度模块从虚拟机管理模块获取工作流虚拟机列表选择,一个工作流虚拟机启动子流程的实例。
在系统运行过程中如果发生服务器故障,服务器监控模块将会检测到,并启动虚拟机迁移功能。当某台服务器需要停机进行升级维护,则登陆服务器管理模块将该服务器的状态修改为停机状态,此时服务器管理模块将通知服务器监控模块,启动虚拟机迁移功能。虚拟机迁移功能时序图如图2所示。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。