天天看點

對于大型公司項目平台選擇j2ee的幾層認識(二)

對于大型公司項目平台選擇j2ee的幾層認識(二)

    如前面所述的,由于很多人已經被洗過腦,還有其他很多操作上的考慮,大家都會很自覺地配合IBM的營銷攻勢,而且我們也衷心相信:在IBM等軟體和硬體的支援下,我們的一個個系統步入了“高檔系統”的行列。把.net平台留給了孩子們玩去吧。

    其實,IBM,以及其他一些高端廠商(Oracle, BEA等)做承接的項目,大部分的活計是直接再轉包給其他國内的小廠商的,他們自己所需要做的,基本隻限于“規劃、咨詢、建議、項目管理方法論”等一些又高端又陽春白雪的工作。

    不過說實話,這些大廠商的總結能力真不是蓋的,你聽了他們的咨詢師的課之後,大部分會感覺自己醍醐灌頂,狠不得把自己的所有的系統都推倒了重來!甚至狠不得把自己的業務方式都來個大變革。不過另一方面,這些高瞻遠矚的規劃,一般也會與現實社會有很大的距離,要麼是客戶不接受,要麼是監管不接受,要麼是現實不接受。無論如何,聽聽絕對有好處,就當開闊了思路了。

    既然遠景做不到,那麼近景能做一些就做一些也是好的。首先就要聽這些大廠的話,選擇SOA, 或是SAAS, 或是别的什麼概念來做這些項目, 當然,聽IBM他們說,這些項目的都需要J2ee來支援,而最好的J2ee應用中間件,當然是IBM自己的websphere什麼的。其實都沒所謂.net好還是Java好,無關乎技術。對于廠商來說,這都無非是一件武器,用來對抗微軟的武器罷了,因為MS真得太令人害怕了,需要這麼多廠商來一起對抗它。

    為什麼MS令人害怕?因為以下的幾個原因。

    1. MS是一個程式員的公司,而IBM是一個營銷員的公司。MS有實實在在的技術,但是明顯在市場頭腦方面差人一等,是以總是在戰略上慢幾拍,但是後發的産品很強大。

    2. MS一直不停地研發。相信學MS技術的人都有感覺,就是他的主導技術基本上不到三年就要整個推掉重來一次,比如從ado到linq,再到現在的那個什麼Ado.net entity framework的東西。每一代技術都更強大,但是翻新得讓人追不上。這種技術創新的能力,是十年不變的java陣營很害怕的。而且下一代的WPF、WCF等平台的高度和技術能力是其他廠商難以達到的。

    3. MS有着令人難以置信的軟體産品線,從作業系統到遊戲,甚至是機器人仿真和開發包!在每一個戰線上,他都有産品(可能是原型級的)可以用來對抗全世界廠商。

    4. MS正在蠶食下一代程式員。

    是以,java聯盟必須努力抗擊MS, 他們其實對java的低效率心知肚明,但是他們已經選擇了這個武器和這個招牌,是以隻好做足文章,把資料庫、應用伺服器全部用java寫成——當然可以用。這就夠了。

    但是效率太低,無論懂不懂技術都能看出來系統慢。那麼也沒問題的,隻要幾台P590上線,也就快多了。

    技術上也對此準備了解釋:是的,j2ee是用于對付大批量使用者的應用平台,在少使用者的情況下,效率上不明顯。但是當使用者量上升到海量級别時,這個系統的響應曲線一定是平緩的。而“.net一類”的響應曲線必然是陡峭的。這叫做“吞吐量”。

    我們得到了安慰,為我們的預算支出找到了解釋。每個人都滿意了。至于什麼時候我們會用上百萬并發的吞吐量?也許永遠也不會,不過備着這個能力也好。

    一度我也很相信這個含義不明的“吞吐量”名額,實際上的情況如何?有個例子可以參考:公司裡有一個系統很關鍵,使用者并不是很多,這個系統由IBM規劃,orcale實施,運作在一個oracle cluster上,資料庫的存儲用的是HP的11000,應用伺服器用兩台單獨的590,全部資源都劃為一個分區來跑。在每個月初會有幾百人在裡面幹活,系統要把上千萬條資料做轉換、抽取和導入(ETL),每到這個時候,系統就會慢得幾乎不能幹活,登入頁都需要十幾秒才會響應。聽說硬體組的人為了加快效率,都把這個資料庫的存儲移到最快的硬碟條帶上了,還是很慢。每次登入這個系統,我都能感覺到IBM和oracle的龐大重量全部壓在我的滑鼠上。

    這個例子并不是為了證明j2ee很慢。相反,我認為這個系統的慢一定出現在軟體的設計上,那種級别的慢法,一定是要有數量級上的性能提升才會有用,java與C++相比,也不過是10倍以内的效率之差,不會慢到二十秒出現登入頁,再過二十秒才能登入進去。是以,一定是與軟體、資料庫的設計很有關系,也就是與開發者的水準有關系,隻有那樣才會導緻幾百上千倍的效率差別。

    是以,用什麼技術效率高什麼的,隻是一個建立在“完全相等條件下進行比較”這個前提下的一種說法而已,現實中,你沒有辦法忽略具體設計人員的個人水準造成的影響。就算是有嚴格的資料證明說什麼技術比另一個什麼技術快,也不能保證“這個項目”就一定會“吞吐量大”。其實這就是一個營銷手法,它在我們遇上巨額費用支出是否合理的問題時,提供自我心理安慰的理由。

    既然說到了這個項目,我就用這個項目做例子,繼續說我的第二層認識吧。