商業(yè)J2EE中間件價值何在?
當年曾在一家規(guī)模較大的國內(nèi)軟件公司干過,發(fā)現(xiàn)客戶的IT投資可分為四大部分:硬件、數(shù)據(jù)庫、中間件、業(yè)務(wù)軟件,其中業(yè)務(wù)軟件比值***(因為要投入人月實施),剩下硬件、數(shù)據(jù)庫、中間件的比例大約是2:2:1.5。這個比例純粹是我個人觀察,并且這些客戶規(guī)模都很大,不具有典型性。
硬件不用說,肯定是必要的,而且一分錢一分貨,基本上還算明明白白。數(shù)據(jù)庫因為存放著企業(yè)核心數(shù)據(jù),寶貝萬分,多花一點錢似乎也是應(yīng)該的。而中間件呢,廠商宣稱很有必要,很有價值,優(yōu)點很多,其中有兩點是必提的:對J2EE規(guī)范的完全支持、強大的可用性和可擴展性。而對規(guī)范支持必然會濃黑重彩的寫上一筆的就是對EJB的支持。
當時公司的產(chǎn)品只需要JSP和Servlet即可,特別是后臺業(yè)務(wù)邏輯,與今天的Hibernate有點相似,基本上就是POJO,根本不需要EJB。我們通常都會明白地告訴客戶不會用到EJB,但奇怪的是每一個客戶***采購時,要么會買Websphere,要么會買Weblogic,甚至相當一部分客戶并不會問我們要建議,直接就選定了。當時Without EJB的旗幟還剛剛舉起,國內(nèi)響應(yīng)的不多,而我也遠談不上資深,雖然有點小疑惑,但一直認為是自己見識太淺。
后來碰到了一個客戶,IT部門技術(shù)力量很強,愿意為省錢折騰,選擇了Tomcat,先是一臺PC Server,后來慢慢的擴展到了5臺PC Server做Tomcat的集群。這件事讓我***次覺得花幾十萬塊錢去買中間件似乎不值。但有朋友告訴我,要換角度思考,這樣太折騰,一個技術(shù)水平高的IT人員一年的成本差不多就夠買中間件的錢了。
再后來Spring橫空出世,漸成潮流,我也慢慢地見識了很多的人和很多的公司,用EJB的不多,少數(shù)有用的基本上也都有抱怨,有想換的心思。同時WebSphere、Weblogic也玩得很熟了,發(fā)現(xiàn)他們出錯的時候一點都不比Tomcat少(尤其是Websphere,連自帶jdom、xerces都會出問題,必需要更換),而且出了問題還很難找。印象深刻的一點是出了莫名其妙的問題的話,我們會先去WebSphere的Bug列表中去找,然后再懷疑產(chǎn)品代碼。性能上也沒有表現(xiàn)出優(yōu)勢,可擴展性和所謂可用性這個一時半會沒有結(jié)論,我只能說我感覺,感覺Tomcat這樣的開源軟件也不比他們差,那個5個Tomcat集群的客戶的核心業(yè)務(wù)系統(tǒng)就運行得很好。
這時候我已經(jīng)很懷疑商業(yè)中間件的價值了,和同事們聊天發(fā)現(xiàn)大家其實都有這種感覺,當時我們?yōu)樯虡I(yè)中間件為什么這么成功,以至于客戶總是會買它找了一個理由:一個預(yù)算不是特別緊張的企業(yè),他的IT人員通常愿意購買價值高昂的的商業(yè)軟件,因為他從個人角度上找不到要用開源軟件的理由,使用開源軟件的話,如果將來出現(xiàn)問題,他要承擔技術(shù)決策失誤的責任,但如果是商業(yè)軟件的話,他將會有一個非常好的說辭,“IBM和Bea的產(chǎn)品都搞不定,別的就更不用說了”。
J2EE中間件廠商開始異口同聲推出SOA的新概念,當時我就覺得是不是EJB不足以成為用戶購買中間件的理由,廠商們要開始炒作新概念了?我承認我目前對SOA一知半解,但我從06年開始觀察,經(jīng)常也找些相關(guān)文章讀讀,06年過去了,07年也過去了,奧運開完了,09年到了,但我看到依然是“缺乏有說服力的成功案例”云云。
也許我錯誤地看待了SOA,但我現(xiàn)在對商業(yè)中間件的價值表示深深的懷疑,我找不到花錢購買它理由。
【編輯推薦】