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

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

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

    【永恒的瞬間】
    ?Give me hapy ?
    EJB是sun的服務器端組件模型,最大的用處是部署分布式應用程序,類似微軟的.com技術。憑借java跨平臺的優(yōu)勢,用EJB技術部署的分布式系統(tǒng)可以不限于特定的平臺。


    EJB (Enterprise JavaBean)是J2EE的一部分,定義了一個用于開發(fā)基于組件的企業(yè)多重應用程序的標準。其特點包括網絡服務支持和核心開發(fā)工具(SDK)。

    在J2EE里,Enterprise Java Beans(EJB)稱為Java 企業(yè)Bean,是Java的核心代碼,分別是會話Bean(Session Bean),實體Bean(Entity Bean)和消息驅動Bean(MessageDriven Bean)。  

    1.Session Bean用于實現(xiàn)業(yè)務邏輯,它可以是有狀態(tài)的,也可以是無狀態(tài)的。每當客戶端請求時,容器就會選擇一個Session Bean來為客戶端服務。Session Bean可以直接訪問數(shù)據(jù)庫,但更多時候,它會通過Entity Bean實現(xiàn)數(shù)據(jù)訪問。

    2.Entity Bean是域模型對象,用于實現(xiàn)O/R映射,負責將數(shù)據(jù)庫中的表記錄映射為內存中的Entity對象,事實上,創(chuàng)建一個Entity Bean對象相當于新建一條記錄,刪除一個Entity Bean會同時從數(shù)據(jù)庫中刪除對應記錄,修改一個Entity Bean時,容器會自動將Entity Bean的狀態(tài)和數(shù)據(jù)庫同步。

    3.MessageDriven Bean是EJB2.0中引入的新的企業(yè)Bean,它基于JMS消息,只能接收客戶端發(fā)送的JMS消息然后處理。MDB實際上是一個異步的無狀態(tài) Session Bean,客戶端調用MDB后無需等待,立刻返回,MDB將異步處理客戶請求。這適合于需要異步處理請求的場合,比如訂單處理,這樣就能避免客戶端長時間 的等待一個方法調用直到返回結果。

    EJB實際上是SUN的J2EE中的一套規(guī)范,并且規(guī)定了一系列的API用來實現(xiàn)把EJB概念轉換成EJB產品.EJB是BEANS,BEANS是什么概 念,那就是得有一個容納她,讓她可勁造騰的地方,就是得有容器.EJB必須生存在EJB容器中.這個容器可是功能強大之極!她首先要包裝你BEAN, EJB的客戶程序實際上從來就不和你編寫的EJB直接打交道,他們之間是通過HOME/REMOTE接口來發(fā)生關系的.它負責你的BEAN的所有的吃喝拉 薩睡,比如BEAN的持續(xù)化,安全性,事務管理。。。

    一.什么是 EJB?

    一個技術規(guī)范:EJB 從技術上而言不是一種"產品"
    EJB 是一種標準描述了構建應用組件要解決的:
    可擴展 (Scalable)
    分布式 (Distributed)
    事務處理 (Transactional)
    數(shù)據(jù)存儲 (Persistent)
    安全性 (Secure)

    二.Sun 對 EJB 的期望

    提供一個標準的分布的、基于 OO 的組件架構
    屏蔽復雜的系統(tǒng)級功能需求
    Write once, run anywhere
    與非 Java 應用之間的互操作能力
    兼容 CORBA 標準

    三.特征
    • 包含處理企業(yè)數(shù)據(jù)的業(yè)務邏輯;

    • EJB實例由容器在運行時創(chuàng)建及管理;

    • 可在部署時通過編輯環(huán)境項(environment entry)定制EJB的行為;

    • EJB的各種服務設置信息,如事務及安全屬性,從EJB的類文件中分離出來。在部署和運行時,可通過工具對EJB的服務設置信息進行管理;

    • EJB部署到EJB容器后,客戶端才可通過EJB容器對EJB進行間接訪問;

    • EJB可使用任何EJB規(guī)范中指定可以使用的服務;

    • EJB可以不經改動代碼或重新編譯,即可直接裝配到一個新的應用中;

    • 當EJB被部署到不同的容器或服務器時,EJB開發(fā)者定義的客戶視圖(Client View)不會發(fā)生改變。


    四:為什么選擇 EJB?

    EJB 服務器完成"繁雜"的工作:
      應用開發(fā)人員關注于業(yè)務邏輯的實現(xiàn)而不是底層的實現(xiàn)機制(類似于 4GL 語言設計的目標)

    事務處理:
      服務器提供對EJB組件的事務控制服務,多個業(yè)務操作同時成功,或全部失敗,可以通過代碼外的 部署描述來設置組件事務處理級別 ;


    可擴展性:
       EJB 可以根據(jù)您應用的增長而擴展,EJB 服務器往往還提供了負載均衡和
    安全性:
       由 EJB 服務器提供資源的訪問權限控制

    四.EJB 架構

    EJB的客戶端有以下幾種類型:

    • 運行于相同容器或其他容器中的EJB;

    • 一般的Java類,如Java應用程序、applet、servlet;

    • 非Java的客戶環(huán)境,如非Java語言編寫的CORBA客戶。

    EJB組件模型的組成部分

    一般,EJB組件由以下幾個部分組成,即組件服務器 (Server),容器 (Container),類 (Class) ,實例 (Instance)
    接口、Home接口,Remote 接口、Enterprise Bean類和部署描述文件(Message-driven Bean不具有組件接口和Home接口)。下面分別描述這些組成部分

    EJB的組件接口
      客戶端通過EJB的組件接口訪問EJB對象,組件接口中定義了可被客戶端訪問的業(yè)務方法(Message-driven Bean不具有組件接口)。組件接口分為遠程接口和本地接口。

    EJB對象通過遠程或本地接口,提供遠程客戶訪問或本地客戶訪問的支持。

       提供遠程接口的EJB擁有可被遠程客戶訪問或本地客戶訪問的能力。對于提供了遠程接口的對象,客戶可通過標準的Java RMI(Remote Method Invocation)進行遠程對象調用。

      提供本地接口的EJB只可被本地組件通過本地接口進行調用。所謂本地組件,即是運行于相同Java虛擬機中的本地EJB對象。本地調用通過一般的標準Java編程語言接口進行。

    EJB可以同時提供本地接口和遠程接口,但一般只提供二者之一。

    HOME接口
       EJB2.0規(guī)定了通過Home接口來提供客戶端創(chuàng)建、清除和在同種類型的EJB中查找特定EJB對象的方法(Message-driven Bean不包含Home接口)。對于提供遠程接口的EJB,需要提供遠程Home接口;提供本地接口的EJB,需要提供本地Home接口。

       Home接口由EJB開發(fā)人員編寫,遠程Home接口必須擴展(extend)javax.ejb.EJBHome接口;本地Home接口必須擴展(extend)javax.ejb.EJBLocalHome接口。

    EJB客戶端通過標準的JNDI(Java Naming and Directory Interface™)API定位Home接口。

     EJB3.0中,Home接口的功能由依賴注入以及可選的生命周期回調方法實現(xiàn)。EJB組件不再需要提供Home接口

    Enterprise Bean類
    Enterprise Bean類包含了組件的實現(xiàn)細節(jié)。

      Enterprise Bean類由EJB開發(fā)人員編寫,EJB2.0規(guī)范中的Enterprise Bean組件,必須分別聲明實現(xiàn)如下接口,javax.ejb.SessionBean、javax.ejb.EntityBean和javax.ejb.MessageDrivenBean。符合EJB3.0規(guī)范的Enterprise Bean組件則不須實現(xiàn)以上接口,而使用@Stateful、@Stateless、@MessageDriven注解標記EJB類。

    部署描述文件
       部署描述文件是用于包含Enterprise Bean的運行時屬性(安全性,事務性等等)信息的文件,與以上部分一起形成完整的EJB組件,通常部署描述文件使用圖形化的部署工具進行處理。在EJB3.0規(guī)范中,EJB部署描述文件并不是必須的,可以在代碼中使用注解來為EJB類附加部署信息。但部署描述文件可以令管理人員在部署時更為靈活。EJB3.0規(guī)范規(guī)定,當部署描述文件的信息與程序代碼中的注解信息出現(xiàn)沖突時,以部署描述文件為準。這樣管理人員就可以通過修改部署描述文件來改變部署信息,而不須重新編譯應用程序。


    五. 簡化的編程模型

    關注于業(yè)務邏輯實現(xiàn):EJB 負責生命周期 (lifecycle), 數(shù)據(jù)存儲 (persistence), 事務處理語義 (transactional semantic), 安全(security), ...
    通用的編程模型:各種服務的高層 API
    Java 是其編程語言


    EJB( 業(yè)務邏輯代碼 ) 表示了與特定商業(yè)領域(例如銀行、零售等行業(yè))相適應的邏輯。它由
    運行在業(yè)務邏輯層的 enterprise bean 處理。一個 enterprise bean 可以從客戶端接受數(shù)據(jù),對
    它進行處理,并將其發(fā)送到企業(yè)信息系統(tǒng)層以作存儲;同時它也可以從存儲器獲取數(shù)據(jù),
    處理后將其發(fā)送到客戶端應用程序

    有三種類型的 enterprise beans:session beans、entity beans 和 message-driven beans。
    Session bean 描述了與客戶端的一個短暫的會話。當客戶端的執(zhí)行完成后,session bean 和
    它的數(shù)據(jù)都將消失;與之相對應的是一個 entity bean 描述了存儲在數(shù)據(jù)庫表中的一行持久
    穩(wěn)固的數(shù)據(jù),如果客戶端終止或者服務結束,底層的服務會負責 entity bean 數(shù)據(jù)的存儲。
    Message-driven bean 結合了 session bean 和 Java 信息服務(JMS)信息監(jiān)聽者的功能,它允
    許一個商業(yè)組件異步地接受 JMS 消息。

    六:EJB組件模型的靈活性

    EJB組件模型的靈活性表現(xiàn)在:
    EJB可作為表示無狀態(tài)服務的對象;
    EJB可作為表示無狀態(tài)服務的對象,可通過向指定的消息隊列或主題發(fā)送JMS消息,以實現(xiàn)對此對象的異步調用;
    EJB可作為表示與特定客戶的會話對象。此類對象在客戶進行跨越方法的調用時,自動維持會話狀態(tài);
    EJB可作為表示業(yè)務對象的實體對象,在多個客戶間共享;
    EJB可作為一個細粒度的持久對象,包含在一個粗粒度業(yè)務對象的持久狀態(tài)中。
    通常,被遠程訪問的組件往往是粗粒度的業(yè)務對象,如訂單、雇員紀錄;細粒度的業(yè)務對象往往不會采用可遠程訪問的EJB組件模型,如訂單中的采購項、雇員紀錄中的地址,而是采用可本地訪問的EJB組件模型或是作為EJB的附屬類出現(xiàn)。

    七:何時使用EJB組件:

    下面是在使用EJB組件模型構建企業(yè)應用時,一些判斷EJB組件模型是否適用的標準。
    EJB組件是構建分布式企業(yè)應用的組件模型技術;
    EJB組件規(guī)范是針對分布式企業(yè)應用制定的,是基于分布式對象技術的Java組件;EJB組件不涉及表示層的內容,因此,必須與其他表示層技術一起使用;應用服務器提供了可以解決安全性、資源共享、持續(xù)運行、并行處理、事務完整性等復雜問題的服務,從而簡化了商業(yè)應用系統(tǒng)。
    應用客戶端類型的考慮;
    一般,企業(yè)應用開發(fā)都會有多種類型的客戶端的需求,訪問相同的數(shù)據(jù)或業(yè)務邏輯。如使用Web客戶提供對應用的基于Internet的訪問,使用應用客戶端提應用基于Intranet的訪問。EJB組件模型將業(yè)務邏輯與數(shù)據(jù)封裝到EJB組件中,提供對多種客戶端的支持。

    應用數(shù)據(jù)與業(yè)務邏輯的并發(fā)訪問控制的考慮;
    企業(yè)應用通常需要提供數(shù)據(jù)或業(yè)務邏輯的并發(fā)訪問能力,以此保證數(shù)據(jù)的完整性,由于EJB 組件控制對后臺數(shù)據(jù)的訪問,并管理當前事務和數(shù)據(jù)庫的內部鎖定。節(jié)省了編寫數(shù)據(jù)庫控制邏輯的工作量,同時也保證了數(shù)據(jù)的一致性與正確性,從而降低了總編程量。
    全局事務控制的考慮;
    企業(yè)應用通常需要對不同的資源進行事務性的操作,如某個操作需要對數(shù)據(jù)庫進行訪問,同時可能需要通過JMS消息服務發(fā)送消息,或者,需要訪問兩個位于不同物理位置的異種數(shù)據(jù)庫,這些操作必須在相同的事務環(huán)境中完成。
    基于訪問控制的考慮;
    企業(yè)應用中往往需要對某些資源進行訪問控制,如需要針對不同用戶對組件方法調用設置訪問控制策略,對訪問特定Web資源的用戶設置訪問控制策略等.

    posted on 2007-10-22 09:25 ???MengChuChen 閱讀(1099) 評論(1)  編輯  收藏 所屬分類: EJB3.0

    FeedBack:
    # re: EJB 簡介
    2012-06-08 09:12 | fff
    垃圾  回復  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: A在线观看免费网站大全| A片在线免费观看| 免费看无码自慰一区二区| 亚洲精品国产成人| 91短视频免费在线观看| 亚洲邪恶天堂影院在线观看| 免费日本一区二区| 亚洲va在线va天堂va不卡下载| 久久福利青草精品资源站免费| 久久精品国产精品亚洲精品| 两个人看的www免费视频| 国产日产亚洲系列| 97无码人妻福利免费公开在线视频 | 亚洲日本在线免费观看| 91精品国产免费久久国语麻豆| 亚洲欧洲日韩国产综合在线二区| 久操视频免费观看| 亚洲美女人黄网成人女| 欧美在线看片A免费观看| 亚洲日韩精品无码专区| 免费v片在线观看无遮挡| 一级毛片高清免费播放| 亚洲AV无码乱码在线观看富二代| 日韩免费人妻AV无码专区蜜桃 | 亚洲AV无码久久精品成人| 无码国产精品一区二区免费式芒果 | 男人的天堂亚洲一区二区三区 | 2022年亚洲午夜一区二区福利| 很黄很黄的网站免费的| 亚洲人成网站在线在线观看| 亚洲国产成人精品女人久久久 | 国产精品免费视频观看拍拍| 久久亚洲国产欧洲精品一| 亚洲精品视频免费在线观看| 亚洲精品中文字幕| 中文字幕亚洲一区二区三区| 8x网站免费入口在线观看| 亚洲av无码专区在线电影天堂| 亚洲中文字幕无码爆乳AV| 国产91免费视频| 人碰人碰人成人免费视频|