我被问到的第一个问题是:“我们应该使用哪个Java EE应用服务器?”。 随着Java EE 6的日益普及,新的兼容应用程序服务器获得了认证。
当前的官方兼容性和认证矩阵列出了针对完全配置文件,Web配置文件或两者认证的12种不同产品。 如果您要在绿色领域开始新项目,您将做出哪个决定? 这是我试图缩小解决方案空间的方法。
玩家们
从花束中挑选什么样的花束? 非常丰富多彩。 除了众所周知的名称(如IBM,SAP,RedHat,Apache和Oracle)外,列表中的知名度也较低。 Caucho的Resin,Apache的TomEE,OW2的JOnAS和SAP的NetWeaver Cloud仅通过Web Profile认证。 所有其他人都获得了Full Profile认证。 下表包含我们参与者的完整列表,其中包含一些更多详细信息:
应用服务器 | 供应商 | 执照 | 轮廓 | 供应商支持 | Java版本 |
GlassFish服务器3.01 | 甲骨文 | OTN /商业 | FP | 是 | 热点6/7 |
GlassFish Server开源版3.x | 甲骨文 | GPL + CDDL | FP | 没有 | 热点6/7 |
WebSphere Application Server 8.x版 | IBM公司 | 商业版(prod + dev) | FP | 是 | IBM JVM 7 |
WebSphere Application Server社区版3.0 | IBM公司 | IBM非保证程序国际许可协议 | FP | 是 | IBM JVM 7 |
耶稣7 | TMAX | 商业广告 | FP | 是 | 热点6 |
由Windows Azure支持的Interstage Application Server | 富士通 | 商业广告 | FP | 是 | 热点6 |
Interstage应用程序服务器v10.1 | 富士通 | 商业广告 | FP | 是 | 热点6 |
Geronimo 3.0-beta-1 | 阿帕奇 | 阿帕奇2.0 | FP | 没有 | 热点6 |
WebLogic Server 12.1.1 | 甲骨文 | 商业/开发免费 | FP | 是 | 热点6/7 |
uCosminexus应用服务器v9.0 | 日立 | 商业广告 | FP | 是 | ? |
JBoss应用服务器7.x | 红帽 | LGPL | FP | 没有 | 热点6 |
JBoss企业应用平台6 | 红帽 | LGPL /商业 | FP | 是 | 热点6 |
树脂4.0.17 | 考乔 | GPL“ Resin开源”版本“ Resin Professional”商业版 | 可湿性粉剂 | 是 | 热点6 |
TomEE 1.0 | 阿帕奇 | 阿帕奇2.0 | 可湿性粉剂 | 没有 | 热点6/7 |
乔纳斯5.3.0-M8-快照 | OW2 | LGPL | 可湿性粉剂 | 没有 | 热点6/7 |
NetWeaver云 | 树液 | 商业广告 | 可湿性粉剂 | 是 | SAP Java服务器VM 1.6 |
看你的要求
好消息首先。 兼容性列表中列出的所有应用程序服务器都通过了Java EE 6 TCK(技术兼容性套件),这基本上意味着它们提供与Java EE 6相关的相同功能。即使由于许多原因,它们都具有一定的模糊性原因。 一种是,没有TCK覆盖100%的指定功能。 但我敢肯定,您可以提出其他原因。 好的信息基本上是什么,让您想知道哪些是可以比较的正确需求集? 显然,它不是一套完整的技术指标,而是不同方面的组合。
以下是一组简单的指标示例:
–源代码许可(OSS或商业)
–许可费用(开发和生产免费)
–支持(可提供开发和/或生产支持)
–认证Java版本(6.0、7.0 / HotSpot /专有JVM)
– Java EE 6配置文件(完整或Web配置文件)
如果您要进行全面的产品选择,那么这远远不够。 您最有可能会查看来自不同类别的指标(例如,职能,非职能,公司,财务方面),但是到目前为止,这已经足够了。
选择过程
让我们来做:在这个简单的示例中,继续选择过程。
首先有一点免责声明:这是一个非常简化的选择过程,实际上并没有挖掘所有脏的小细节。 对于您自己的选择过程,仅将其视为粗略的方法论思想! 因此,如果有人对我所做的事情不满意,我很乐意在评论中阅读它!
我们正在寻找一种支持Java EE 6 Full Profile的OSS服务器。 这意味着我们将杀死所有商用服务器,而Web Profile仅是其中的一个:
应用服务器 | 供应商 | 执照 | 轮廓 | 供应商支持 | Java版本 |
GlassFish服务器3.01 | 甲骨文 | OTN /商业 | FP | 是 | 热点6/7 |
GlassFish Server开源版3.x | 甲骨文 | GPL + CDDL | FP | 没有 | 热点6/7 |
WebSphere Application Server社区版3.0 | IBM公司 | IBM非保证程序国际许可协议 | FP | 是 | IBM JVM 7 |
Geronimo 3.0-beta-1 | 阿帕奇 | 阿帕奇2.0 | FP | 没有 | 热点6 |
JBoss应用服务器7.x | 红帽 | LGPL | FP | 没有 | 热点6 |
JBoss企业应用平台6 | 红帽 | LGPL /商业 | FP | 是 | 热点6 |
还剩五个。 从许可证的角度来看,这有两个问题。 JBoss EAP 6和Oracle GlassFish Server都具有商业许可证(据我了解),但是它们仍然依赖OSS服务器产品,并且许可版本仅在您需要支持时才有意义。 在下一步中,我将启动不提供供应商支持的所有服务器:
应用服务器 | 供应商 | 执照 | 轮廓 | 供应商支持 | Java版本 |
GlassFish服务器3.01 | 甲骨文 | OTN /商业 | FP | 是 | 热点6/7 |
WebSphere Application Server社区版3.0 | IBM公司 | IBM非保证程序国际许可协议 | FP | 是 | IBM JVM 7 |
JBoss企业应用平台6 | 红帽 | LGPL /商业 | FP | 是 | 热点6 |
这使我们下降到三个。 仍然不是一个单一的结果。 现在,让我们有意删除IBM,因为它们没有在HotSpot上认证,而是使用自己的IBM JVM J9。
应用服务器 | 供应商 | 执照 | 轮廓 | 供应商支持 | Java版本 |
GlassFish服务器3.01 | 甲骨文 | OTN /商业 | FP | 是 | 热点6/7 |
JBoss企业应用平台6 | 红帽 | LGPL /商业 | FP | 是 | 热点6 |
根据我的一点评估,今天只有JBoss AS 7和GlassFish才是真正的选择。
建议
有人会叫我害怕在这里选拔一个获胜者。 如果您了解我,就会知道这根本不是事实。 给定初始指标,这恰好是结果,显然所选指标不足以任命明确的赢家。
如果您需要最终建议,则必须根据需要调整指标。 我建议进一步研究一下:
–市场覆盖率(例如下载/客户/等)
–成熟度(例如自EE 6最终版本以来的可用年限)
–开发性能(例如,启动时间/ IDE集成)
备注:
我为此感到抱歉,我将Oracle和RedHat的商业产品与相关的OSS服务器混合了一些。 鉴于这一事实,我希望看到OSS服务器会导致供应商支持要求的淘汰标准。 考虑到事实,我真的不建议对任何人使用AS7.1.1.Final(请参阅henk所做的原因的很好的总结 )我个人认为,为两者推荐商业方面是很公平的服务器。
参考: 在Java 企业软件开发博客上,从我们的JCG合作伙伴 Markus Eisele 选择Java EE 6应用服务器 。
翻译自: https://www.javacodegeeks.com/2013/01/selecting-your-java-ee-6-application-server.html