BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Java在微软的Azure云平台上迈出了第一步

| 作者 Tim Cull 关注 0 他的粉丝 ,译者 池建强 关注 4 他的粉丝 发布于 2010年9月27日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

本月微软的架构师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上的:

  1. 使用Visual Studio创建Azure应用框架;
  2. 把Jetty NIO ChannelConnector换为阻塞的IO ChannelConnector;
  3. 以C#程序员的视角编写逻辑代码找到内部和外部端口,并用正确的端口参数启动Jetty;
  4. 在Java应用的包内绑定Jetty应用容器和JRE;
  5. 把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先生的演讲。

查看英文原文:Java's Baby Steps on Microsoft Azure Cloud

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT