谷歌App Engine上应用Java尚不成熟

2010-3-11   
   | |

导读:本文介绍了长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine,用Java工作开发者可能需要不同的方法。

关键词:Java JVM App Engine

 
正在加载数据...

【TechTarget中国原创】长期以来应用开发最通用的语言之一,Java已经开始获得云计算平台的支撑。但是由于新的和分布式架构平台,像Google App Engine,用Java工作开发者可能需要不同的方法。未来,云Java的关键也许是Java虚拟机(JVM),ThoughtWorks 首席技术架构师Paul Hammant如是说。

【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 Web服务

 
现在事件处理的实际情况是:应用需要从范围很广的应用那里收集信息,这些应用,天生缺乏业务事件这种概念意识。
 
Java发端Sun公司多年来由于其对于Java的保护不够努力而饱受争议。OpenJDK的太对许多人来说有点太晚了。
 
甲骨文于上周四对谷歌提起诉讼,声称谷歌的Android移动操作系统侵犯了甲骨文对Java软件的专利权和版权。谷歌广泛使用开放JDK开发包,使得Java开发者可以快速创建Android应用。
 
近年来,Java领域最有影响力的趋势之一是JVM(Java虚拟机)上对于非Java语言的支持的增加。PHP、Groovy、Ruby以及其他的动态脚本语言已经赢得一席之地。
 
Hibernate的对象关系映射器在执行转换对象到关系实体和关系实体到对象的过程中的静止临界任务时,已经获得了广泛认可。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录