编者注:本文作者是Persistent Systems 的云计算助理副总裁Shreekanth Joshi,描述了该公司是如何使用Windows Azure为他们的ISV客户开发和交付基于Java的应用程序。
Persistent Systems是一家全球性的公司,专门从事软件产品和技术服务。我们专注于在下一代技术领域的四个主要领域开发最佳解决方案,它们是:云计算、移动性、BI及分析和协作。Persistent Systems很早就涉及云计算领域并且曾经和很多初创企业和创新型企业合作帮助开发和部署各种云计算应用程序。我们利用精心定制的产品工程流程为北美、欧洲和亚洲各地的300多个客户开发创新的解决方案。
在软件即服务(SaaS)能力和经验的基础上,我们为先进的云计算平台建立了专门的能力中心。作为Windows Azure社区的积极参与者,我们发布了开源的项目,包括:
Windows Azure Plugin for Eclipse with Java OData SDK for PHP AppFabric SDKs for PHP、Java 和 Ruby
Persistent Systems最近推出一个新的开放源码项目,CloudNinja for Java,如下所述。
CloudNinja for Java
Windows Azure上基于Java的应用程序的数量在不断增长,因为客户意识到Windows Azure的开放性能够为他们的Java应用程序提供可扩展性和高可用性。我们从怎样设计各种项目组件来管理单租户和多租户应用程序到怎样使用Windows Azure服务整合项目组件的过程中遇到了很多问题。客户学习Windows Azure时面临的普遍问题是除.NET平台以外很少有详细的文章和代码示例。
Windows Azure通常被视为.NET云计算平台,实际上这是错误的。出现这种误解的原因是相关的演示和how-to博客都是围绕Microsoft Visual Studio来写的。事实证明,Windows Azure提供虚拟机,Windows Server 2008 SP2 或 Windows Server 2008 R2,也就是说大部分的基于Windows的可执行文件或脚本都可以运行在Windows Azure上。
要增加对Windows Azure开放性的认识,我们最近发布了基于Java的CloudNinja项目(CloudNinja for Java),该应用说明了如何为Windows Azure构建多租户应用程序。CloudNinja for Java包括以下的特性和功能:
租户寄宿 租户级自定义项(
例如,管理徽标) 每个租户的数据隔离 每个租户计量 通过不同标示提供程序提供登录支持。例如Yahoo!、Google和Windows Live ID 一般拥堵任务计划程序
此应用程序是建立在几个常见的开源软件库中,例如Spring、 Hibernate、Log4j和jqPlot。
该项目运行在Windows Azure里并且完全基于Java的Windows Azure Plugin for Eclipse。下图描绘了CloudNinja的体系结构。
我们在CloudNinja for Java的开发和部署过程中利用各种Windows Azure服务。下面是主要用到的几个:
Windows Azure Access Control Service Windows Azure Storage SQL Azure Windows Azure Service Management
我们相信CloudNinja for Java将对Java社区有用并将鼓励Java开发人员创建自己的Windows Azure应用程序。
当部署Windows Azure的Java应用程序时,有几个注意事项:
部署中是否要捆绑第三方工具和运行时 监测应用程序 处理缺失的SDK功能