【发布时间】:2011-03-06 01:12:54
【问题描述】:
Java for Google App Engine 和 Java EE 的核心区别是什么? (我对 Java 完全不熟悉,所以请您解释一下总体上有何不同以及学习哪些内容更适合简历)
【问题讨论】:
标签: java google-app-engine jakarta-ee
Java for Google App Engine 和 Java EE 的核心区别是什么? (我对 Java 完全不熟悉,所以请您解释一下总体上有何不同以及学习哪些内容更适合简历)
【问题讨论】:
标签: java google-app-engine jakarta-ee
Google App Engine for Java 是基于 webapp 容器 (Jetty) 构建的,因此它显然只提供 Java EE 的一个子集,并带有一些限制(但也有附加功能可以利用他们使用标准化 API 的基础设施):
不支持的 Java EE API 和技术包括:
更多详情请见Will it play in App Engine。
顺便说一句,我们不再说 J2EE,它是自 2005 年以来的 Java EE :)
【讨论】:
第一个回答说 Appengine 是 Java EE 的子集是正确的,但它遗漏了一些信息。
Google Appengine 确实支持 Java EE 的子集,但 Java EE 也支持 Appengine 技术的子集。
Appengine 带有高复制数据存储和弹性扩展。因此,您无需为空闲的服务器付费。 Appengine 支持 Web Hooks,这是一项新技术,可以用来做类似 JMS 的事情。不支持 JNDI 是有原因的,因为在 Google Appengine 中获取服务是通过简单的 Java API 完成的。从而简化模型。 RMI 在 appengine 内部用的比较多,如果需要可以自己使用。但是在 appengine 中使用 RMI 并没有多大意义,因为机器间通信可以通过 XMPP 或通过 High Replication 完成。
因此,您可以使用 Appengine 开发与使用 Java EE 类似的应用程序,但是您必须使用 Google 的基础架构。许多繁重的工作,例如机器配置、网络配置、扩展,都是自动完成的。因此不需要庞大的系统工程团队。
总而言之,Java EE 是大公司使用的旧方式。 Appengine 被希望快速增长并需要扩展,但启动成本也不低的初创公司使用。
【讨论】:
Google App 引擎提供了您可以使用底层机器执行的有限的子集。最大的问题是您无法访问本地存储,并且您的请求处理必须在指定的时间限制内完成,否则您的任务将被终止。
【讨论】:
语言没有区别:它们都是 Java。不同之处在于您可以使用哪些类库。
【讨论】: