close

今天看了份paper "Java 元件式資訊管理平台之研究與設計" (好長的名字 XD)

裡面介紹了 Java Beans & Enterprise Java Bean 的差別


Java Beans:

What:

Java Beans: 可重覆使用跨平台的軟體元件,主要分為有介面 & 無介面兩種,具有一定的規格
(其實說到底 就是一個包裝起來的jar檔...只是有規格規定要怎麼填東西)

構成要素: Events & Properties &  Methods

Events: 動作的發生 or 狀態的改變 (觸發條件)
Properties: 也就是Attribute
Methods: 存取Properties

 

Why:

1.重覆使用: Java的跨平台 (Write Once,Run Anywhere.)

2.自省機制(introspection): 自動取得所有傳入的參數,並找尋所有對應Properties的Methods ( set <---> get )

3.元件模型: 只要按照Java Bean規格開發出的就是一個Java Bean的元件,
                 可以讓其他使用者只要會使用此元件(只管input & output),
                 而不用管裡面的操作行為 (類似BlackBox觀念)

 

How:

標準的Java Beans必須符合以下條件:

1. 為一個 public 類別,並且實作 java.io.Serializable 介面
2. 必須有一個無傳入參數的建構子
3. Properties 均有一對 setter method & getter method


 

EJB(Enterprise Java Beans):

What:

EJB是一種元件架構,
用來開發及配置分散式元件導向的企業應用系統

EJB規格的三種Bean:

1.Session Bean: 代表某種動作,
                               用它來實現企業流程,
                               可以是任何動作或動作串連

2.Entity Bean: 代表資料,可視為資料庫內的資料在記憶體的副本,
                         
3.Message-Driven Bean: 透過接受訊息來判斷所要執行的工作

構成要素:

1.規格: 元件 & 應用伺服器之間的協定
2.介面 : 元件 & 應用伺服器必須使用此統一介面

 

 

Why:

優點:

1.可調整性
2.交易正確性
3.多使用者的安全性

EJB特性:

1.交易機制: ACID四大保證
                        Atomicity(單元性): 所有操作全部一起成功 or 其中一項發生錯誤一起失敗
                        Consistency(一致性): 交易完成後保持系統狀態的一致性
                        Isolation(獨立性):每一個交易與其他交易間都是獨立的
                        Durability(持久性):避免遭受破壞而影響交易情形

2.系統整合: 利用EJB透過JCA(Java Connector Architecture)達到企業內系統整合


3.Web Service:利用元件來提供服務,使外部網路可與系統溝通


4.資源輪調:若是新接收的請求沒有 Enterprise Java Bean 的 Instance,
                       就初始化一個Enterprise Java Bean 的 Instance 給此Client使用,
                       直到Client結束或離開,
                       這Enterprise Java Bean 的 Instance 會先回輪調區等待下一次呼叫,
                       若是超過一定時間限度,
                       此 Instance 就會 Destroy 減少資源的佔用

5.位置通透性: Client端不會知道遠端主機的實體位置,
                             以達到 Load balance or 備援

 

 

How:

一個 Enterprise Java Bean 的組成成份:

Enterprise Bean Class: 實作大部份邏輯,以及實作介面中的方法

Remote Interface: 提供 Client 端呼叫 EJB 的介面,EJB所有企業方法必須在此定義並公開

Home Interface: 取得Enterprise Bean的實例,並定義 建立 & 銷毀 & 找尋 EJBObject 的方法

Local Interface: 如同Remote Interface,只是省去了遠端呼叫,加快了執行速度

Deployment Descriptor:宣告有關 Enterperise Bean的設定 & 參數 & 名稱

EJB-jar-file: 包裝檔案


以上僅作為學術交流之用

有關更詳細的內容可以去參閱此篇論文

arrow
arrow
    全站熱搜

    flyinsky76 發表在 痞客邦 留言(0) 人氣()