在上次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