锁定老帖子 主题:一个虚拟系统的设计
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-13
概述: 在本系统中虚拟软件运行环境主要目的,是为了隔离不同应用程序的运行,提高系统的稳定性,同时可以节省成本。用户处于较高层次中,无需知道软件运行的具体位置以及运行环境,做到对用户透明。 以下从最底层向上逐层分析: 1. 运算节点层(运算层):是最底层,多个安装了Xen(Vmware等虚拟机软件)的计算机或者是一般的实体计算机,真实的应用程序的运行需要在这些机器上进行,它们是实际运算节点。在这里我们分别把它们叫做虚拟计算节点和实体计算节点。 因为每个应用程序都有其特殊性,所以需要针对每个应用程序进行包装,然后将其部署在WebService容器中,对于已知的应用程序,可以提前包装好WS,并部署运行,向服务中心注册(该部分应该属于服务封装部分)。对于未知的应用程序(也就是在系统使用阶段,用户添加进入的应用程序),才是该部分的重点和难点。
b) 而实体计算节点为安装了某种操作系统的计算机,它已经提前配置好软件运行环境,并且将其打包成webservice,供其上层调用。它需要一个webservice的运行环境,同时需要将自己的WS注册到服务中心。这样的工作同样需要在虚拟计算节点进行。 c) 在不同的计算节点上(这两种类型都包括),配置一个客户端,其监听上层传递的消息,并在该节点上实施具体操作。但是对于两种不同类型的计算节点,该客户端控制程序有所不同。
上图中的红色部分为我们需要实现的模块,蓝色箭头为消息和数据传递,灰色箭头为服务的调用。
最上端的中控层为一个协调控制层。它负责接收来自用户的请求,并将其转化为传递给运算节点的消息, 同时接受由运算节点发送的反馈信息,传递给上层用户。主要功能模块如下:
提供一个统一的API接口,屏蔽下层接口的异构性,向上层展现统一调用接口。
监视底层运算节点运行状况。接收底层计算节点发送到状态信息,分配任务。
运算节点监控层。部署于每个运算节点上,控制其上的虚拟机的运行以及其上程序的执行。 监听模块:与中控层进行交互,接受上层消息,传递给下一个处理模块进行消息的解释执行。
执行模块:接受由监听模块传递来的消息,分析其内容,根据所接收到的命令向虚拟机控制器发送相关命 令。如果需要从资源库取得资源,则需要与资源库传递资源数据,并将其部署在某个虚拟操作系统之上。
反馈模块:根据这个请求的执行情况,向中控层返回消息。
状态消息发送模块:根据该虚拟计算节点的状态信息,向中控层定时发送该计算节点信息。
资源库。一个实体服务器,提供WebService安装包,其中包括了操作系统、应用程序、WebService容器以及相关的WSDL文件,供虚拟机使用。 资源库需要能够接受由运算节点监控层中的执行模块发送到消息,根据消息内容与运算节点监控层传递所需数据。
在虚拟计算节点上,这个客户端控制程序完成的功能包括: 1)与上层系统通信(接受上层系统传递的消息,同时需要将执行结果返回); 2)虚拟机的创建(根据上层传递消息制定虚拟机创建参数,或者系统部署时候初始创建好); 3)应用程序的安装。实际应该是一个应用程序环境的再现(应用程序首先封装成为WS,并且部署在WS容器中,已经可以供外部系统调用,这一切都在虚拟机上完成,并不是某个运算节点,然后由虚拟机将该环境导出,保存在一个资源库中。在上层需要使用到该应用程序时,由客户端控制程序从资源库中下载该已打包好的应用程序,然后再将该应用程序环境重现,最后需要修改WS的服务地址,并通知上层应用程序环境构建完成); 4)虚拟机生命周期控制,该虚拟机所提供的服务长期未被使用,可以将该虚拟机关闭,节省资源; 5)向上层系统报告节点当前运行状态、性能、负荷等信息(用于上层系统任务分配的依据)。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1886 次