<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    1. 備受爭議的EJB

      EJB也許是Java領(lǐng)域里中最受爭議的技術(shù)了。有人說EJB是最偉大的發(fā)明,也有人說EJB完全是多此一舉;當(dāng)一些人陶醉于EJB的深奧理論時(shí),另外一些人卻正被EJB的繁瑣復(fù)雜所折磨;嘗到EJB甜頭的人,在EJB的每個新版本中,都能發(fā)現(xiàn)盼望已久的驚喜,而被EJB拒之門外的人,則隨著EJB的升級,愈發(fā)對EJB敬而遠(yuǎn)之了。

      EJB的全稱是Enterprise JavaBeans,JavaBeans很普通,不過Enterprise就不那么簡單了。什么技術(shù),一旦被冠以Enterprise的名頭,就像男人走入婚姻殿堂一樣,身上的責(zé)任與單身漢不可同日而語了。從定義上看,JavaBeans只是J2SE平臺上的一個組件架構(gòu),包含一些業(yè)務(wù)邏輯,并且可以被重用。

      EJB不同,作為企業(yè)級的JavaBeans,Sun對EJB的定位要遠(yuǎn)遠(yuǎn)高于JavaBeans,所以EJB的目標(biāo)也比JavaBeans要遠(yuǎn)大得多,除了作為一個包含業(yè)務(wù)邏輯的可重用組件外,EJB更被賦予了諸如“可移植”、“安全”、“可伸縮”、“交易性”等特征。

      所有這些EJB必須具備的特征,其實(shí)正是企業(yè)應(yīng)用所要求的。這也是Enterprise一詞所代表的技術(shù)上的含義。企業(yè)應(yīng)用不同于普通應(yīng)用,企業(yè)應(yīng)用是大規(guī)模的、高復(fù)雜度的和關(guān)鍵的,它所面臨的挑戰(zhàn),要比普通應(yīng)用艱巨得多。比如,企業(yè)應(yīng)用對可移植性的要求非常高,這是因?yàn)椋髽I(yè)都不愿意將自己的未來綁定到某個供應(yīng)商的身上,除非是不得已而為之;又比如,安全性對企業(yè)應(yīng)用至關(guān)重要,誰能使用什么功能、哪些數(shù)據(jù)哪些人可以看到,都有嚴(yán)格的限制;更不用說的是企業(yè)應(yīng)用的可伸縮性了,當(dāng)業(yè)務(wù)規(guī)模變大時(shí),你希望全盤推翻舊系統(tǒng),采購一批嶄新的軟件和硬件,對IT系統(tǒng)來個徹底的革命嗎?增加一臺服務(wù)器就能應(yīng)付更多的客戶,我想這是頭腦正常的企業(yè)家都希望的。

      企業(yè)應(yīng)用的需求,就是EJB的目標(biāo)。用EJB開發(fā)的應(yīng)用,完全符合企業(yè)應(yīng)用的特征。EJB是一個規(guī)范,只要符合這個規(guī)范,EJB可以在不同的操作系統(tǒng)、不同的應(yīng)用服務(wù)器中無縫地移植;EJB允許開發(fā)者在EJB部署描述文件中進(jìn)行方法級的、基于角色的安全性配置,以統(tǒng)一的方式保護(hù)企業(yè)應(yīng)用和數(shù)據(jù)的安全性;只要你愿意,EJB應(yīng)用可以全部部署在一臺單獨(dú)的服務(wù)器上,也可以任何組合方式分布在一組服務(wù)器群中,滿足你擴(kuò)大規(guī)模和均衡負(fù)載的要求;如果你想保持事務(wù)的完整性,那么,EJB的事務(wù)管理是一個可靠的、穩(wěn)健的解決方案。

      這就是EJB,一個企業(yè)應(yīng)用的集大成者,多種技術(shù)的濃縮精華,全能的框架和基礎(chǔ)結(jié)構(gòu)。可就是這樣一個將企業(yè)應(yīng)用的開發(fā)簡化到了前所未有之程度的技術(shù),卻成為許多人口誅筆伐的對象。復(fù)雜、難以使用、性能低下、繁瑣等等,從1998年EJB誕生之日起,各種各樣的惡名就伴隨左右,直到八年后的今天,當(dāng)EJB迎來它的第三次大變臉時(shí),質(zhì)疑之聲依然不絕于耳。EJB真的那么糟糕嗎?

      2. EJB是企業(yè)應(yīng)用的先驅(qū)

      筆者接觸第一個企業(yè)應(yīng)用,是在1997年。那時(shí)PowerBuilder風(fēng)頭正勁,不過,多數(shù)人使用PowerBuilder,是因?yàn)樗臄?shù)據(jù)窗口。當(dāng)時(shí)筆者在一個項(xiàng)目中遇到一個難題,那就是如何把一臺服務(wù)器上的應(yīng)用一分為二,跑在兩臺服務(wù)器上,以提高性能。這是典型的分布式應(yīng)用,雖然不是一個完整意義上的企業(yè)應(yīng)用,不過,因?yàn)閼?yīng)用中需要用到分布式的概念,多少也算和企業(yè)應(yīng)用沾上邊了。

      PowerBuilder其實(shí)是個非常不錯的開發(fā)工具,在1997年的時(shí)候,已經(jīng)提出了分布式應(yīng)用的概念,并且付諸實(shí)施了。在PowerBuilder中,一個組件可以有一個稱為代理的對象,這個對象可以運(yùn)行在與組件不同的機(jī)器上,其他組件通過代理可以訪問該組件的功能。

      這是一個很初級的分布式應(yīng)用框架,不過,那時(shí)已經(jīng)給了筆者很大的震動。我試著編了一個實(shí)驗(yàn)性質(zhì)的程序,當(dāng)我在一臺機(jī)器上按下一個按鈕時(shí),另外一臺機(jī)器上赫然彈出一個預(yù)期中的對話框,著實(shí)讓我大吃一驚。沒有任何Socket編程,也不需要關(guān)心實(shí)際的應(yīng)用跑在哪臺機(jī)器上,PowerBuilder讓我首次見識了分布式應(yīng)用框架的巨大威力。

      PowerBuilder解決了分布的問題,但安全性和事務(wù)控制,仍然需要程序員自己想辦法。十個程序員可以有十種解決方案,每種都不同,而每種都可能含有未經(jīng)發(fā)現(xiàn)的缺陷。在EJB之前,企業(yè)應(yīng)用的開發(fā)沒有規(guī)范可循,每個公司都有自己的一套方案,盡管每個公司都對自己的方案充滿信心,但其實(shí)這些未經(jīng)大量應(yīng)用考驗(yàn)的方案,都有著這樣那樣的不足或局限。
    J2EE是第一個為業(yè)界所廣為接受的完整的企業(yè)應(yīng)用框架,而EJB在其中扮演重要角色。在J2EE框架的支持下,運(yùn)行在EJB容器中的EJB,完全符合企業(yè)應(yīng)用關(guān)于分布、移植、安全和交易的要求。這對于企業(yè)應(yīng)用的開發(fā)者來說,意義非同尋常。首先,現(xiàn)在大家可以在一個公共的平臺技術(shù)上構(gòu)建自己的企業(yè)應(yīng)用,不必絞盡腦汁“發(fā)明”自己的“輪子”,從而節(jié)省大量無謂的、重復(fù)性的技術(shù)和時(shí)間投入;其次,一個公開的平臺,讓大量的企業(yè)應(yīng)用開發(fā)者有了共同語言,可以相互交流平臺的使用經(jīng)驗(yàn)和教訓(xùn),這樣,隨著平臺之上企業(yè)應(yīng)用的不斷增加,平臺的優(yōu)劣得失一覽無遺,有利于平臺的改進(jìn)和發(fā)展。

      這就是EJB為企業(yè)應(yīng)用作出的貢獻(xiàn)。在EJB之前,多數(shù)人不知企業(yè)應(yīng)用為何物,或者雖然有企業(yè)應(yīng)用的模糊概念,但要編寫一個企業(yè)應(yīng)用,談何容易。不同的操作系統(tǒng)、不同的開發(fā)語言、不同的網(wǎng)絡(luò)環(huán)境、不同的應(yīng)用終端,開發(fā)一個企業(yè)應(yīng)用,程序員面臨著兩難的抉擇:要么限定應(yīng)用的軟硬件平臺,或者犧牲應(yīng)用的安全性、分布性或交易性,開發(fā)一個“偽”企業(yè)應(yīng)用;要么下決心開發(fā)一個真正的企業(yè)應(yīng)用,然后累死自己。

      3. EJB是一種思想

      EJB讓程序員編寫真正意義上的企業(yè)應(yīng)用而不必累死,應(yīng)該說,EJB已經(jīng)是企業(yè)應(yīng)用開發(fā)領(lǐng)域的一大進(jìn)步,讓企業(yè)應(yīng)用和普通應(yīng)用的開發(fā)差距縮短到了前所未有的程度,可是,為什么還有很多人抱怨EJB過于復(fù)雜呢?EJB的復(fù)雜性其實(shí)是個偽命題。所謂復(fù)雜,一定是相對的。如果和普通應(yīng)用相比,EJB當(dāng)然要復(fù)雜很多,因?yàn)槿藗儗τ谄胀☉?yīng)用沒有企業(yè)應(yīng)用那么苛刻的要求。但是,如果將EJB之前和EJB之后的企業(yè)應(yīng)用開發(fā)的難度相比,相信人們就會對EJB贊譽(yù)有加了。舉個不準(zhǔn)確的例子,假如EJB之前,企業(yè)應(yīng)用的難度是普通應(yīng)用的10倍,那么,EJB之后,這個比例縮小到了5倍,批評EJB復(fù)雜者,只看到了還剩下的5倍復(fù)雜度,卻沒有看到EJB所減去的5倍復(fù)雜度。

      關(guān)于EJB過于復(fù)雜的論斷,還來自于與其競爭技術(shù)的比較。例如,Spring就是一個聲稱比EJB更簡單的、輕量級的企業(yè)應(yīng)用框架。Spring確實(shí)簡單,很多人喜歡Spring,也正是因?yàn)镾pring簡單。可是,Spring的支持者們,忽略了一個基本的事實(shí),那就是Spring的功能要比EJB弱,也就是說,Spring是通過放棄某些不常用的功能來達(dá)到簡化目的的。Spring好比一輛沒有安全氣囊的車,盡管依然可以拉客跑運(yùn)輸,但一旦發(fā)生碰撞事故,也許司機(jī)會陪上性命。沒有安全氣囊的Spring,在制造上當(dāng)然要比有安全氣囊的EJB簡單,而且輕便,跑得快,不過,Spring始終不適合投入正式營運(yùn)。這就是為什么不推薦在大型企業(yè)應(yīng)用上采用Spring的原因。沒有完善的事務(wù)處理,不能提供7X24小時(shí)的服務(wù),Spring邁不過關(guān)鍵企業(yè)應(yīng)用的門檻。

      與Spring形影不離的是Java對象持久化的“紅人”Hibernate。Hibernate的矛頭直指EJB的Entity Bean。Entity Bean,尤其是它的持久化技術(shù),是最為程序員所詬病的,成為EJB揮之不去的陰影,并最終促成了Hibernate的輝煌。Hibernate其實(shí)并不精深,在技術(shù)上也沒有太多值得稱道的創(chuàng)新,但它的文檔非常優(yōu)秀。我知道很多程序員就是被Hibernate的文檔所吸引的,他們只學(xué)過一些SQL初步,沒有系統(tǒng)的關(guān)系數(shù)據(jù)庫理論知識,Hibernate關(guān)于數(shù)據(jù)庫表間關(guān)系的論述,深入淺出,十分精彩,讓他們在對關(guān)系數(shù)據(jù)庫的理解上有了迅猛突破的同時(shí),Hibernate輕易的俘虜了他們的心。

      Hibernate的成功,反襯了EJB在持久化方面的失敗,但在我看來,這并不影響EJB的偉大。與其說EJB是一種技術(shù),不如說EJB的是一種思想更恰當(dāng),而不論Hibernate還是Spring,只不過是一種工具,他們只是跟在EJB后面,發(fā)現(xiàn)了EJB的某些不足,然后有針對性地加以改進(jìn),以迎合普通程序員對于“技術(shù)快餐”的需求。

      他們既沒有從形形色色的企業(yè)應(yīng)用中,抽象出隱藏在不同表現(xiàn)后面的本質(zhì)特征,也沒有創(chuàng)造性地用Stateless Session Bean和Stateful Session Bean來描述千變?nèi)f化的現(xiàn)實(shí)世界。工具只是工具,不出兩年就會有新的后起之秀,取而代之,但思想的光輝將長久地照亮技術(shù)的未來。EJB是一種思想,更是一種理想,盡管理想和現(xiàn)實(shí)總是存在差距,但這不能成為我們放棄EJB的理由。一種滿足企業(yè)應(yīng)用分布性、擴(kuò)展性、安全性和交易性要求的、方便使用的框架技術(shù),既是EJB的理想,也是廣大程序員的理想。



    凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
    、轉(zhuǎn)載請注明來處和原文作者。非常感謝。

    posted on 2007-01-12 09:30 草兒 閱讀(230) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 国产高清不卡免费视频| www免费黄色网| 最近的免费中文字幕视频| 亚洲激情在线观看| 成人A片产无码免费视频在线观看| 久久夜色精品国产噜噜噜亚洲AV | 亚洲国产精品一区二区第一页免 | 亚洲欧美日韩中文字幕一区二区三区| 日韩免费人妻AV无码专区蜜桃| 亚洲国产另类久久久精品小说 | 日本高清免费不卡在线| 亚洲色大成网站www| 日本特黄特黄刺激大片免费| 精品国产日韩亚洲一区91| 国产传媒在线观看视频免费观看| 亚洲人成网站18禁止| 免费a级毛片永久免费| 一日本道a高清免费播放| 亚洲精品无码专区在线在线播放| 女同免费毛片在线播放| 亚洲综合激情视频| 国语成本人片免费av无码| 蜜桃传媒一区二区亚洲AV| 亚洲爽爽一区二区三区| 手机看片国产免费永久| 亚洲黄色在线观看视频| 99久久免费精品国产72精品九九 | 成人免费看片又大又黄| 久久精品国产亚洲AV| 国产亚洲精品a在线观看| 久久大香伊焦在人线免费| 亚洲制服丝袜在线播放| 国产一级一片免费播放i| 久久国产一片免费观看| 亚洲精品综合久久中文字幕| 成人免费视频试看120秒| 国产日韩在线视频免费播放| 日韩亚洲Av人人夜夜澡人人爽| 大陆一级毛片免费视频观看| sss在线观看免费高清| 亚洲欧洲日本精品|