2010-12-28 17:17:14 来源:infoq
本月微软的架构师David Chou将会在JavaOne的大会上做一个演讲,主题是在微软的Azure云平台上部署Java应用。考虑到Azure是典型的基于.Net应用的微软技术平台,InfoQ与Chou先生探讨了Java能在Azure上做什么,不能做什么。
首先,David Chou鼓励开发人员把Azure看作“另一个基于Windows服务器的开发环境,你可以往上部署代码... 其模型可以理解为一个巨大的zip文件。如果你能把应用放入一个闪存驱动器,而且还能从驱动器中启动应用,那么就可以在Azure上运行你的应用了”。理论上这意味着只要Java开发人员为自己的应用绑定完整的JRE,然后写个小的C#引导程序就可以在Azure上运行Java了。
但实际上,一个典型的Java程序必须克服一些障碍才能运行。据Chou先生所言,依赖Java的NIO功能或使用了内部网络通信(例如Jboss集群)的应用是不能在Azure的网络沙箱内运行的。
为了说明这些限制,Chou先生描述了他是如何让一个基于Jetty的应用程序运行在Azure上的:
使用Visual Studio创建Azure应用框架;
把Jetty NIO ChannelConnector换为阻塞的IO ChannelConnector;
以C#程序员的视角编写逻辑代码找到内部和外部端口,并用正确的端口参数启动Jetty;
在Java应用的包内绑定Jetty应用容器和JRE;
把Jetty的配置中涉及写文件系统的信息全部注释掉(这是个可选项,但如果你想绕过它,就需要编写更多的C#代码)。
Chou先生认为目前在Azure上进行Java开发具备如下特点:
这是漫长旅途中的第一步,我感觉又回到了刚开始用Java开发的时候,而且我们没有IDE集成开发环境。构建客户端应用时我们不得不使用文本编辑器处理AWT。现在的阶段是:我们可以使用Java和部署一个完整的Java应用,但事实上还有很大的改进空间。
4季度会发布SDK1.3版本,Chou先生保证开发人员会更容易使用网络沙箱,减少限制,并提供更多的管理回调机制,用来启动进程、解压缩、用C#脚本引导应用。当问道哪种类型的用户试图把Java部署到Azure上时,Chou先生介绍了Domino's Pizza项目,微软提供帮助把基于Tomcat的应用迁移到了Azure上。除了把应用迁移到Azure的计算资源上,同时也把数据存储迁移到了微软的云存储中。这次迁移的动机是为了解决晚餐期间超过50%的交通高峰期,特别是在周五和周日的超级杯(美式足球冠军)。当问及这个试点项目是否着手实施了,他表示该项目仍处于构思阶段。
总的来说,如果你是个Java开发人员,而且安装了Visual Studio,同时还有一个对网络需求不敏感的Web应用,该应用没有使用太多的J2EE特性,那么你可以尝试将其部署到Azure的云上。其他人最好等年底SDK1.3的发布。想了解更多信息,请参加JavaOne周四早八点Chou先生的演讲。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。