【正文】
多層體系架構(gòu) Java 2 PlatForm Enterprise Edition 信息部門主管關(guān)心的問題 ? 信息孤島問題。 ? 開始系統(tǒng)實(shí)施,要跑遍所有的業(yè)務(wù)點(diǎn)安裝。 ? 動(dòng)態(tài)連接庫(kù) A) 通過命名的方式供其他過程調(diào)用。 if( () ) { ( Result Has Error)。 ? Ejb 對(duì)象的訪問權(quán)限控制。 ? 更加透明的資源管理 ? 編碼人員根本不需要關(guān)心資源 (數(shù)據(jù)庫(kù)連接 )的管理情況 ? 提供更加透明簡(jiǎn)便的數(shù)據(jù)操作接口。 無(wú)狀態(tài) Session Bean ? 一種接口規(guī)范 ? 主要用于業(yè)務(wù)邏輯的處理 ? 模版 public class CountBean implements SessionBean { public void ejbCreate() throws CreateException {} // 創(chuàng)建 public void ejbRemove() {} // 刪除 public void ejbPassivate() {} // 從內(nèi)存交換到硬盤 public void ejbActivate() {} // 從硬盤交換到內(nèi)存 public void setSessionContext(SessionContext ctx) {}// Ejb 包容器初始化 public int businessDeal( BusinessObject I_Object) { 業(yè)務(wù)處理邏輯 } } 實(shí)體 Bean ? 描述的數(shù)據(jù)集合 ? 提供一些方法,操作數(shù)據(jù) ? 永久性 ? 基類模板 public void ejbPostCreate(UwkDto uwkdto) throws CreateException {} public void ejbRemove() throws RemoveException {} public void ejbLoad() {} public void ejbStore() {} public void ejbActivate() {} public void ejbPassivate() {} public void unsetEntityContext() {} public void setEntityContext(EntityContext entityContext) {} J2EE 層次結(jié)構(gòu) 界面表現(xiàn)層 界面邏輯層 業(yè)務(wù)邏輯層 業(yè)務(wù)邏輯子層 1 業(yè)務(wù)邏輯子層 2 業(yè)務(wù)邏輯子層 N 數(shù)據(jù)操作層 數(shù)據(jù)層 瀏覽器工具: Mi cr oS oft E xplor er , N et sca pt S er v er l et J S P E J B S ess i on( 會(huì)話 ) B ean 1 E J B S ess i on( 會(huì)話 ) B ean 2 E J B S ess i on( 會(huì)話 ) B ean N E J B E nt i t y ( 實(shí)體 ) B ean 數(shù)據(jù)庫(kù)服務(wù)器 : O r acl e 、 DB2 、 S y base 、 S Q L S er v er J2EE 帶來的優(yōu)勢(shì) J2EE 帶來的優(yōu)勢(shì) ? 面向 Web 的應(yīng)用開發(fā) ? 界面邏輯與業(yè)務(wù)邏輯都存放在系統(tǒng)主機(jī),無(wú)須安裝在各個(gè)客戶端 ? 信息孤島問題的解決 ? EJB 實(shí)現(xiàn)了遠(yuǎn)程異地對(duì)象透明的訪問; ? 信息共享時(shí),本地不需要開發(fā)任何業(yè)務(wù)邏輯代碼,其業(yè)務(wù)邏輯代碼部署在對(duì)應(yīng)外部系統(tǒng)的應(yīng)用服務(wù)器上。 return 。 C) 動(dòng)態(tài)連接庫(kù)調(diào)用接口繁雜;仍然需要調(diào)用者重新確定系統(tǒng)地址后,再執(zhí)行。 ? 部署不不方便 A) 系統(tǒng)實(shí)施問題 B)界面要求更新問題 C) 業(yè)務(wù)邏輯更新問題 D) 系統(tǒng)負(fù)載問題 E) 系統(tǒng)健壯性問題 ? 產(chǎn)品可復(fù)用能力帶來的投資保護(hù)問題 A) 面向過程代碼級(jí)的復(fù)用 B) 更換開發(fā)商,可復(fù)用能力基本 =0 ? 信息孤島問題 ? 開發(fā)商產(chǎn)品難題 界面 業(yè)務(wù)邏輯 界面 業(yè)務(wù)邏輯 界面 業(yè)務(wù)邏輯 數(shù)據(jù)庫(kù)服務(wù)器 界面 界面 界面 業(yè)務(wù)邏輯 數(shù)據(jù)庫(kù)層 C/S 3 層體系架構(gòu) ? 系統(tǒng)部署問題 系統(tǒng)實(shí)施、界面邏輯更改、客戶端環(huán)境變化 ? 信息孤島問題 直接操作不同系統(tǒng)的數(shù)據(jù) ,沒有標(biāo)準(zhǔn)的接口方式,獲取外系統(tǒng)的信息 ? 可重用性 :面向簡(jiǎn)單部件或過程 界面 界面 界面 數(shù)據(jù)層 業(yè)務(wù)邏輯 / 系統(tǒng)資源管理 中間件 數(shù)據(jù)層 數(shù)據(jù)層 ? 優(yōu)點(diǎn) A) 系統(tǒng)資源管理 (連接池 ) B) 業(yè)務(wù)邏輯可重用程度比較高 C) 有些產(chǎn)品可以在業(yè)務(wù)邏輯層完成不同系統(tǒng)的信息共享 D) 跨平臺(tái)信息共享 傳統(tǒng) B/S開發(fā)模式歷程 ? 3層體系結(jié)構(gòu) ? 界面邏輯 /業(yè)務(wù)邏輯統(tǒng)一在系統(tǒng)主機(jī)上;系統(tǒng)升級(jí)、實(shí)施、部署方便 ? 可以跨平臺(tái)訪問數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)共享 ? 一致的用戶界面交互方式。 如何實(shí)現(xiàn)不同系統(tǒng)間信息的互用? ? 如何保護(hù)系統(tǒng)的投資? 業(yè)務(wù)在不斷地發(fā)展,系統(tǒng)在不斷地升級(jí),單位在不斷地投資 … … 在傳統(tǒng)的開發(fā)方式下