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

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

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

    隨筆 - 251  文章 - 504  trackbacks - 0
    <2006年11月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    本博客系個(gè)人收集材料及學(xué)習(xí)記錄之用,各類(lèi)“大俠”勿擾!

    留言簿(14)

    隨筆分類(lèi)

    收藏夾

    My Favorite Web Sites

    名Bloger

    非著名Bloger

    搜索

    •  

    積分與排名

    • 積分 - 202381
    • 排名 - 285

    最新評(píng)論

    ???? 今年EJB3.0規(guī)范已經(jīng)正式發(fā)布了。Sun非常自信地向業(yè)界宣布,這個(gè)EJB版本將有效地減輕開(kāi)發(fā)難度,通過(guò)使用EJB3.0,可以大大降低開(kāi)發(fā)成本。但也有人批評(píng)說(shuō),Sun在EJB中加入了很多Java?EE?5的新特性,如EJB3.0將使用注釋(annotations)來(lái)進(jìn)行配置。這將增加開(kāi)發(fā)人員的學(xué)習(xí)成本,雖然從表面上是簡(jiǎn)單了,但實(shí)際上并沒(méi)有明顯降低開(kāi)發(fā)難度。還有人批評(píng)Sun的EJB3.0的持久層架構(gòu)抄襲了Hibernate。EJB3.0真的象他們所說(shuō)的那樣是Hibernate的翻版嗎?EJB3.0是否能依靠它的新架構(gòu)和Java?EE?5的支持?jǐn)[脫人們對(duì)EJB1.x和EJB2.x的恐懼呢?EJB3.0在未來(lái)是否能成為對(duì)象持久化的代名詞呢??

    EJB:剛剛誕生就被打入冷宮?

    ?????在Java發(fā)展史上,曾有過(guò)很多重要的時(shí)刻。如在上世紀(jì)末,也就是在1998年,JSP和EJB的誕生就是一個(gè)不同尋常的時(shí)刻。JSP在誕生后,就立刻引起了很多開(kāi)發(fā)人員的注意,并很快成為了Web開(kāi)發(fā)的主流。而幾乎和它同時(shí)誕生的EJB1.0卻一直倍受冷落。在EJB1.0誕生后的幾年,Sun又推出了EJB2.0規(guī)范,不過(guò)它的命運(yùn)也可EJB1.0差不多,還是沒(méi)有翻身。這其中最大的原因,我想是因?yàn)镾un沒(méi)有兌現(xiàn)它承諾而造成的。?

    ????Sun在發(fā)布J2EE相關(guān)規(guī)范和產(chǎn)品時(shí)承諾,J2EE將會(huì)使開(kāi)發(fā)變得更容易,從而會(huì)顯著降低開(kāi)發(fā)成本。但在J2EE發(fā)布時(shí),滿(mǎn)心歡喜的人們卻發(fā)現(xiàn),被認(rèn)為是J2EE中最有價(jià)值的組成部分:EJB卻是如此的復(fù)雜。在編寫(xiě)EJB時(shí)需要進(jìn)行大量的配置,而且還需要實(shí)現(xiàn)一大堆的接口。這不但沒(méi)有降低開(kāi)發(fā)難度,反而成為很多開(kāi)發(fā)人員的惡夢(mèng)。?
    在EJB2.x剛出來(lái)的幾年,國(guó)內(nèi)有很多程序員盲目跟風(fēng),但當(dāng)時(shí),他們中的大多數(shù)都只是停留在EJB的“名詞”階段。而當(dāng)他們開(kāi)始熟悉并使用EJB時(shí),卻發(fā)現(xiàn)并不是象他們想得那樣美妙。?

    ????不知道Sun的EJB設(shè)計(jì)人員是如何考慮的。本來(lái)通過(guò)很簡(jiǎn)單的方法就可以從數(shù)據(jù)庫(kù)中得到數(shù)據(jù),而EJB卻要專(zhuān)門(mén)為其修一條一級(jí)的高輸公路,將本來(lái)就不多的數(shù)據(jù)運(yùn)了出來(lái),這簡(jiǎn)直就是多此一舉。?

    ????在取數(shù)據(jù)時(shí)經(jīng)過(guò)這樣的周折,它的效率也大受影響。也許Sun當(dāng)初根本就沒(méi)考慮過(guò)它的效率。?

    ????實(shí)體Bean在EJB2.0后就成為EJB最重要的一部分,但是它的概念重來(lái)就沒(méi)清楚過(guò)。如Sun建議將業(yè)務(wù)邏輯代碼放到會(huì)話Bean中,也就是說(shuō),前端應(yīng)該直接訪問(wèn)會(huì)話Bean。而作為對(duì)數(shù)據(jù)直接封裝的實(shí)體Bean卻提供了遠(yuǎn)程接口,這也就意味著前端也可以直接訪問(wèn)實(shí)體Bean。這就與多程序應(yīng)用結(jié)構(gòu)不太符合。還有就是實(shí)體Bean既然是對(duì)數(shù)據(jù)的原始封裝,那為什么要提供事務(wù)、安全這些業(yè)務(wù)邏輯層的功能。更不可思議的是實(shí)體Bean既然提供了本地接口,那又為什么不通過(guò)本地接口,而要通過(guò)JNDI查找呢?這些概念上的混淆使得EJB更加難以使用。?

    ????近幾年非常流行的SOA(Service-Oriented?Architecture)模式為企業(yè)級(jí)應(yīng)用提供了更好的解決方案。然而SOA中的核心:服務(wù),卻和這個(gè)自稱(chēng)是企業(yè)級(jí)的Java?Bean的EJB沒(méi)有什么太大的關(guān)系。眾所周知,SOA里的服務(wù)一般是指Web?Services。而實(shí)現(xiàn)Web?Services的方式很多,如果使用Java實(shí)現(xiàn),一般是使用普通的Java?Bean來(lái)包裝成Web?Services。最多也就是使用個(gè)無(wú)狀態(tài)的Session?Bean。而EJB的其它功能,尤其是強(qiáng)大的實(shí)體Bean,卻很少使用。這不能不說(shuō),EJB已經(jīng)越來(lái)越名不副實(shí)

    異軍突起:欲取EJB而代之?

    ????雖然EJB過(guò)于復(fù)雜,使用它的開(kāi)發(fā)人員比較少,這并不等于人們對(duì)企業(yè)級(jí)的服務(wù)的需求小。相反,隨著企業(yè)信息化程度越來(lái)越高,對(duì)方便易用的企業(yè)級(jí)服務(wù)的需要與日俱增。?
    在EJB規(guī)范中,關(guān)于實(shí)體Bean的描述是最多的。看上去實(shí)體Bean的功能十分強(qiáng)大,但實(shí)際上并非如此。實(shí)體Bean的主要功能是對(duì)數(shù)據(jù)進(jìn)行包裝,從而使數(shù)據(jù)持久化。但這個(gè)EJB中最重要的功能也是最虛弱的。本來(lái)很簡(jiǎn)單的功能Sun卻定義了一大堆接口,而且不能通過(guò)實(shí)體Bean進(jìn)行SQL級(jí)的查詢(xún),并且實(shí)體Bean必須得依托EJB容器才能使用。這些限制大大降低了實(shí)體Bean的使用價(jià)值。?

    ????雖然實(shí)體Bean的難以使用讓人望而卻步,但對(duì)數(shù)據(jù)持久化的需求沒(méi)有一天停止過(guò)。自從在進(jìn)入二十一世紀(jì)以來(lái),有許多類(lèi)EJB類(lèi)似但更容易使用的數(shù)據(jù)持久化組件開(kāi)始成為開(kāi)發(fā)人員的新寵。這其中比較流行的有Hibernate、JDO和TopLink。?

    ????在這里Hibernate當(dāng)仁不讓地成為了最耀眼的明星。Hibernate不能不說(shuō)是一個(gè)奇跡,它在不到3年的時(shí)間里,從一個(gè)不起眼的開(kāi)源軟件成為了今天業(yè)界矚目的主流O/R映射框架,它的創(chuàng)始人Gavin?King也一夜成名。而EJB在它誕生后的幾年時(shí)間里,卻罵聲不斷,它們之間形成了強(qiáng)烈的反差。當(dāng)然,從技術(shù)角度來(lái)說(shuō),Hibernate的技術(shù)并不是最先進(jìn)的,而Gavin?King也不是什么絕頂高手。Hibernate之所以能發(fā)展得如此快,主要是因?yàn)镠ibernate的開(kāi)發(fā)難度比較EJB小,而且Hibernate的使用并不依賴(lài)于具體的容器,可以將Hibernate使用在B/S或C/S的任何Java環(huán)境上。?

    ????而今年夏天投票通過(guò)的JDO2.0標(biāo)準(zhǔn)從某種程度而言,并不遜色于Hibernate當(dāng)前的版本,有些功能甚至比Hibernate還要好,例如?JDO支持對(duì)類(lèi)屬性的惰性裝載,而Hibernate要到3才支持,當(dāng)前Hibernate僅僅支持類(lèi)的惰性裝載。?

    ????TopLink是比較古老的O/R映射框架,自從它被Oracle收購(gòu)后,對(duì)Oracle數(shù)據(jù)庫(kù)有了更好的支持。但這種框架并不是開(kāi)源的,而且售價(jià)不菲。?

    ????這幾種O/R映射框架大有取代EJB之勢(shì),而Sun由于已經(jīng)有了EJB,也不可能再做一個(gè)和這些框架類(lèi)似的東本和它們競(jìng)爭(zhēng)。因此,Sun要想扭轉(zhuǎn)EJB的頹勢(shì),必須要從EJB下手。而EJB1.x和EJB2.x都以失敗而告終,那么EJB的下一個(gè)版本EJB3.0又會(huì)如何呢,Hibernate的創(chuàng)始人Gavin?King的加入會(huì)使EJB3.0成為繼Hibernate的下一個(gè)新寵嗎?

    Sun最后的反擊:EJB3.0?

    ????EJB經(jīng)過(guò)了長(zhǎng)達(dá)8年的臥薪嘗膽,被Sun稱(chēng)為最簡(jiǎn)單的EJB3.0框架終于在今天正式推出了。也許是Sun意識(shí)到了自己的失誤,在自定EJB規(guī)范時(shí)將以前繁瑣的部分基本都已經(jīng)去掉了。EJB3.0看起來(lái)就好象新的框架一樣(這一點(diǎn)從它的規(guī)范就可以看出,EJB3.0的規(guī)范文件比EJB2.0規(guī)范文件的尺寸小得多)。?

    ?????EJB3.0和Java?EE?5幾乎是同時(shí)發(fā)布的,因此,EJB3.0中使用了很多Java?EE?5的新特性。如EJB3.0在定義Bean時(shí)(包括會(huì)話Bean和實(shí)體Bean),不再使用各種各樣的接口,而是使用Java?EE?5提供的注釋?zhuān)╝nnotations)進(jìn)行定義,無(wú)論什么樣的企業(yè)級(jí)Bean只是一個(gè)加了相應(yīng)注釋的簡(jiǎn)單的Java對(duì)象(POJO)。不僅如此,EJB3.0中已經(jīng)全面使用注釋取代了接口。如定義
    Bean的業(yè)務(wù)接口、O/R映射信息、資源引用信息等都使用注釋進(jìn)行描述。?

    ????由于Hibernate的創(chuàng)始人Gavin?King加入了EJB小組,負(fù)責(zé)制定EJB的O/R映射規(guī)范。因此,EJB3.0的O/R映射也十分類(lèi)似Hibernate。這使得熟悉Hibernate的開(kāi)發(fā)人員學(xué)習(xí)EJB3.0非常容易。這說(shuō)明EJB3.0正在和Hibernate走向溶合。?

    ????同時(shí)Hibernate也提供了兩套API,一套是Hibernate本身的API,另外一套是和EJB3.0兼容的API。也就是說(shuō),只要使用Hibernate第二套API,就很容易將其使用Hibernate的程序移植到EJB3.0上。?

    ????雖然EJB3.0剛剛發(fā)布,但已經(jīng)有很多EJB服務(wù)器支持EJB3.0了,這其中跟得最緊的是JBoss,其次WebLogic、WebSphere等也隨之跟進(jìn)。因此,各大廠商還是對(duì)EJB3.0非常看好的。?

    ????自從那些如Struts、Hibernate、Spring等輕量級(jí)的框架開(kāi)始在市面上出現(xiàn)并流行時(shí),很多開(kāi)發(fā)人員開(kāi)始跟隨著這些開(kāi)源大師的指揮棒的方向前進(jìn)。EJB已經(jīng)逐漸從人們的視線中淡出。但隨著EJB3.0的問(wèn)世,又將人們的視線拉了回來(lái)。畢竟,EJB出自Sun。如果它也能向Hibernate、JDO一樣容易使用,那它是非常有前途的,至少我是這么認(rèn)為的。現(xiàn)在EJB3.0已經(jīng)和Hibernate在O/R映射上非常相似了,在未來(lái),EJB3.0也許將成為輕量級(jí)框架的一員,讓我們拭目以待吧!
    posted on 2006-11-24 08:37 matthew 閱讀(332) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 雜錄

    FeedBack:
    # re: EJB3.0:是脫胎換骨,還是重蹈覆轍?-轉(zhuǎn)帖 2006-11-24 14:07 放水老倌
    期待中ing  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲黄页网在线观看| 边摸边脱吃奶边高潮视频免费| 综合在线免费视频| 久久亚洲AV成人无码国产最大| 久久久久亚洲AV成人网| 3344免费播放观看视频| 国产亚洲午夜精品| 久久99国产亚洲精品观看| 噼里啪啦免费观看高清动漫4| 四虎影视永久在线精品免费| 久久精品九九亚洲精品| 男人的天堂亚洲一区二区三区 | 曰曰鲁夜夜免费播放视频| 羞羞视频免费网站含羞草| 久久精品国产亚洲av麻豆色欲 | 99国产精品永久免费视频| 四虎精品成人免费视频| 亚洲午夜在线播放| 亚洲精品国产精品乱码在线观看 | 在线观看成人免费视频不卡| 一进一出60分钟免费视频| 亚洲国产精品成人久久久| 亚洲三区在线观看无套内射| 性色av免费观看| 无码av免费网站| 一级中文字幕乱码免费| 久久久久久亚洲精品影院| 久久精品国产亚洲AV麻豆王友容| 又大又粗又爽a级毛片免费看| 亚洲三级高清免费| 可以免费观看的毛片| 一进一出60分钟免费视频| 久久精品国产亚洲AV| 亚洲日本人成中文字幕| 久久亚洲精精品中文字幕| 亚洲无码在线播放| 亚洲国产成人久久精品99| 国产成人免费a在线资源| 最新中文字幕免费视频| 日本在线高清免费爱做网站| 99re6热视频精品免费观看|