Windows Azure 的应用程序构建模式

  • Abel Avram
  • 朱永光

2010 年 10 月 6 日

话题:.NET设计模式云计算DevOps语言 & 开发架构

J.D. Meier,是一个微软模式与实践团队的首席程序经理,他列出了一些在 Windows Azure 上进行 ASP.NET 应用程序开发的模式,展示了这些组件如何在云中进行运作的。他也给出了一个把标准 Web 应用程序映射到云中的例子。

这个权威的 Windows Azure 应用程序模式包含了从网络获取请求的 Web Roles,以及伺服这些请求的 Worker Roles。Web Roles 和 Worker Roles 是通过队列服务(Queue Services)来解耦,如下图所示:

alt

这个模式的一个简化版本即是应用 Azure Tables(表服务)的 ASP.NET 窗体验证:

alt

Meier 列出了超过 10 个的Windows Azure 的应用程序构建模式,他们其中一些使用窗体授权,有些使用基于声明的授权,而剩下的使用 WCF:

  • 模式 #1——应用 Azure Tables 进行 ASP.NET 窗体验证
  • 模式 #2——应用 SQL Azure 进行 ASP.NET 窗体验证
  • 模式 #3——基于声明应用活动目录
  • 模式 #4——基于联合声明应用活动目录
  • 模式 #5——在 Azure 中从 ASP.NET 应用访问 WCF 服务
  • 模式 #6——现场 ASP.NET 应用访问 Azure 中的 WCF 服务
  • 模式 #7——基于声明,现场 ASP.NET 应用访问 Azure 中的 WCF 服务
  • 模式 #8——使用 AppFabric Access Control 的 REST 服务
  • 模式 #9——在 Azure Storage 中存储数据的 ASP.NET 应用
  • 模式 #10——在 SQL Azure 中存储数据的 ASP.NET 应用
  • 模式 #11——现场 ASP.NET 应用通过 WCF 服务访问存储在 SQL Azure 中的数据

非云环境下的Web 应用程序模式(见Microsoft Application Architecture Guide)描述了供浏览器访问的构建于 3 个基础层上的服务器应用程序——表现层、业务层和数据层:

Ee658104.83ae5a18-d230-4569-aac0-82ce5e30ea61(en-us,PandP.10).png

根据 Meier 所说,这个模式也可以应用到 Azure 中,只需要把上述提及的层构建为 Web Role 即可,并且可以使用 Azure Storage 来作为存储数据的选择,Azure Web Services 作为服务接口的选择:

alt

CodePlex 的模式与实践——Windows Azure 指导项目包含很多在微软云计算平台中进行迁移、开发和集成应用程序的准则。

查看英文原文:Patterns for Building Applications for Windows Azure

.NET设计模式云计算DevOps语言 & 开发架构