展望09年Java相關(guān)技術(shù)的興衰
對(duì)于2009年Java相關(guān)技術(shù)的變化,在這一點(diǎn)上,它與JavaOne大會(huì)給人的感覺(jué)非常類(lèi)似,其中第一年充滿(mǎn)了規(guī)范、標(biāo)準(zhǔn)和新框架,緊隨之后的第二年就是規(guī)范的落實(shí)和前一年標(biāo)準(zhǔn)的成熟。在本篇文章中,我所提到的技術(shù)并不一定都是最新的,但是它一定是將被應(yīng)用到現(xiàn)實(shí)開(kāi)發(fā)中的。為了讓文章更生動(dòng)有趣一點(diǎn),我不僅僅會(huì)列出我認(rèn)為會(huì)日漸重要的技術(shù),還將列出那些我認(rèn)為將逐漸衰落的技術(shù)。
日漸重要的技術(shù)
1.Java內(nèi)容倉(cāng)庫(kù)(JCR)
我認(rèn)為,2008年是Java內(nèi)容倉(cāng)庫(kù)技術(shù)在規(guī)范上取得成功的一年,而在2009年則將是它被廣泛采用的一年。Jackrabbit是其中非常成功的一個(gè)實(shí)現(xiàn)。盡管在某些地方數(shù)據(jù)庫(kù)可能更加符合要求,不過(guò)我發(fā)現(xiàn)目前在越來(lái)越多地方,倉(cāng)庫(kù)或許更加適合。最初的時(shí)候,Web內(nèi)容管理系統(tǒng)似乎是唯一最適合Java內(nèi)容倉(cāng)庫(kù)的領(lǐng)域,但是我認(rèn)為這一情形將在2009得以改變。
另外,我將來(lái)可能會(huì)對(duì)使用諸如db4o之類(lèi)的對(duì)象數(shù)據(jù)庫(kù)更有興趣。我認(rèn)為對(duì)象數(shù)據(jù)庫(kù)和倉(cāng)庫(kù)之間有一些類(lèi)似之處,因此對(duì)象數(shù)據(jù)庫(kù)如果日漸重要,也不是一件令人吃驚的事情。既然我們現(xiàn)在都在使用面向?qū)ο缶幊陶Z(yǔ)言,為什么就不能使用一個(gè)對(duì)象數(shù)據(jù)庫(kù)呢?
2.Flex
從一個(gè)開(kāi)發(fā)者的角度來(lái)看,F(xiàn)lex在2008年已經(jīng)變成一個(gè)重要的備選工具,但是它似乎還缺少一些來(lái)自企業(yè)用戶(hù)的支持。我認(rèn)為這個(gè)不足將在2009年得以彌補(bǔ)。
隨著企業(yè)越來(lái)越接受富互聯(lián)網(wǎng)應(yīng)用(RIA)這個(gè)概念,它們也會(huì)發(fā)現(xiàn)Flex才是唯一真正切實(shí)可行的解決方案。就我個(gè)人來(lái)言,我更喜歡使用Flex來(lái)開(kāi)發(fā)未來(lái)所有的Web應(yīng)用。它與AIR聯(lián)合使用可以離線運(yùn)行Web應(yīng)用,這無(wú)疑是錦上添花的一個(gè)功能。我一直感覺(jué)在桌面應(yīng)用和基于瀏覽器的Web應(yīng)用之間存在一段距離。事實(shí)證明,AIR彌補(bǔ)了這個(gè)空白。
最后,我非常喜歡它的完全將業(yè)務(wù)層與展現(xiàn)層分開(kāi)的特點(diǎn)。這是RESTful服務(wù)的成功之處,而Flex對(duì)這一點(diǎn)可以很好的支持。那么,我們可以想創(chuàng)建多少客戶(hù)端都可以,而不用管它們是使用Flex、Silverlight或傳統(tǒng)的AJAX技術(shù)。
3.RESTful服務(wù)
當(dāng)然這不是一個(gè)新技術(shù),但是隨著JAX-RS的發(fā)布,我認(rèn)為在2009年企業(yè)將開(kāi)始開(kāi)發(fā)越來(lái)越多的RESTful風(fēng)格的服務(wù)。
在2008年,SOAP網(wǎng)絡(luò)服務(wù)和RESTful服務(wù)的比例大約是70:30或60:40,顯然SOAP服務(wù)占據(jù)優(yōu)勢(shì)。但是我認(rèn)為在2009年兩者之間的比例將反過(guò)來(lái)。我甚至認(rèn)為RESTful服務(wù)將實(shí)現(xiàn)更大的突破。
熱議技術(shù):云計(jì)算,軟件即服務(wù)(SaaS)
眾多IT巨頭已經(jīng)紛紛進(jìn)軍云計(jì)算領(lǐng)域,云計(jì)算的出現(xiàn),恰好解決了SaaS發(fā)展過(guò)程中面臨的一些問(wèn)題,當(dāng)SaaS提供商的客戶(hù)快速增加到一定程度,客戶(hù)所消耗的巨大資源將迫使SaaS供應(yīng)商提供更多的硬件資源,但由于成本的問(wèn)題,SaaS又不想花費(fèi)大量資金購(gòu)買(mǎi)硬件或帶寬資源的時(shí)候,云計(jì)算無(wú)疑是個(gè)不錯(cuò)的選擇。
窮途末路的技術(shù)
1.ESB的衰落
坦白的說(shuō),我已經(jīng)徹底對(duì)失去了對(duì)“SOA需要ESB”說(shuō)法的信心。我只在一個(gè)項(xiàng)目(使用Mule ESB)中感覺(jué)這個(gè)說(shuō)法言之有理,我們具有需要同步的多個(gè)完全不同應(yīng)用(數(shù)據(jù)庫(kù)、命令行、服務(wù)),Mule ESB證明了自己是這個(gè)問(wèn)題的最完美解決方案。在其它項(xiàng)目中,我看到企業(yè)只是簡(jiǎn)單的使用一個(gè)ESB來(lái)代理/路由/監(jiān)控服務(wù)請(qǐng)求。但是我可以使用Apache來(lái)完成這些任務(wù)。
而且,SOAP只是企業(yè)整合的途徑之一,但并非唯一途徑。另外,如果人們甚至沒(méi)有任何企業(yè)整合需求時(shí),又有多少人會(huì)實(shí)施SOA呢?
2.Web框架/AJAX的下滑
我曾經(jīng)認(rèn)為所有這些Web框架都是好東西,我喜歡嘗試新產(chǎn)品,我喜歡具有創(chuàng)新性的事物。但是現(xiàn)在它們卻讓我感到厭煩。
先來(lái)說(shuō)一下AJAX,的確你可以使用它來(lái)做出許多非??岬臇|西,但是這些是否是你想要或真正需要的呢?很明顯,人們沒(méi)有從需要的角度來(lái)考慮其能實(shí)現(xiàn)什么功能,而只是為了實(shí)現(xiàn)這個(gè)功能而使用這個(gè)功能。不過(guò)我認(rèn)為,如果你不能放棄你喜愛(ài)的Web框架,那你將不得不繼續(xù)使用AJAX。
3.復(fù)雜的“組合”
這是Web框架下滑的一種延伸影響。我對(duì)到處充滿(mǎn)各種“組合”的過(guò)去記憶深刻,我們有Hibernate、Struts和Spring。然后我們必須增加一個(gè)安全框架和Web服務(wù)客戶(hù)端,諸如此類(lèi)舉不勝舉。
我們最終得到的是一個(gè)相當(dāng)復(fù)雜的組合,因?yàn)檫@樣就有了一個(gè)真正模塊化的應(yīng)用程序,你可以使用其它同類(lèi)技術(shù)來(lái)替換出特定的層。不過(guò),這沒(méi)有多大意義,這種需要很少發(fā)生。一旦一個(gè)組合被設(shè)定后,很少再會(huì)去修改它?,F(xiàn)在我喜歡讓我的應(yīng)用程序盡可能的簡(jiǎn)單。我寧愿手動(dòng)編寫(xiě)一些代碼,也不愿意去增加另一個(gè)框架。
其它可疑技術(shù):商業(yè)化開(kāi)源,應(yīng)用程序服務(wù)器
對(duì)于商業(yè)化開(kāi)源這個(gè)業(yè)務(wù)模式,我沒(méi)有異議,我懷疑的人們對(duì)它的期望太高,一個(gè)產(chǎn)品不能因?yàn)殚_(kāi)源了就放松對(duì)其投入,這樣會(huì)致使其體系架構(gòu)變陳舊,代碼質(zhì)量下滑。
【編輯推薦】