Java 8已经整装待发图谋云计算!

红帽公司的一名工程师认为,Java需要模块功能和多租户功能,才能适用于云环境。那么未来要发布的Java 8似乎也在图谋云计算了。
鉴于Java 7 SE(标准版)现已正式发布,甲骨文和Java社区进程组织(JCP)的成员们已开始仔细考虑为这种编程语言的下一个版本Java SE 8添加什么功能特性。为这个新版本提上议程的工作是:设计面向云计算的Java。
Java 8旨在为云计算作好准备,面向更广泛的部署领域。为了不至于进一步推迟版本的发布,Oracle撤掉了原计划为Java 7添加的许多高级功能特性。那些功能特性很有可能添加到Java 8中。
结果将证明,那些功能特性中至少有两项会非常有助于让下一个版本的Java为云计算的大规模部署作好准备。一项是多租户功能,即Java虚拟机(JVM)安全地运行多个应用程序的功能。另一项是模块功能,即把Java开发工具包(JDK)重新组织成一套定义清晰但又相互关联的模块。
如果Java想在云计算环境成为主导者,那么模块功能和JVM里面真正的多租户功能对Java 8来说很重要。”
模块功能是红帽最希望出现在Java 8中的一项特性。模块功能将减小大多数Java部署环境的规模,因为不是所有的部署环境都需要Java的全部核心库。该功能还有望帮助开发人员更容易与Java进行交互,让他们只要使用所需的部分,而不是设法应对整个代码库。
模块功能还有助于开发人员解决Little所说的“类装入器难题”(classloader hell)这个问题。
某个Java程序访问多个Java存档(JAR)即常用例程的组合时,开发人员就会遇到类装入器难题。应用程序可能会使用来自某个JAR的一个类,它实际上需要该类驻留在另一个JAR中的不同版本。或者,应用程序可能在使用由另一个程序使用的JAR;一旦那另一个程序终止,JAR就被移除,导致第一个应用程序停止运行。
为了让模块可以随意换进换出,又不破坏整个环境,就需要在JVM中同样给予支持。
Project Jigsaw这一项计划就致力于实现这个目标。Sun公司掌控Java(Sun在2010年被甲骨文收购)时,这家公司的工程师青睐Jigsaw,而不是另一种方案:开放服务网关计划(OSGi),后者由OSGI组织监管。
Project Jigsaw原本为Java 7而生,不过它在2010年被暂停,目的是为了在2011年之前交付Java。
除了模块功能外,Java 8可能还有多租户功能,即通过一个JVM,安全地运行多个应用程序的功能。
这类功能对于Java应用于云计算环境来说必不可少;在云计算环境下,多个有关方共享同一个基础设施。
不过,如今Java EE(企业版)为解决这个问题提供了一种变通方法。如果JVM本身不提供多租户功能,那么我们所能进行的操作非常有限,以免整个环境可能因同一个JVM中的破坏性租户而受到破坏。
许多人长期以来支持添加到Java中的另一项功能是闭包(closure),即在一个函数里面建立另一个函数,让它们共享变量的功能。闭包将有助于跨多个处理器核心,更高效地运行Java。
尽管甲骨文的首席Java架构师一直满怀热情地要将闭包功能添加到Java中,但他并不认为建议的实现技术已为Java 7作好了准备。闭包功能要不要添加到Java 8中会开始引发新的一场争论。
如果添加闭包功能,Java将因而与已经添加了这项功能的其他语言(如JavaScript和Scala)处于不相上下的水平。
除了技术本身外,许多人在密切关注Oracle今后会如何监管Java 8。
甲骨文还没有为Java 8版本制定一份官方时间表,不过JCP组织的成员们似乎渴望避免为下一个版本再次等待漫长的间隔期,已在非官方场合表态会在2012年年底之前发。
至于如何处理Java方面,Oracle本身一直在遭到越来越严格的盘查。多方指出,甲骨文交付的Java 7存在已知的软件缺陷。
从许多方面来看,Java 8将真正检验甲骨文管理一个复杂的开源项目的水平如何,这是许多代码贡献者的利益彼此冲突的一个项目。

东方瑞通IT培训  发表于: 2011-08-10

我要回答

相关推荐