【51CTO快译】近年来Web 2.0,AJAX,SaaS和SOA这些词已经没那么流行了。这一阵子的热点叫做“云计算”。所有人都在谈论在云端建立应用程序或往云端转移。找工作的时候,简历上的“熟悉云计算”或“精通云计算 ”也变得很吃香。
什么是云?
每个人对云的定义各自不同。我个人的理解是,从事非IT行业相关的公司,将其IT部分托管给专门的IT公司来做。由于他们自己不做IT,将其托管是可以理解的。另外,从事应用程序开发的公司,他们的重点在开发而非提供运行应用程序的设施及平台。由于开发人员和IT设施管理人员分工不同,此类公司将IT部分托管也是可以理解的。简而言之就是,你将你的东西托管在其他公司上运行。原来是有专门的托管公司,而现在,托管公司的职责逐渐被云基础设施所替代。云相对于托管公司的好处在于其弹性,当应用程序快速提高需求时云也能够很快适应。欲了解更加深入的了解云计算,可以参考本站的云计算专题。
云服务提供方
有了亚马逊EC2,你可以在虚拟机中安装你想要的一切。EC2提供了许多,但你仍然需要安装操作系统,网络服务器,网络或应用程序容器,数据库,以及你部署应用程序所需准备的一切。它提供一个虚拟机,而你所需要做的就是管理这个虚拟机中的一切。很有弹性,同时也有全面管理所面临的风险。对于云中的Java来说再合适不过。
我认为Sun也会参与到这竞争中来,因为他们的网格计算应用程序的网站Network.com现在的改版信息就写着“Network.com正在改版中,我们正在添加一些令人振奋的新选择。现在我们还未准备好要展示我们的工作,不过我们欢迎来自您的建议与意见。有问题请随时联系我们。”这是有道理的,因为他们了解硬件,拥有Solaris,拥有Java,还有MySQL。
有了Google App Engine ,你无需使用虚拟机,也无需安装并管理操作系统,软件和数据库。到目前为止你还只能用Python在上面编程,而数据的提取和存储则通过DataStore(永久有效的服务)。你负责开发和部署你的应用程序。你还拥有Google账号,如Gmail等。不用操作系统,服务器和数据库,但是现在还限于Python和DataStore,由此导致现在的它还不是Java开发的选择。不过未来可能会支持更多的语言,最近有消息称Google下月发重大新品,App Engine或将支持Java。Google似乎对Python的喜爱超过Java。Sun也在尝试将Python整合进来,它找了两个Python开发者来开发Jython,通过它可以在JVM上运行Python。不管怎样,希望Google会将Java带到自己的引擎上——不行的话至少也有Jython。
微软Azure则纯粹是微软的技术了。Azure是一个开发、托管及管理的环境,配合微软Visual Studio的工具来协助可伸缩服务的创造,建设,调试,运行以及包装。一段时间内它都与Java无缘。
Force.com为Salesforce.com CRM应用程序服务,限定在其私有的Apex语言及Visualforce(表现层)。注意:Salesforce.com是一个SaaS(软件即服务),Force.com是针对Salesforce.com CRM应用的PaaS(平台即服务)。SAP的Business ByDesign则是仅仅是SaaS。
Heroku限定使用Ruby on Rails,一款由Amazon EC2支持的语言。
可能有所遗漏,但以上清单中,只有Amazon EC2支持云中的Java。不过,Amazon EC2是一个IaaS(基础设施即服务),还不是PaaS。所以我们需要找一个PaaS,以便于我们从管理OS,服务器以及网络和应用的容器中解放出来,专心在Java的开发中。一个名为Stax的新产品能够一定程度上解决这个问题。
Java的PaaS提供者
Stax是一款针对Java的PaaS,基础支持则是亚马逊EC2。可以将其想象成Google应用程序引擎,不过是用Java和MySQL数据库。Stax仅限Java,其目的在于令Java的开发,部署以及调整更加快速,而且你可以将应用程序部署在亚马逊基础设施上,而非Stax自己所提供的。Stax提供了建议的测试及生产的部署环境,一个本地开发模型,而且和现有的开发工具,框架及进程都融合的很好。其中包含了内置的应用程序模板,有流行的Java技术如Stuts,GWT,Wicket,JRuby on Rails,Jython等——但还不止如此。你可以通过Stax SDK将任意一个可以在网络容器中运行的应用程序部署于此。本地的Stax运行时是一个安装设置十分方便的环境,并为你的应用程序的包装及部署提供了一些工具。应用程序模板不过是将一些常用或有趣的配置整理到一起,使开发过程更加快速的手段之一。开发者可以随自己需求添加配置文件以及原本默认模板中没有的库。测试版期间的Stax是免费的。
云的特性及局限——Stax可以做什么?
将现有应用程序移至云端
运行现有的应用程序取决于该应用程序的“云友好”程度。Stax并没有打算取代普遍应用托管。Stax将重点放在弹性应用程序上,这些应用的需求可以通过计算资源的迅速改变而得到满足。这就是说任意一个应用实例可以随意的来,随意的走。这便为应用程序无差别的设置了一些设计限制,其中最大的两个是:
◆应用程序无法依赖于本地文件系统以实现其持久性
◆应用程序需要避免依赖本地服务器的记忆状态(除了caching in,这种情况下的应用只需要设计为当缓存丢失时从一个如DB的固定地点恢复缓存即可)
这就意味着现有的应用都将与Stax环境不兼容,不过Stax的创建者兼CEO,Spike Washburn表示说“这样具有伸缩性的编程手法将是应用程序的开发所需要的,因为无论在大环境的云上还是在私人的虚拟数据中心上,弹性基础设施的使用正在与日俱增。
Java应用在云中的监测,报告,调试和支持
由于应用程序是你开发的,所以你不需要调试支持。云需要为开发者提供一种功能,即有关他们程序运行所在的服务器的情况。就此,他们需要如报告/分析和监测/警报的API。这样,开发者的调试工作变得更加简便,并且对应用程序运行的状况也可以了如指掌,以便在第一时间做出反应。当然了,无论何时,开发者都需要了解他们自己应用程序的内部细节,所以日志就变成调试工作中无比重要的一部分。Washburn在交谈中说到,他们很快将推出监测/警报API,并计划提供更多功能和支持。
在其他应用程序服务器上的部署
Stax在设计上提供的Java网络容器(Tomcat)是与弹性计算云合成一体的。Stax的目标是帮助开发者达到应用程序部署灵活性的一个新的高度,这样不光方便了应用程序在弹性PaaS上部署所需要进行的向上或向下的调整,而且对于开发者而言,这种灵活性也方便他们将应用程序部署在他们自己的应用程序容器中。除了支持这种端到端的应用程序生命周期外,Stax还可以用于应用程序生命周期其中一部分的支持。比如说,在现在这个众人投往云端的趋势下,有些企业仍然不愿将整个生产线搬到云端上来,但是打算做一些小规模的开发以作测试用,所以,应用程序在两种环境下必须都能够运行(在Stax上测试,在他们自己的服务器环境上做生产)。
J2EE应用程序以及应用程序容器
目前为止,Stax还没有提供选择应用程序服务器实现的自由。只有Tomcat网络容器。
Spring,JBoss Seam,JSF以及其他
只要能够在网络容器中运行的库,你都可以往里添加。Stax的初始应用模板其实主要是用来练手用,以帮助你熟悉一个系统的建立。里面有少许预建立好的应用程序配置,开发者用不了多久就能看完。在测试版反馈之后,他们将把新的Java模块系统(Java Module System)以及/或者OSGi也融合进来,以便于开发者创建新的应用程序方案。
如果你的应用程序需要Tomcat以外的支持,或者它需要访问本地文件系统,那么Stax恐怕不适合你。这种情况下你唯一的选择就是亚马逊EC2,或者你也可以等待其他的公司(Oracle,IBM?)推出“云中的Java”,看看那上面有没有你所期待的功能。(译者按:近日Google已经传出App Engine可能将支持Java的消息,值得关注)
分享到:
相关推荐
《易语言漫步云端校友录》是一款基于易语言开发的校友录管理系统,旨在为用户提供便捷的校友信息查询、更新和管理功能。源码是程序开发的核心,通过分析源码,我们可以深入理解这款软件的设计思路和实现机制。以下是...
易语言源码易语言漫步云端校友录.rar 易语言源码易语言漫步云端校友录.rar 易语言源码易语言漫步云端校友录.rar 易语言源码易语言漫步云端校友录.rar 易语言源码易语言漫步云端校友录.rar 易语言源码易语言漫步...
漫步云端 畅享云服务.pdf
漫步云端实践教育信息化.docx
综上所述,《易语言漫步云端校友录》项目涵盖了易语言的基础编程、GUI设计、数据库操作、网络通信等多个方面的知识点,无论是对初学者还是有一定经验的开发者,都是一个极好的学习和实践平台。通过深入研究这个项目...
欧特克:CAD也可以漫步云端.pdf
在“IBM漫步云端”的主题中,该公司强调了优化的信息架构对于构建强大的云计算战略的重要性。2011年在上海举行的“存聚百年才智云起最优架构”论坛上,IBM展示了其集成的高效存储技术和数据保护方案,以及针对云环境...
漫步云端·易起来 华硕无线路由器RT-AC66U发布会.pdf
《易语言漫步云端校友录》是一款基于易语言开发的行业软件源码,旨在为用户提供一个高效、便捷的校友联络平台。这款软件的核心功能是帮助用户管理和查找校友信息,促进校友间的交流与合作,同时展示了易语言在实际...
3. 终身学习理念:通过云平台,学生可以持续接触新知识,培养自主学习的习惯,为未来职业生涯做好准备。 总结,中职学前教育阶段利用云平台进行互动式教学,不仅提升了教学效率,还促进了学生全面发展。在教育信息...
总的来说,Java POI为开发者提供了一套强大且灵活的API,使得在Java环境中创建和编辑Word文档变得可能,包括文字处理、图像插入以及各种图表的生成。通过学习和实践,你可以根据需求定制出满足业务场景的复杂Word...
Java重启式随机游走(Random Walk with Restart, RWR)是一种在复杂网络中探索节点间关系的算法。...总的来说,Java RWR的实现是一个有价值的工具,可以帮助研究者和开发者深入理解复杂网络的特性。
波段神器 漫步主图源码通达信指标公式源码.doc
《Java与模式》是阎宏博士撰写的一本经典著作...总之,《Java与模式》这本书及其源代码资源,是Java开发者进阶必备的学习资料。通过深入学习和实践,你可以提升自己的设计能力,写出更加符合面向对象原则的高质量代码。
在Java编程语言中,"增删改查"(CRUD:Create, Read, Update, Delete)是数据库操作的基础,广泛应用于各种数据管理系统的开发。...这些技能对于任何Java开发者在构建数据驱动的应用程序时都至关重要。
Java二维码生成是一个常见的任务,尤其在移动互联网应用中,用于分享网址、电子名片或下载链接等。...在这个特定的Java二维码生产demo中,开发者可以快速上手并理解二维码生成的基本步骤,为自己的项目添加类似功能。
在这个项目中,开发者通过Java的图形用户界面(GUI)来创建游戏界面,使玩家可以直观地进行操作。下面我们将深入探讨这个项目中的关键知识点。 1. **Java基础**:作为项目的编程语言,Java提供了丰富的类库和API,...