长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine,用Java工作开发者可能需要不同的方法。未来,云Java的关键也许是Java虚拟机(JVM),ThoughtWorks 首席技术架构师Paul Hammant如是说。 Java对于云计算的支撑正在增长。
App Engine平台在2008年初次登台,仅支持Python编程语言,谷歌对其喜爱远远超过大多数企业。2009年四月,App Engine增加了对Java的支持。随后,微软完全不是Java的狂热者,扩大其Azure云平台支持Java。但是,Java最……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine,用Java工作开发者可能需要不同的方法。未来,云Java的关键也许是Java虚拟机(JVM),ThoughtWorks 首席技术架构师Paul Hammant如是说。
Java对于云计算的支撑正在增长。App Engine平台在2008年初次登台,仅支持Python编程语言,谷歌对其喜爱远远超过大多数企业。2009年四月,App Engine增加了对Java的支持。随后,微软完全不是Java的狂热者,扩大其Azure云平台支持Java。但是,Java最终在云上如何运营还不十分清晰。
在App Engine和云计算的大多数领域,越来越多地使用JVM。完全成熟的Java EE组件部分,尽管经常被视为过度。由于他们添加的复杂性,App Engine不支持许多组件。其中一个组件就是EJB ,Java EE服务器端的组件架构。此外,谷歌的BigTable,用谷歌App Engine构建的非关系型数据架构,避开了通用数据组件与J EE的关联。
云计算中JVM的未来,虽然对Hammant来说看起来是乐观的。他表示JVM应该成为Java在云端的主要方式。
Hammant 说道:“我特别希望的是WAR文件部署尽可能的小,也就是说,VM中10Mb的RAM共享多重虚拟主机。如果谷歌和类似的可以敏锐地反对资源使用定价,那么这些东西就可能让漂移在 [亚马逊] EC2风格厂商之下的与之进行竞争。”
虽然亚马逊的EC2实例伴随指派基础架构组件而生,像谷歌的费用仅仅是带宽、存储和执行时间的模型一样。亚马逊已经“有能力”支持Java,Hammant说,EC2的大量实例足迹已经过度地杀伤了轻量型应用。
JVM超越了Java EE
人们在云端上演的Java应用趋向于降低CPU和内存需求,Hammant说道。通过减少的技术参数,它是较为常见的比完全成熟的Java EE更加轻量、独立的JVM应用。在App Engine中接近Java是很重要的,因为应用必须为沙盒环境而写,这个沙盒环境是数据最终位于的谷歌的非关系型BigTable的顶端。
围绕BigTable的工作是有限的,Hammant说,他去年开始在App Engine上试用Java。
Hammant讲到:“所有应用必须重新编码,对很多人来说,这并不受欢迎,的确它很强大,但是人们希望比实际范围的BigTable有更多简易操作。”
自从这个平台存储数据的方式,根本上地不同于适用于传统Java应用的标准关系方法,许多开发人员已经发现需要赶上工作区。其中一个开发者的例子就是Amsterdam开源Java部门JTeam 的Tom van Zummeren。Zummeren最近在App Engine上试运行了Spring框架。
Zummeren 表示:“由于服务器局限性,确实不能像传统Java Web应用那样写应用程序,也确实你不得不坚持用JPA、JDO或者原始的SQL来存储数据。”
大多数Java开发者至少应该熟悉Java Persistence API (JPA),一种管理关系型数据的Java框架。然而,JPA 的App Engine实施伴随着一些局限性。在这个系统中,在同一个交易中,你不能接触多于一个的实体。Zummeren讲到这意味着它几乎不可能通过一个交易指派大量数据集。
对于Hammant来说,使用App Engine的主要缺点是在servlet-compliant的方式下处理会话数据。基本上,如果你试图在运行的会话中存储信息,就存在潮湿的风险。
Hammant 说:“用Web应用在浏览器和服务器端之间创建大量Ajax的用户可能受到影响。这是因为许多Ajax可能在服务器端修复状态时,需要在同一时间内修复多个状态。”
这对于无状态应用不是个问题。或者适用于Ajax需求再分开的时间间隔中发出。
App Engine目前对于小型的应用是免费的。如果你保持存储数据在500MB以下并且PV低于每月500万。
Windows Azure上的Java
令人惊奇的,也许,微软Windows Azure云平台在一月份正式开始,支持.NET、 C++、 PHP、 Ruby、 Python和Java。Azure中,Java应用也必须运行在沙盒环境中。
微软已经提供一些协作项目指导,致力于更好的Java互操作性。其中之一就是WindowsAzure4J,在二月15号发布了新的为Java创建的Azure SDK 。
Persistent Systems 架构师Satish Nikamv表示对已开发人员来说一个缺点就是可能缺乏Windows注册管理访问。这意味着应用不得不独立和拷贝扩展。
Nikam表示开发者在Azure上应该可以部署更广阔各种传统Java应用。不像App Engine在Azure中的应用不能链接集成关系数据库(SQL Azure),除了非结构化的数据存储(Azure Storage)。
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。