<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跨平臺的優勢,用EJB技術部署的分布式系統可以不限于特定的平臺。


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

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

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

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

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

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

    一.什么是 EJB?

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

    二.Sun 對 EJB 的期望

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

    三.特征
    • 包含處理企業數據的業務邏輯;

    • EJB實例由容器在運行時創建及管理;

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

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

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

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

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

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


    四:為什么選擇 EJB?

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

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


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

    四.EJB 架構

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

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

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

    • 非Java的客戶環境,如非Java語言編寫的CORBA客戶。

    EJB組件模型的組成部分

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

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

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

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

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

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

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

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

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

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

    Enterprise Bean類
    Enterprise Bean類包含了組件的實現細節。

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

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


    五. 簡化的編程模型

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


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

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

    六:EJB組件模型的靈活性

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

    七:何時使用EJB組件:

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

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

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

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

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


    網站導航:
     
    主站蜘蛛池模板: 免费一级毛片在线观看| 久久夜色精品国产亚洲AV动态图| 1区1区3区4区产品亚洲| 在线观看免费无码专区| 亚洲成A人片在线观看无码不卡| 一个人看的www免费高清| 国产亚洲精品精品国产亚洲综合| 一级毛片免费播放男男| 亚洲精品国产va在线观看蜜芽| 无人视频免费观看免费视频| 亚洲国产精品一区二区第一页免 | 亚洲第一网站免费视频| 8888四色奇米在线观看免费看| 久久久亚洲欧洲日产国码aⅴ| 又大又硬又爽又粗又快的视频免费| 久久亚洲国产精品成人AV秋霞| 国内精自视频品线六区免费| 亚洲色大成WWW亚洲女子| 日韩视频免费一区二区三区| 永久免费无码日韩视频| 亚洲精品国偷自产在线| 91精品免费高清在线| 亚洲色偷精品一区二区三区| 亚洲男人av香蕉爽爽爽爽| 你是我的城池营垒免费看 | 亚洲冬月枫中文字幕在线看| 成年女人喷潮毛片免费播放| 人人爽人人爽人人片A免费| 午夜影视日本亚洲欧洲精品一区| 狼群影院在线观看免费观看直播 | 亚洲国产精品成人综合久久久 | 亚洲色大成网站WWW久久九九| 无码精品一区二区三区免费视频| 激情综合亚洲色婷婷五月APP| 又黄又爽一线毛片免费观看 | 亚洲精品久久无码av片俺去也 | 亚洲精品动漫人成3d在线| 67pao强力打造高清免费| 日韩亚洲人成网站| 久久久青草青青亚洲国产免观 | 亚洲综合伊人久久综合|