BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

GlassFish Server 3.1支持JavaEE 6 Web Profile与完整平台、集群和高可用性

| 作者 Srini Penchikala 关注 34 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2011年3月26日. 估计阅读时间: 11 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

最新版的GlassFish应用服务器支持JavaEE 6 Web Profile和完整的平台、改进了OSGi支持、集群与高可用性(HA)等特性。近日,Oracle发布了该应用服务器的3.1版,分为商业版本(Oracle GlassFish Server)和开源版本(GlassFish Server Open Source Edition)两种。新的发布还提供了中心化的管理与改进的JDBC监控等功能。目前的IDE工具支持包括NetBeans与Eclipse插件扩展,同时下一版本的Oracle Enterprise Pack for Eclipse也将得到升级以包含新的GlassFish 3.1服务器插件。

集群与HA支持包括可以通过基于Web的Admin Console或是命令行界面CLI为每个域创建多个集群,每个集群可以有多个实例,每个域最多可以有100个实例。HTTP、EJB、IIOP、SSO、Web Services Reliable Messaging与Secure Conversation会话状态会在集群中得到均匀的复制。所有的管理与监控数据都可以通过RESTful Web services公开出来。基于Web的管理控制台也使用了同样的RESTful后端,这样开发者就可以使用同样的API将类似的功能集成到工具集或是IDE当中了。此外,现在可以同时部署一个应用的多个版本,并且可以在不同版本间变更。

OSGi支持:运行时已经绑定了Apache Felix,它用作默认的shell,但GlassFish也能在EquinoxKnopflerfish之上运行良好。OSGi支持可以实现混合应用开发以利用OSGi模块化和Java EE编程模型所带来的好处。开发者可以在Java EE应用中使用OSGi服务,反之亦然。该支持还包含了将Apache Felix运行时升级到了3.0.8版,该版本包含了Apache Gogo shell。

Active Redeploy:新版本扩展了GlassFish Server 3.0 Active Redeploy特性,包含了Stateful EJB与EJB Timer组件。当使用redeploy命令重新部署应用时,GlassFish服务器会维护HTTP session与EJB状态。在其Embedded API中还完整地支持EJB特性。

JDBC监控:改进的JDBC监控可以检测statement泄漏、实现自动的监控、日志,当应用失败时可以自动回收数据库光标。该特性还包含了追踪SQL查询、应用数据库连接池的监控以及针对JDBC连接池的客户化验证模板。

应用范围内的资源:开发者可以使用该特性指定资源,如JDBC资源等,以在应用部署时创建这些资源。这样,开发者就可以将资源的范围限定为某个部署的应用,因此无需外部的部署脚本就能实现应用在多个GlassFish实例间的移植了。

单元测试:GlassFish服务器可以使用Maven插件运行在嵌入式模式下以进行单元测试。开发者可以进行生命周期操作、以编程的方式部署应用并执行运行期配置,从而无需显式安装和启动应用服务器了。

除了上述特性,商业版的应用服务器还在GlassFish Server Control中提供了如下的附加特性:

  • DAS备份与恢复——这是一种灾备恢复解决方案,管理员可以在出现问题时凭借该方案将现有的域进行归档并恢复。
  • 性能调优器(只有在线帮助)——可以分析底层基础设施,其性能可以达到OOTB的3倍。
  • 监控脚本客户端——可以使用JavaScript分析运行时并创建客户化的dashboard。
  • Coherence Active Cache——可以与Oracle Coherence集成,使用Oracle Coherence替换掉内存会话复制,可以独立于会话复制层扩展应用层。
  • Oracle Access Manager集成——可以将认证与授权委托给OAM。
  • 负载平衡与插件安装器——这是一个运行在Oracle Web Server上的反向代理引擎,能够获悉备份会话驻留的位置,从而进行智能恢复。

InfoQ有幸采访到了Oracle的Java EE与GlassFish开发者Arun Gupta以深入了解此次发布的应用服务器的详细信息。

集群特性使用到Shoal框架了么?与传统的集群实现相比,GlassFish服务器的集群有何不同之处呢?

