專(zhuān)訪(fǎng)Muzilla:紅帽中間件鮮為人知的另一面
原創(chuàng)【51CTO外電頭條】紅帽公司的副總裁兼中間件事業(yè)部總經(jīng)理Craig Muzilla是個(gè)大忙人。盡管紅帽以L(fǎng)inux發(fā)行版名揚(yáng)天下,但該公司依托JBoss搞起了一塊主要的企業(yè)軟件業(yè)務(wù)。早在2006年就搞起了這塊業(yè)務(wù),當(dāng)時(shí)“SOA”和“AJAX”等詞眼大行其道。
我們?cè)O(shè)法聯(lián)系上Craig,想打探一下如今JBoss中間件領(lǐng)域的近況到底如何。Java社區(qū)已準(zhǔn)備發(fā)布OpenJDK(Java的開(kāi)源實(shí)現(xiàn)),而JBoss和紅帽在這款平臺(tái)的現(xiàn)在和未來(lái)扮演著重要角色。該公司最近甚至負(fù)責(zé)啟動(dòng)Java社區(qū)進(jìn)程(JCP)里面的Java EE 7規(guī)范。
Craig談?wù)摿似髽I(yè)Java的未來(lái)以及JBoss中間件平臺(tái)的未來(lái),訪(fǎng)談內(nèi)容如下:
在這個(gè)云計(jì)算時(shí)代,中間件業(yè)務(wù)做得怎么樣?
我們公司的中間件業(yè)務(wù)一直做得相當(dāng)好。其增長(zhǎng)速度大概是Linux業(yè)務(wù)的一倍。中間件業(yè)務(wù)是我們紅帽的一大增長(zhǎng)點(diǎn)。去年,我們?cè)谒械貐^(qū)都取得了長(zhǎng)足發(fā)展,包括日本、巴西和拉美。我們的目標(biāo)是,擴(kuò)大和豐富中間件產(chǎn)品組合,讓我們能夠提供專(zhuān)有中間件產(chǎn)品之外的一種選擇。我們?yōu)樵S多公司提供了一種選擇,因而能夠統(tǒng)一使用我們的中間件產(chǎn)品,或者在戰(zhàn)略性環(huán)境使用我們的產(chǎn)品。在過(guò)去的幾年間,我們先后推出了八款主要的新產(chǎn)品?,F(xiàn)在,我們擁有高速消息傳遞、業(yè)務(wù)流程管理和規(guī)則管理等產(chǎn)品。我們有一款門(mén)戶(hù)網(wǎng)站產(chǎn)品和數(shù)據(jù)集成產(chǎn)品。我們其實(shí)一直在擴(kuò)大和豐富產(chǎn)品組合。其中一些產(chǎn)品賣(mài)得相當(dāng)好,尤其是集成產(chǎn)品。
業(yè)務(wù)的性質(zhì)也發(fā)生了變化?;仡櫵哪昵?,唱主角的是應(yīng)用服務(wù)器。JBoss通常用于戰(zhàn)術(shù)性環(huán)境,用于基于Web的應(yīng)用系統(tǒng)和非關(guān)鍵任務(wù)型應(yīng)用系統(tǒng)?,F(xiàn)在,許多公司變得更牢固了,因而覺(jué)得使用JBoss更放心了。完全遷移到JBoss的公司數(shù)量眾多。日產(chǎn)汽車(chē)公司和日本電信電話(huà)公司(NTT),美國(guó)的聯(lián)邦快遞、政府雇員保險(xiǎn)公司(Geico)、韋里遜、ING和紐約證券交易所,它們現(xiàn)在都統(tǒng)一采用了JBoss,并且普遍用于各自的企業(yè)環(huán)境。它們從大廠(chǎng)商(專(zhuān)有的Java產(chǎn)品)遷移到JBoss。
最近JBoss中間件關(guān)注的重點(diǎn)是什么?
我們一直在努力讓這個(gè)平臺(tái)大大增強(qiáng)靈活性,為此支持不同的語(yǔ)言。我們的平臺(tái)不但是運(yùn)行Java EE的最佳環(huán)境,我們還有相當(dāng)大比例的客戶(hù)在使用我們的產(chǎn)品來(lái)運(yùn)行Spring、Struts和Groovy on Grails。
靈活性這個(gè)想法旨在提高運(yùn)行靈活性。我們把注意力放在了這款應(yīng)用平臺(tái)的下一個(gè)版本上。我們的Java EE 6平臺(tái)已成為可配置性大大加強(qiáng)的平臺(tái)。
EE 6旨在通過(guò)新的Profiles(配置文件),為平臺(tái)的模塊性奠定基礎(chǔ)。那么,JBoss在如何利用這一點(diǎn)?
我們接下來(lái)宣布的是JBoss應(yīng)用服務(wù)器7。這款應(yīng)用服務(wù)器的核心是微服務(wù)容器(micro-services container)。我們?cè)诙嗄昵熬屯瞥隽宋?nèi)核(micro-kernel)這個(gè)概念。Java EE 5則推出了基于Java虛擬機(jī)(JVM)的微容器(micro-container)這個(gè)概念。現(xiàn)在,我們有了加強(qiáng)模塊性這個(gè)概念。如果你在Java持久性API(JPA)中有可交易性,或者緩存、消息傳遞或集群安全,就很容易通過(guò)微服務(wù)容器,增添或減少所有這些服務(wù)。
另一方面,JBoss 應(yīng)用服務(wù)器7讓我們可以大大增添可管理性方面的功能。我們?cè)跀U(kuò)展應(yīng)用編程接口(API),那樣平臺(tái)容器就更容易進(jìn)行管理了,沒(méi)必要加入硬編碼的東西。這個(gè)環(huán)境管理、配置和部署起來(lái)要容易得多。我們正在竭力為開(kāi)發(fā)人員提供這種靈活性,同時(shí)也為了確保卓越運(yùn)營(yíng)、事后管理。
我們有一個(gè)配置文件,它實(shí)際上是精簡(jiǎn)版的Tomcat。它說(shuō)白了就是小服務(wù)程序引擎,但之后你開(kāi)始借助微服務(wù)容器,在此基礎(chǔ)上進(jìn)行構(gòu)建。Tomcat的優(yōu)點(diǎn)在于,它很簡(jiǎn)單,部署起來(lái)也很容易;但是問(wèn)題是,如果你需要對(duì)它向上擴(kuò)展、添加服務(wù),就不么容易了。如果你需要可交易性,如果你需要高度分布式緩存功能,就無(wú)法用Tomcat輕松地實(shí)現(xiàn)。
我要說(shuō),Tomcat的發(fā)展情況還是很好。從我們獲得的市場(chǎng)研究數(shù)據(jù)來(lái)看,Tomcast的使用量似乎并沒(méi)有減少,但也沒(méi)有出現(xiàn)增長(zhǎng)。我認(rèn)為,其他這些開(kāi)發(fā)商(Mulesoft和SpringSource)目前都需要一種容器。拿Mule來(lái)說(shuō),它們的企業(yè)服務(wù)總線(xiàn)(ESB)需要一種容器;但如果你需要容器不僅僅充當(dāng)ESB的運(yùn)行時(shí)環(huán)境,就沒(méi)有可以做到這點(diǎn)的服務(wù)。我認(rèn)為,這正是左右為難的境地。其中一些公司在提供自己的Tomcat版本,但這是不是一種豐富環(huán)境呢?
Java 7(包括SE和EE)方面的工作開(kāi)展得怎樣?
我們參與了Java EE 7和SE的執(zhí)行委員會(huì)。我們參與了最近的Java EE 7發(fā)布。就Java SE 7而言,我們是其專(zhuān)家小組成員。我們發(fā)表了自己的看法,確保自己是社區(qū)進(jìn)程的一分子。除了甲骨文外,我們是OpenJDK的第一大貢獻(xiàn)者。我們有不少的人員專(zhuān)門(mén)從事OpenJDK的開(kāi)發(fā)。大概四五年前,我們就有了符合測(cè)試兼容包(TCK)的Java,我們把它與紅帽企業(yè)Linux一并交付。我們打算繼續(xù)保持這個(gè)傳統(tǒng);我們?nèi)χС諳penJDK。我認(rèn)為,充滿(mǎn)不確定性的是甲骨文在OpenJDK之后有什么動(dòng)作。
甲骨文可能會(huì)使用Hotspot和Jrockit,封裝基于OpenJDK的另一個(gè)發(fā)行版。它會(huì)在這個(gè)環(huán)境加入什么類(lèi)型的附件?從市場(chǎng)的角度來(lái)看,甲骨文表示自己希望在Java的基礎(chǔ)上提供增值服務(wù)。不過(guò)我認(rèn)為,甲骨文會(huì)何去何從并不明朗。我們希望確保規(guī)范本身和參考實(shí)現(xiàn)很好、很成熟,而且擁有市場(chǎng)中的每個(gè)人都需要的所有基本功能。
可以說(shuō)說(shuō)Apache基金會(huì)圍繞TCK許可條款與甲骨文之間的爭(zhēng)端嗎?
到目前為止,雙方對(duì)此顯得有點(diǎn)沉默。SE 7果真發(fā)布時(shí),雙方并沒(méi)有披露新TCK的所有許可條款。我們希望他們繼續(xù)心懷善意。到目前為止,他們?cè)谏鐓^(qū)進(jìn)程方面一直很開(kāi)放,我們只能靜觀其變。
2007年,甲骨文曾發(fā)表了好多文章和博文,介紹JCP及其運(yùn)作方式。只是籠統(tǒng)地講述了一些最佳實(shí)踐應(yīng)該怎么樣。就實(shí)現(xiàn)自己的既定目標(biāo)而言,甲骨文在過(guò)去的腳步似乎有點(diǎn)慢。與此同時(shí),甲骨文卻加快發(fā)布了新規(guī)范的步伐。Java SE 7有一個(gè)新規(guī)范,EE 7也有一個(gè)新規(guī)范,還準(zhǔn)備為SE 8和EE 8發(fā)布新規(guī)范。我認(rèn)為,大家都抱著樂(lè)觀的態(tài)度。
你們?cè)谌绾螒?yīng)對(duì)其他語(yǔ)言在JVM上運(yùn)行的趨勢(shì)?
我們有一項(xiàng)名為自由選擇(Open Choice)的戰(zhàn)略。該戰(zhàn)略的初衷是,能夠接受任何基于JVM的技術(shù)——或者不是基于JVM的一些技術(shù),而且能確保你擁有的運(yùn)行時(shí)環(huán)境采用了許多不同的語(yǔ)言和組件模型。我們可以針對(duì)Struts或Spring,運(yùn)行任何通過(guò)認(rèn)證的框架。Ruby on Rails可以在JBoss上運(yùn)行。借助OSGi之類(lèi)的組件模型,你可以用OSGi來(lái)設(shè)計(jì)整個(gè)應(yīng)用程序,可以構(gòu)建OSGi綁定包(OSGi bundle);我們會(huì)接受并使用所有這些綁定包。我們?cè)陉P(guān)注所有那些語(yǔ)言,為它們提供支持,并提供認(rèn)證。我們說(shuō),你仍需要運(yùn)行時(shí)環(huán)境;你仍需要容器和服務(wù),而不是為每種語(yǔ)言和每個(gè)框架從事重復(fù)性工作。要是有一大堆環(huán)境,你最后可能有五六種平臺(tái)。至于哪些語(yǔ)言和哪些模型最適合自己,我們留給開(kāi)發(fā)人員去定奪;但你總是會(huì)有同樣的運(yùn)行時(shí)環(huán)境和同樣的服務(wù)。
一些廠(chǎng)商支持幾個(gè)不同的環(huán)境。VMware等另一些廠(chǎng)商則不然,他們說(shuō)就支持Spring和 Groovy。我們積極接受環(huán)境的多樣化。
Seam方面情況怎么樣?
Seam的情況非常好。它已成為Java EE 6的上下文和依賴(lài)注入(CDI)規(guī)范JSR 299。它其實(shí)是一種更現(xiàn)代化的框架。它也是六年前Spring著手要解決的問(wèn)題,當(dāng)時(shí)Spring在Java EE方面遇到了困難。我們最終繞了個(gè)大圈子,回到原處:Java EE借助一種更現(xiàn)代化的框架(即CDI),結(jié)合了其中一些概念。
Seam的開(kāi)發(fā)者Gavin King也一直在嘗試一些新語(yǔ)言。Ceylon采用了Seam的部分概念,結(jié)果變成了一種語(yǔ)言。也許,有人會(huì)拿它與Scala作比較,但是與Gavin交流一番,就明白Seam的目的并不是用來(lái)取代其中一些更新的語(yǔ)言和語(yǔ)言類(lèi)型。外界一直問(wèn)我們?cè)谌绾螌?duì)待Seam?我們奉行的宗旨是,開(kāi)源的一部分就在于大量的研究開(kāi)發(fā)和試驗(yàn)。我們就是想看看Gavin開(kāi)發(fā)的東西是不是讓人們有興趣。
JBoss接下來(lái)會(huì)怎樣?
我們正在做的工作就是,不斷完善這個(gè)應(yīng)用平臺(tái),而這方面的根本體現(xiàn)在Java EE6中。這個(gè)微服務(wù)容器已成為我們開(kāi)展的一切工作的基礎(chǔ)。我們開(kāi)始不單單著眼于整體式應(yīng)用服務(wù)器,而是關(guān)注應(yīng)用程序的基本結(jié)構(gòu)。你有一種占用資源非常少的平臺(tái),可以在iPhone和可插接電腦之類(lèi)的一些設(shè)備(移動(dòng)性很強(qiáng)的設(shè)備)上運(yùn)行,不過(guò)該環(huán)境支持HTML 5和不同的客戶(hù)端。這種平臺(tái)具有動(dòng)態(tài)性,你可以即插即用服務(wù)。我們?cè)陉P(guān)注自我擴(kuò)展和自我愈合功能。它是策略驅(qū)動(dòng)型的平臺(tái),可以減少大量的人工干預(yù)。這就是我們?cè)谶@方面(注:JBoss)的前進(jìn)方向。
大家可以開(kāi)始看到產(chǎn)品組合有不一樣的功能。獨(dú)立式的企業(yè)服務(wù)總線(xiàn)(ESB)或規(guī)則管理系統(tǒng)已成為基本結(jié)構(gòu)的一部分。這是今后幾年的長(zhǎng)遠(yuǎn)目標(biāo)。就短期而言,紅帽很有希望成為云計(jì)算領(lǐng)域的一大玩家。我們提供了所有部分。我們有內(nèi)核虛擬機(jī)(KVM)、操作系統(tǒng)、中間件的所有組件、平臺(tái)運(yùn)行時(shí)環(huán)境以及服務(wù)和組件。我們運(yùn)用到了所有這一切。
請(qǐng)說(shuō)說(shuō)Cloud Forms和Open Shift吧。
我們最近宣布了Cloud Forms和OpenShift,后者是我們的平臺(tái)即服務(wù)產(chǎn)品。
JBoss產(chǎn)品線(xiàn)把我們擁有的所有這些部分組合起來(lái),通過(guò)OpenShift把它們作為服務(wù)來(lái)提供。人們可以把它作為各自云環(huán)境中的引擎來(lái)使用。它不僅僅是一種容器。可以把它看成是來(lái)自Salesforce.com的集成服務(wù),與內(nèi)部的企業(yè)資源規(guī)劃(ERP)實(shí)現(xiàn)集成。除此之外,你可以獲得作為服務(wù)來(lái)提供的業(yè)務(wù)流程管理,作為服務(wù)來(lái)提供的用戶(hù)體驗(yàn)和協(xié)作。
JBoss應(yīng)用服務(wù)器7是我們?cè)谠骗h(huán)境的中間件產(chǎn)品的引擎。這個(gè)引擎會(huì)在接下來(lái)的幾周投入使用,JBoss應(yīng)用服務(wù)器7是OpenShift中的支撐性引擎。
貴公司的平臺(tái)即服務(wù)有什么樣的目標(biāo)?
我認(rèn)為,主要的需求就是讓平臺(tái)即服務(wù)非常易于訪(fǎng)問(wèn)、使用非常容易,把需要在云環(huán)境進(jìn)行開(kāi)發(fā)、可以把平臺(tái)即服務(wù)放回到企業(yè)內(nèi)部環(huán)境的公司里面的開(kāi)發(fā)人員吸引過(guò)來(lái)。另外,把擁有主流的輔助應(yīng)用程序的人員也吸引過(guò)來(lái),所以在企業(yè)內(nèi)部進(jìn)行開(kāi)發(fā)并不明智,于是你在云環(huán)境進(jìn)行開(kāi)發(fā)。為什么在云環(huán)境進(jìn)行開(kāi)發(fā)?對(duì)于需要基于Web的應(yīng)用程序的小企業(yè)來(lái)說(shuō),可以借助平臺(tái)即服務(wù)搞好開(kāi)發(fā)工作。我認(rèn)為,關(guān)鍵需求之一就是,讓所有這些目標(biāo)用戶(hù)很容易使用OpenShift。其次的需求是,讓它易于移植,那樣目標(biāo)用戶(hù)就能從一個(gè)云轉(zhuǎn)移到另一個(gè)云,或者從云環(huán)境轉(zhuǎn)移到內(nèi)部部署環(huán)境。
我們?cè)诮吡χС指鞣N應(yīng)用程序,無(wú)論是Spring、EE、Ruby on Rails還是PHP。我們?cè)诜e極支持所有這些應(yīng)用程序,讓開(kāi)發(fā)人員可以使用最適合自己需求的工作負(fù)載。
稍稍退后一步思考,我認(rèn)為紅帽總是被認(rèn)為僅僅是一家Linux公司。但我認(rèn)為,人們對(duì)我們了解得越多,就會(huì)認(rèn)識(shí)到我們其實(shí)擁有完整的基礎(chǔ)架構(gòu)產(chǎn)品組合以及開(kāi)發(fā)和中間件產(chǎn)品;這些我們?nèi)继峁?。我認(rèn)為,所有開(kāi)發(fā)人員有必要明白紅帽不僅僅是一家Linux公司。它還是一家中間件公司、一家管理公司、一家云計(jì)算公司。
原文標(biāo)題:The Other Side of Red Hat – an interview with Craig Muzilla
【編輯推薦】
- Java同步文件到Jboss虛擬目錄
- 使用JBoss jBPM實(shí)現(xiàn)流程訪(fǎng)問(wèn)和執(zhí)行的授權(quán)
- JBoss的兩種類(lèi)隔離機(jī)制配置說(shuō)明
- 淺談如何將EJB部署在Jboss下