[F09_Distsys] EJB 簡介 #1

 

EJB簡介

Enterprise JavaBeans(EJB)是一個程式元件伺服器架構

J2EE裡跟Servlet/JSP堪稱最具代表性的兩個

在分散式系統中,分類在Middleware

提供一個比較高階的環境,來簡化分散式系統應用

 

跟用網頁必須架Web Server一樣,EJB有對應的規格書(JSR 220 ,EJB 3.0) 跟各家專用的Application Server(Jboss,WebSphere,WebLogic, Glassfish...etc)

 

根據EJB規格書,Application Server必須提供:

Persistence via the Java Persistence API (統一的資料儲存方式,不管用File或是各式的SQL)

Transaction processing (交易處理)

Concurrency control (平行處理控制)

Event using Java Message Service(事件傳遞)

Naming and directory services(JNDI,命名空間,註冊及尋找Service的方式)

Security(安全性)

Deployment(配置)

Remote procedure calls using RMI-IIOP (其實就是一般Java RMI再變化一下)

Exposing business methods as Web Services (轉換成Web Service)

 

講白話點..分散式系統技術上的問題,Application Server都應該要能解決,Programmer只要寫商業邏輯就好

 

Bean Types豆子分類

也就是EJB container擁有的服務類型,共分下面四種

 

Stateless Session Bean 無狀的分散式物件, 通常用在唯讀資料上, 例如取得Server上的時間

Stateful Session Bean 的分散式物件, 通常用在如購物車等需要紀使用者資料情況下

Message Driven Bean 非同處理的分散式物件,

Entity Bean 儲存資料用的物件,通常代表資料庫內一筆紀錄, 基本上已經變成O/R mapping的同義字

 

EJB超簡略開發流程

0. 先將Application Server架好(各家Server不盡相同,棘手)

1. 寫出Server端的Bean, 分別會有interfaceimplement兩個(EJB2.0以前會多一個Homeinterface)

2. 將原始compile好並配置到Server

3. Client端利用JNDI或其他方式搜尋到Server上的Bean

4. interface交給Client,Client才知道Server提供何種樣子的服務

5. 3,4 Client知道位置及用法後,當然就能寫出自己需要的程式

6. 完成後在Client自己的環境執行並測試

 

參考

http://en.wikipedia.org/wiki/Enterprise_JavaBean

http://java.sun.com/javaee/5/docs/tutorial/doc/bnblr.html

 

===========

寫的好像太簡略了...orz