GlassFish集群以管理域为中心,然后可以创建单独的服务器实例或是使用遍布在分布式机器上的多个实例创建集群。每个域可以创建多个集群,每个集群可以创建多个实例,每个域最多可以有100个实例。可以通过SSH配置与管理多台机器。每个集群中实例的配置都是一样的,这样就可以一键将Web应用部署到集群中了。GlassFish High Availability还为HTTP、EJB、IIOP、SSO,、Web Services Reliable Messaging和Secure Conversation提供了会话复制能力。既可以针对整个会话,也可以仅针对修改的会话配置会话复制。

GlassFish的商业版(Oracle GlassFish Server)也带有一个附加特性,可以使用Oracle Coherence替换掉内存中的会话复制,这样就可以将复制迁移到单独的层次上了。这还可以独立于会话复制层扩展应用层。

没错,GlassFish使用了Shoal(运行时的动态集群框架),它也作为内存复制模块的根基。Shoal GMS(Group Management Service)用于生命周期事件通知,现在使用了Grizzly,而之前的版本使用的则是JXTA,相对于GlassFish v2来说,性能提升了33%。

能否详细谈谈GlassFish 3.1中的OSGi支持呢?

凭借GlassFish 3.1,你可以轻松部署基于OSGi的Java EE应用,能够充分享受到OSGi所带来的好处,比如模块化、依赖管理、服务动态化以及Java EE的优势,如持久化、安全、事务以及其他服务。在GlassFish 3.1中,我们实现了OSGi R4.2 Enterprise Specifications中的几个RFC。因此,OSGi客户端可以轻松调用Web应用,Web应用也可以通过标准的Java EE API和一些样板代码调用OSGi服务。

能否详细介绍一下Active Redeploy?这与WebLogic 10.3中的“FastSwap”特性是否如出一辙呢?

Active Redeploy特性是IDE(NetBeans或Eclipse)与GlassFish的联合体,可以提升开发周期中开发者的生产力。当创建或保存了项目中的任何文件时,IDE都可以将Web应用重新部署到底层的GlassFish服务器中。无论是JSP这样的静态文件,还是EJB或是Servlet类这样的动态文件都能得到很好的处理。该特性主要面向开发,我们并不建议在产品阶段中使用。注意:这是应用的完整部署,与“FastSwap”不同,后者的做法是监控,然后只重新加载改变的类文件。

对于开发、管理和监控来说,新版本提供了哪些支持工具呢?

NetBeans、Eclipse和IntelliJ都已经围绕着Java EE 6提供了广泛的工具支持。除此以外,带有GlassFish插件的NetBeans 7.0和Eclipse 3.6都集成了GlassFish 3.1。这样就可以使用这些IDE在GlassFish Server 3.1上开发、部署和调试Java EE 6应用了。

所有的管理与监控数据都通过RESTful Web service公开出来,这样就能与你所使用的工具无缝集成了。甚至连GlassFish基于Web的管理控制台也使用了这些RESTful API。“asadmin” CLI提供了你所选择对象的监控快照,比如Web容器,这是通过查询预先定义的试样(probe)实现的。我们可以通过基于Web的管理控制台或是RESTful Web Services在浏览器中获取到监控数据。还可以在Solaris 10+上通过DTrace查看这些事件。甚至你自己的应用也可以生成监控数据,就像GlassFish一样,因为底层框架具有良好的可扩展性。如果你需要一些通用的内容,那么可以编写JavaScript程序搜集并处理数据。

中心化的Web管理控制台为集群的CRUD、应用版本化、密码混淆等特性提供了完善的功能。

GlassFish v3.2未来的路线图如何,会有哪些新特性呢?

GlassFish 3.2会将精力放在虚拟化与PaaS功能上。GlassFish 4.0的目标是实现Java EE 7的功能。总的来说,GlassFish是Oracle应用服务器战略的重要棋子,因此将会长期发展下去。

感兴趣的读者可以试用GlassFish Server Open Source Edition,如果觉得好,可以向Oracle购买商业支持。可以从Oracle GlassFish Server网站上下载GlassFish的商业版开源版(包括API、指南和示例)。

读者可以参加“GlassFish 3.1新特性”与“GlassFish 3.1集群”在线研讨会以深入了解GlassFish Server 3.1。

查看英文原文:GlassFish Server 3.1 Supports JavaEE 6 Web Profile & Full Platform, Clustering and High Availability

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

商业版和开源版有何区别? by Zhang Gavin

商业版和开源版有何区别? 有人知道吗?

Re: 商业版和开源版有何区别? by Guo Ford

同问,商业版在oracle的网站上也可以自由下载

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT