自从我上一个博客以来已经有一段时间了。 我显然忙于其他事情,包括我的主要工作。 在对应用服务器的正确选择提出更多疑问之后,是时候再次讨论这个话题并分享我的想法。
该博客上最常阅读的文章之一是有关选择哪种Java EE 6应用程序服务器的文章 。 我一直在研究很多标准,并根据一个非常基本但通用的模式将不同的认证服务器拆掉。 考虑到每个服务器都应作为OSS和商业支持的变体提供的主要指导原则,本文最后建议同时推荐GlassFish 3和JBoss AS7作为有效选择。 自去年11月更新GlassFish路线图之后,情况似乎已经改变,许多人倾向于接受AS7 / WildFly现在仍然是唯一的选择。 今天,我想将焦点转移到这一点上,并尝试将讨论放回到更具战略意义的背景下,并进一步详细说明对今天的GlassFish与WildFly决定的影响。
Java EE应用程序的基本策略原理
从决定基于Java EE开发新应用程序开始,您已经假设了几件事。 出于某种原因,Java EE被称为行业标准。 这意味着它已被广泛采用,但仍未被诸如DIN / ISO或IEEE等官方标准或标准化组织之一正式捕获。 JCP为它提供规则和规章,并由不同个人和组织的广泛贡献来对其进行管理。 称之为开放行业标准对我来说很常见且有效。 您可以自己权衡两者之间的差异。 原则上, Java EE认证列表为您提供了一系列至少符合所谓的Java EE TCK的不同产品。 对TCK进行了广泛讨论,可以放心地认为它并未完全涵盖所有包含规范的每一行。 但是,每个经过认证的Java EE服务器基本上都应该准备好执行Java EE应用程序。 一次写入-随处运行的原则可以实现(至少在一定程度上)。
您的决定的底线是:避免(供应商)特定功能,并在开放的行业标准上构建新应用程序,该标准可提供灵活性并在不同产品和供应商之间进行选择。
除此之外,您还可以灵活地从提供Java EE技术的技能和服务的众多公司和开发人员中进行选择,从而获得更多价值。
从Java EE 7的角度来看,WildFly 8和GlassFish 4相等
随着WildFly 8 CR1的发布,它通过了Java EE 7 TCK。 即使正式的文书工作显然尚未完全处理,看起来8决赛也将正式获得认证。 至少就Java EE 7技术而言,两个服务器都提供相同的功能。 核心技术堆栈周围始终存在着不同的附加功能,但是我尚未对它们进行完整的功能比较,老实说,我无意这样做。
如果您打算进行绿地开发,请制定自己的决策流程并权衡这些其他指标。您已经是Oracle或Red Hat客户吗? 还是使用其他最适合彼此配合的基础设施组件? 根据我的经验,您还需要权衡其他几个因素(根据我的经验,我们正在谈论> = 30)并相应地对它们进行排名。
从GlassFish 2.x,3.x迁移到4.0?
这些天最常见的问题。 我应该如何处理已在GlassFish 2.x或3.x上运行的应用程序? 它可能是最难的了。 我需要您进一步了解才能回答。
Oracle / GlassFish客户/商店并没有更改任何内容?
您已经在使用Oracle GlassFish Server(商业支持的版本)还是在使用开源版本? 您打算扩展应用程序还是使用新引入的Java EE 7功能? 如果您已经连接到Oracle或商业版本,并且不打算进行任何更改,则基本上不必担心迁移。 根据Oracle终身支持政策 (PDF),将继续支持现有的Oracle GlassFish Server 2.1.x和3.1.x商业客户。 如果您处于这种环境,我基本上不建议完全迁移。 这两款服务器的扩展支持分别于2017年1月(GFv2)和2019年3月(GFv3)终止。
Oracle / GlassFish客户/商店并愿意尽早使用Java EE 7的新功能?
因此,您是Oracle客户,并且渴望早日使用最新技术? 还是需要大量修改应用程序?
基本上,您有三个选择:坚持使用GlassFish 4 OSS版本(无支持合同)或移至WebLogic 12c(12.1.4),后者很可能将获得完整的EE 7支持,或者首先移至GF 4逐步进行操作。然后再到WebLogic 12.1.4。
直接切换到GlassFish并计划在生产中继续使用WebLogic会带来在开发和生产中使用不同应用程序服务器的风险。 您需要对此加以重视并进行相应处理。
为了完全降低风险,我建议至少等待WebLogic 12.1.3,该WebLogic 12.1.3将具有第一组新的Java EE 7规范,并有望在CY2014上半年推出。
如果您不运行关键任务应用程序并且不需要支持合同,那么我建议您迁移到GlassFish 4.0,以促进已经可用的基础架构,技能和合同。 对我而言,匆匆更换供应商毫无意义。 准备终止支持合同,然后计划评估您对正确的开源应用程序服务器的决策。
真的不是Oracle客户/商店,是否对EE 7新功能没有任何兴趣?
在您的需求更改之前,根本不要迁移。 您可能会很快开始评估您的下一个Java EE 7服务器产品。 但是到目前为止,还没有很多认证的替代产品。
并非如此,Oracle客户/商店会不断变化的要求,是否会使用新的EE 7功能?
今年可能是时候重新审视您的IT环境。 似乎您已经决定在某些时候使用GlassFish。 您可能需要重新考虑以前的决定并评估该做什么。 要对下一个Java EE服务器做出有充分根据的决定,为时过早。 EE 7服务器的认证矩阵大部分为空。 等待更多的选择。 我预计这将占用2014财年的大部分时间。
如果您从今天起就需要新的EE 7功能,并且将来需要能够购买商业支持,但现在就不需要,现在唯一的选择就是WildFly 8。
GlassFish 4的未来将如何发展?我希望我能告诉你。 我想我在较早的帖子中提出了自己的观点。 Oracle需要GlassFish作为Java EE参考实现,并且考虑到WebLogic和GlassFish中常用组件的数量,它将始终存在。 可以肯定地认为,Java EE规范将始终是GlassFish中最新和最完善的规范。 但是,Java EE生态系统导致了许多厂商特定的扩展和功能,这些扩展和功能并未真正包含在任何规范中。 这些对我们所有人来说都是商品(主要是集群,管理功能,嵌入式服务器),在很多情况下我们都不想错过它们。 进一步,社区参与的补丁频率和等级将是GlassFish在项目和开发人员之间成功传播的关键因素。
参考:WildFly 8与GlassFish 4 –从我们的JCG合作伙伴 Markus Eisele中选择哪个应用程序服务器 ,该博客在Java企业软件开发中 。
翻译自: https://www.javacodegeeks.com/2014/02/wildfly-8-vs-glassfish-4-which-application-server-to-choose.html