Enterprise JavaBean 簡介


(這次科普記憶型閱讀博客)

  在經歷一段時間的學習之后也對JAVA EE的體系有了一個初步的認識,而如題為什么要來搞這個叫做EJB的玩意呢

  在頂層我們使用的框架是面向服務的,而在其之下的開發方法面向組件,最基層的便是面向對象面向過程的JAVA編程

  面向過程和面向對象是兩種具體程序設計時的編程范式,他們沒有本質區別,只是使用不同的方法和角度去觀察一個世界。

  而面向服務是編寫大型系統時才需要考慮的一種軟件架構設計思想。

  面向組件(Component-Based Development)是一種軟件工程的實踐方法。

搞清他們的分層關系之后我們就可以切入正題了:

什么是EJB?

   JAVA EE標准中,為了解決企業大型軟件的面向服務開發難題(包括但不限於服務接口定義、服務間通信、事務控制、內容持久化等)

  開發了一套用於web環境專用的javaBean,稱為Enterprise JavaBean(EJB)。

 

  EJB是一組構建企業級web應用的專用javaBean。

  或者說,EJB是一套重量級的企業應用開發框架,使用者須遵循其規則開發具體業務邏輯。

  EJB的目標是保證企業軟件開發的可伸縮性(保證企業系統平滑發展,而不是發展到一種規模重新更換一套軟件系統)。

  EJB的源碼內容對用戶是透明的(即用戶不需要知道其源碼內容但用戶可以根據接口直接調用)。

 

EJB架構

  EJB架構描述了5類內容:

  1. 對象(Object),

  2.類(Class),

  3.組件(component): 組件也是抽象的概念,符合某種規范的類的組合構成組件。J2EE來說,有什么servlet,jsp, javabean,EJB都是組件。

  4.容器(Container),容器是特殊的組件,可以包含其他組件和容器。

  5.框架(framework),就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統。

那拿老圖說事的話:

EJB組件:

  EJB既然是一套javaBean,其中按功能分為三類構件:

  1.Session bean,會話構件

  2.Entity bean,實體構件

  3.MessageDrivenBean,消息構件

  每類組件包括接口文件,類文件和配置文件等內容。

  (1)Session bean會話構件 會話構件的功能是封裝業務邏輯,完成某個具體的操作。

           根據其生命周期不同,分為無狀態和有狀態兩種:

                Stateful Session Bean: 有狀態會話 Bean,可以存儲用戶相關信息,在服務器端,一個 Bean 對象只為一個客戶服務

                Stateless Session Bean: 無狀態會話 Bean,不存儲用戶相關信息,一般說來,在服務器端,一個 Bean 對象可能為很多客戶服務

  (2)Entity bean實體構件 實體bean的功能是封裝數據庫中的數據。

           具體地說,實體bean可以生成數據的持久化對象,一個實體bean對象對應數據庫表中的一行,把表中的屬性映射為對象屬性。

  (3) Message Driven Bean消息驅動構件

           消息驅動bean,是一種異步無狀態組件,結合了 session bean 和 Java信息服務(JMS)信息監聽者的功能,它允許一個商業組件異步地接受 JMS消息。

EJB框架的設計初衷

  EJB為我們提供了很多在企業開發中需要使用到的服務,如事務管理/安全/持久化/分布式等,因為這些服務由容器提供,無需我們自行開發,這樣大大減少了我們的開發工作量。另外,EJB提供了強制式分層解耦設計方法。 EJB比較適合用於大型企業的面向服務的軟件開發。因為大型企業一般都會存在多個信息系統,而這些信息系統又相互關聯。為了避免業務功能重復開發,實現最大程度的重用,有必要把業務層獨立出來,讓多個信息系統共享一個業務中心,這樣應用就需要具備分布式能力。

  (所以說在面向作業的時候這個就是宰牛刀了=-=)

 

EJB框架的特點

  非EJB的應用模式的MVC應用,其顯示層、控制層和業務層, 三者不能分開。

  采用EJB的應用模式的MVC應用,業務層被獨立出來。也就是說,顯示層和控制層可以部署在一台機器上,業務層部署在另一台機器上。

              

EJB比較適合用於大型企業,因為大型企業一般都會存在多個信息系統,而這些信息系統又相互關聯。

如下圖所示,某公司的兩個系統:網上商城系統和手機商場系統。若采用EJB模式,兩個系統可以共用分離出來的業務層。

當公司的業務發生變更時,只需修改分離出來的業務層即可。

EJB組件運作步驟圖

EJB如何實現不同web服務器之間的互相通信

   EJB使用RMI(遠程方法調用)實現不同Java虛擬機之間的對象調用。

   使用webService\CORBA等技術實現java虛擬機與非java程序服務器(如C ,python等)的數據交換問題。

    實現不同web服務器之間的相互通信,是實現面向服務架構的基礎環節。

(暫時就這樣子了。課程需要的閱讀=-=開眼開眼啦。至於EJB的下載配置以及創建EJB項目寫到其他里面了啊=)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM