`
kungstriving
  • 浏览: 129162 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个虚拟系统的设计

阅读更多

 

概述:

在本系统中虚拟软件运行环境主要目的,是为了隔离不同应用程序的运行,提高系统的稳定性,同时可以节省成本。用户处于较高层次中,无需知道软件运行的具体位置以及运行环境,做到对用户透明。

以下从最底层向上逐层分析:

1.       运算节点层(运算层):是最底层,多个安装了XenVmware等虚拟机软件)的计算机或者是一般的实体计算机,真实的应用程序的运行需要在这些机器上进行,它们是实际运算节点。在这里我们分别把它们叫做虚拟计算节点和实体计算节点。

因为每个应用程序都有其特殊性,所以需要针对每个应用程序进行包装,然后将其部署在WebService容器中,对于已知的应用程序,可以提前包装好WS,并部署运行,向服务中心注册(该部分应该属于服务封装部分)。对于未知的应用程序(也就是在系统使用阶段,用户添加进入的应用程序),才是该部分的重点和难点。



 a)         其中虚拟计算节点可以运行多个操作系统,当然也就可以运行多个应用程序,而且互不干扰,独立运行。(暂默认一个每个虚拟计算节点上的一个虚拟操作系统中运行一个应用程序)需要提供WS服务,供上层调用。

b)        而实体计算节点为安装了某种操作系统的计算机,它已经提前配置好软件运行环境,并且将其打包成webservice,供其上层调用。它需要一个webservice的运行环境,同时需要将自己的WS注册到服务中心。这样的工作同样需要在虚拟计算节点进行。

c)        在不同的计算节点上(这两种类型都包括),配置一个客户端,其监听上层传递的消息,并在该节点上实施具体操作。但是对于两种不同类型的计算节点,该客户端控制程序有所不同。


 




上图中的红色部分为我们需要实现的模块,蓝色箭头为消息和数据传递,灰色箭头为服务的调用。

 

最上端的中控层为一个协调控制层。它负责接收来自用户的请求,并将其转化为传递给运算节点的消息,


同时接受由运算节点发送的反馈信息,传递给上层用户。主要功能模块如下:

 

提供一个统一的API接口,屏蔽下层接口的异构性,向上层展现统一调用接口。

 

监视底层运算节点运行状况。接收底层计算节点发送到状态信息,分配任务。

 

运算节点监控层。部署于每个运算节点上,控制其上的虚拟机的运行以及其上程序的执行。

监听模块:与中控层进行交互,接受上层消息,传递给下一个处理模块进行消息的解释执行。

 

执行模块:接受由监听模块传递来的消息,分析其内容,根据所接收到的命令向虚拟机控制器发送相关命


令。如果需要从资源库取得资源,则需要与资源库传递资源数据,并将其部署在某个虚拟操作系统之上。

 

反馈模块:根据这个请求的执行情况,向中控层返回消息。

 

状态消息发送模块:根据该虚拟计算节点的状态信息,向中控层定时发送该计算节点信息。

 

 

资源库。一个实体服务器,提供WebService安装包,其中包括了操作系统、应用程序、WebService容器以及相关的WSDL文件,供虚拟机使用。

资源库需要能够接受由运算节点监控层中的执行模块发送到消息,根据消息内容与运算节点监控层传递所需数据。

 

 

在虚拟计算节点上,这个客户端控制程序完成的功能包括:

1)与上层系统通信(接受上层系统传递的消息,同时需要将执行结果返回);

2)虚拟机的创建(根据上层传递消息制定虚拟机创建参数,或者系统部署时候初始创建好);

3)应用程序的安装。实际应该是一个应用程序环境的再现(应用程序首先封装成为WS,并且部署在WS容器中,已经可以供外部系统调用,这一切都在虚拟机上完成,并不是某个运算节点,然后由虚拟机将该环境导出,保存在一个资源库中。在上层需要使用到该应用程序时,由客户端控制程序从资源库中下载该已打包好的应用程序,然后再将该应用程序环境重现,最后需要修改WS的服务地址,并通知上层应用程序环境构建完成);

4)虚拟机生命周期控制,该虚拟机所提供的服务长期未被使用,可以将该虚拟机关闭,节省资源;

5)向上层系统报告节点当前运行状态、性能、负荷等信息(用于上层系统任务分配的依据)。

 

  • 大小: 151.2 KB
  • 大小: 62.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics