在上次 DevNation 大会期间,Red Hat、IBM、Tomitribe、Payara 和伦敦 Java 社区宣布创建 MicroProfile ,这是一种设法利用 Java EE 技术创建供应商中立的微服务框架的新方案。其目标是在 2016 年 9 月发布第一个公开版本,让开发人员可以使用 Java 更轻松地创建可移植的微服务。对此,来自伦敦 Java 社区的 Martijn Verburg 是这样说的:
我们最初的目标是为最熟悉企业级 Java(如果你愿意,可以说 Java EE)的开发人员开个头,让他们可以用一种供应商无关的方式(在 Java EE 的世界里,这是他们习惯的方式)使用微服务。然后有个目标是让开发者社区真正地推动他们所认为的、微服务 runtime/API 需要的东西,从而让供应商不用再“猜测”用户可能想要的特性,诸如安全,或者日志,或者服务发现等等。这将完全由 MicroProfile 社区决定,他们会帮助定义应该包含什么以及应该剔除什么。
对于开发人员而言,Java EE 提供了一些明显的好处。它提供了稳定的程序库,这些库经过了开发、集成和测试,可以开箱即用。另外,由于有许多 Java EE 容器可供使用,所以开发人员可以将编码和平台决策分开考虑。然而,Java EE 相当笨重,并且遵循统一的标准,这也就意味着它的发展非常缓慢;从稳定性方面来看,这是一个优势,但这使它不适合快节奏的微服务领域。因此,社区创建了类似 WildFly Swarm 或 WebSphere Liberty 这样的解决方案,让开发人员可以创建更加轻量级的应用程序,但仍然以 Java EE 组件为基础。这类框架已经帮助弥合了创新和标准之间的差距,但它也有自身的问题:由于每种框架都是单独创建的,应用程序从一种框架移植到另一种框架比较困难。
这就是 MicroProfile 出现的原因。创建一个标准框架,定义基于 Java EE 的微服务应用程序的基础,使供应商开发兼容这种标准的应用程序服务器,为开发人员提供一个协调一致的容器生态系统,让他们不用修改应用程序就有更多的选择。MicroProfile 正式版本预计在 2016 年 9 月发布,在此之前什么也还不确定,但最初的介绍表明,MicroProfile 将会以 JAX-RS、CDI、JSON-P 以及其他任何社区认为必要的技术为基础。
虽然 MicroProfile 和现有的 Web Profile 有类似之处,但它们采用的方式并不相同。Web Profile 是作为 Java EE 的一个子集而创建的,专门针对 Web 应用程序,其创建原因主要有两个:更轻量级的框架和更简单的供应商验证过程。初看起来,可能会觉得 MicroProfile 是下一个步骤,Web Profile 的微服务子集;不过,情况并非完全如此,这有几个方面的原因。一方面,前期的讨论说明, MicroProfile 可能会包含一些甚至 Java EE 都未涵盖的技术,像 Vert.x;另一方面,创建一个正式的 Java 标准的过程可能太慢,无法满足一个快速发展的行业的需求。
MicroProfile 是否是走出了终结 Java EE 的第一步还有待观察。不过,MicroProfile 所带来的创新和活力应该会为企业级 Java 功能提供一些新鲜的空气,考虑到其停滞不前在最近一段时间内所引发的担忧,这正是眼下所急需的。
查看英文原文: Java EE Vendors and the London JUG Announce New MicroProfile
评论