Windows Azure是一个全新的平台,为开发人员提供创建云计算应用程序的操作系统和支持。Azure提供了网格计算系统所需的很多功能,运用合适的设计模式和框架,可以开发并运行网格计算应用程序。
一 关于Azure
Windows Azure将在
作为目前微软的公共云计算业务主要产品,它运行在微软的全球数据中心上,提供微软各种软件的网络版本应用,目前包括SQL、.NET、Live、SharePoint、Dynamics CRM等服务。
二 把网格计算和Azure云计算放到一起
需要注意的{dy}件事情是,在Azure云中和企业端分别存在一些软件/数据,以及一些基础功能。它们分别完成什么事情,以及为什么要这样安排?
云用来完成网格计算本身的工作。云资源的使用主要面向临时的工作,可以最小化成本。在你不运行网格计算解决方案 的时候,你就不会产生费用。
企业作为数据的固定存储位置。它是网格运行所需的输入数据的来源,也是工作结果的最终存储位置。
再来看一下设计模式
在这个模式中的软件角色是:
在这个模式中的数据角色是:
三 演练:创建并执行Azure上的网格计算应用程序
让我们来把上面讲到的东西混合到一起,并演练一下使用这个模式和适合的框架,如何从头至尾地开发并运行网格计算应用程序:
1. 网格计算应用程序需求的确立。就是要确认需要完成的任务、输入数据和结果目的。
2. 使用框架,开发人员添加自定义内容到他们的项目中:
网格执行器(Azure Worker Role)由一个模板来创建,并为每个任务添加实现代码。 加载器由一个模板来创建,并添加一些代码来实现从本地资源读取输入数据、生成任务并把它们排到任务队列中。聚合器由一个模板来创建,并添加一些代码来从结果队列中接收结果,在底层数据库中存储它们。
3. 此应用程序的Azure项目通过Azure门户网站来进行托管和存储的配置。网格执行器打包并部署到云宿主中,测试后,升级为产品版本(Production)。
4. 使用网格管理器控制台,网格的工作运行在此定义和启动。加载器的运行也在此启动。
5. 加载器读取本地企业数据,生成任务,并把每个任务写入到任务队列。
6. 网格执行器项目在Azure门户网站中启动,其会产生网格执行器的多个实例。
7. 每个网格执行器都持续地从任务队列中接收新任务,确定任务类型,执行适当的代码,并把任务结果发送到结果队列中。Azure队列工作的方式在此非常有用:如果执行器出错,在完成任务的过程中失败,那么任务在超时之后将重新出现在队列中,并会被其他网格执行器获得。
8. 聚合器从结果队列中读取结果,并把它们写入到本地企业存储库中。
9. 在网格执行的时候,管理员能够使用网格管理器控制台几乎实时地观察网格执行器执行任务的状态。
10. 在聚合器获知所有计划中的任务已经完成时候,它通过控制台发出一个关于这个状态的提醒。到此,网格就完成了它所有的工作,它的结果也安全地保存到企业端。
11. 通过Azure门户网站可以暂停网格执行器,以避免带来额外的计算时费用。云存储在所有队列被xx地读取后,已经是空的了,因而没有额外的存储费用产生。
四 把Azure用于网格计算的附加值
从技术和经济两方面来说,Azure平台用于网格计算再好不过:
[Quote]《基于Azure云计算平台的网格计算,第1部分》 网站:作者 David Pallmann 译者 朱永光