Java平台——具备可扩展GlassFish应用服务器v3的JavaEE6的架构师Jerome Dochez和工程师Mahesh Kannan详细介绍了即将推出的GlassFish v3,该产品现在可作为预览版下载。
对于那些过去四年里一直处于沉睡状态的人来说,GlassFish是由Sun公司赞助开发的JavaEE开源应用服务器。GlassFish v3是对v2版本的主要性能的重新诠释。它操作简单,具有基于OSGi的可扩展核心,带有一个网页和脚本容器以及一个用于配置和管理的控制台。你可以在来自NetBeans 6.7的GlassFish v3上进行开发和部署。GlassFish v3应用服务器与JavaEE6一道组成了服务器端Java平台的基石。
GlassFish是JavaEE引用执行,Douchez一开始就解释了JavaEE 6的性能怎样一步步引导他们走向了GlassFish。
配置文件
配置文件主要是有关JavaEE技术中最重要开发性能的内容。***类就是Web Profile。未来的配置文件将在Java Community Process中定义。目的是推动同类程序员的工作效率——也就是说提高使用服务应用内部注释的能力而不是编写复杂的XML文件。
由于GlassFish是引用型执行,它必须用JavaEE 6为不同的配置文件提供不同版本的GlassFish。这种制约增加了为GlassFish3采用模块化结构的倾向。
简化开发
业界一直关注如何通过JavaEE简化开发过程。JavaEE 6通过使用所有网络API,减少或消除部署描述符的需求,允许第三方库自主注册,简化数据包,提供用于RESTful网络服务的JAX-RS以及从整合各个技术这几个方面来解决大家在开发方面的顾虑。
嵌入性
你可以使用简单的EJB容器作为JavaEE 6应用内部的嵌入式容器。此外整个GlassFish v3应用都是可嵌入的,因此我们可以通过其API启动或停止GlassFish。
GlassFish v3向所有的Java虚拟机技术开放,特别是JRuby/Rails。Ruby程序员的一个优势在于他们不需要将Ruby应用部署成WAR File。相反,GlassFish v3可以直接援引JRuby注释并在无需修改的情况下,本地部署Rails应用。除了具备多个运行时的部署选项以外,GlassFish v3还提供JRuby运行时池的动态调整。因此,GlassFish能在高负荷的时候运行良好,而在低负荷的时候能以最少的资源消耗运行。
有了这个新版本,你就可以通过其API扩展GlassFish的功能,并通过Admin 控制台发布这些功能。此外,你还可以以动态的方式向平台添加功能而不需要重启。扩展性可以通过API来获得,它可以替代或扩展性能。OSGi也提供了能用来扩展OSGi运行时的扩展性能。
GlassFish v3中模块化设计的一个方面就是基于服务的架构。服务由协议定义,协议的执行相对而言容易一些。基于服务的架构也允许基于使用模式的延迟加载。
模块性
为GlassFish v3扩展功能要求有新的,模块化的架构。GlassFish v3的模块化性能基于OSGi。OSGi基于服务的架构使得这些组件可以动态发现彼此并进行协作。新架构的微内核是很小的。因此GlassFish v3是轻量级的部署平台,它可以快速被启动且占用的资源很少,因为它会使用延迟加载来启动那些仅仅被要求使用的服务。例如,如果你的应用不使用EJB容器,它就不会被加载。
许多小模块可以被视为大量的机动部件,而GlassFish v3按照170束的量传输。即便是拥有这样数量的模块,GlassFish的启动也是很快的。技术人员希望能将数量从170减少到100。
开发项目的时候需要强大的创建工具,这主要考虑到传输的复杂性。GlassFish团队使用的是Maven来简化创建过程,该工具是Apache用于Java项目的创建管理器。
嵌入式API
GlassFish v3具备嵌入式API,可以用它们来启动和配置应用服务器。这意味着你可以用Java平台,JavaSE应用来启动和停止GlassFish容器。开发团队对GlassFish应用进行测试的时候,他们使用的是Maven中的技巧,Maven本身就是一个JavaSE应用。可以用Maven制造一个 GlassFish v3插件来进行测试。