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