J2EE平臺多層體系架構(gòu)PPT_第1頁
J2EE平臺多層體系架構(gòu)PPT_第2頁
J2EE平臺多層體系架構(gòu)PPT_第3頁
J2EE平臺多層體系架構(gòu)PPT_第4頁
J2EE平臺多層體系架構(gòu)PPT_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、J2EE 平臺多層體系架構(gòu),Java 2 PlatForm Enterprise Edition,1,信息部門主管關(guān)心的問題,信息孤島問題。 不同的部門有不同的應(yīng)用系統(tǒng),使用傳統(tǒng)的開發(fā)工具,無法實現(xiàn)信息的共享互用。 如何實現(xiàn)不同系統(tǒng)間信息的互用? 如何保護系統(tǒng)的投資? 業(yè)務(wù)在不斷地發(fā)展,系統(tǒng)在不斷地升級,單位在不斷地投資 在傳統(tǒng)的開發(fā)方式下,除了部分模塊、函數(shù)能夠在升級產(chǎn)品中利用來,其他大部分要推倒重做,需要重新投資完成以前投資的內(nèi)容,造成極大的浪費。 如何保護以前的投資,使以前開發(fā)的應(yīng)用產(chǎn)品能平滑地在新系統(tǒng)中使用? 如何減少系統(tǒng)的投資? 復(fù)雜的應(yīng)用、數(shù)量龐大的系統(tǒng)用戶,需要昂貴的系統(tǒng)硬件來支

2、撐 . 如何改善系統(tǒng)購價,以期達到最少的投資? 如何面對瀑漲的應(yīng)用要求? 應(yīng)用在不斷地添加、完善,處理不斷地變得復(fù)雜,系統(tǒng)應(yīng)用人員在不斷地增加 主機系統(tǒng)已經(jīng)變得不堪重負。是更換更加昂貴的主機設(shè)備,還是添加一些比較廉價的主機系統(tǒng),由系統(tǒng)動態(tài)均衡負載? 在傳統(tǒng)的方式下,只能通過更換更加昂貴的主機系統(tǒng)。 如何緊跟系統(tǒng)平臺日異月新的升級換代。,2,系統(tǒng)管理員關(guān)心的問題,系統(tǒng)健壯性問題 應(yīng)用主機系統(tǒng)Down機了,怎么辦? 系統(tǒng)安全 如何保證系統(tǒng)不被非法使用? 如何改進系統(tǒng)運行效率 復(fù)雜的應(yīng)用、數(shù)量龐大的用戶,如何控制系統(tǒng)資源的耗費? 傳統(tǒng)方式下,系統(tǒng)資源的耗費隨著用戶數(shù)量的遞增而遞增 系統(tǒng)軟件的更新 應(yīng)

3、用軟件更新后,如何讓數(shù)量龐大的前端用戶也更新?,3,系統(tǒng)用戶關(guān)心的問題,面對這么多的應(yīng)用系統(tǒng),怎么辦? 一種應(yīng)用系統(tǒng)一套軟件,電腦桌面上的應(yīng)用系統(tǒng)越來越多了。 不同的系統(tǒng)有不同的界面,不同的操作方式,需要不斷的學(xué)習(xí),命苦啊 不同的系統(tǒng)要記住不同的登錄口令,真是命苦 不同的系統(tǒng)信息在各自的系統(tǒng)中展現(xiàn),沒法統(tǒng)一起來使用,還要手工計算,煩 怎么又要下載更新? 系統(tǒng)又不能用了 傳統(tǒng)工具往往需要在客戶端配置參數(shù)或安裝驅(qū)動程序,如果前端用戶環(huán)境發(fā)生變化,可能導(dǎo)致系統(tǒng)無法正常使用。 系統(tǒng)太慢了 當(dāng)用戶數(shù)量增多,系統(tǒng)負載變大,慢,4,開發(fā)商關(guān)心的問題,如何解決成本問題? 傳統(tǒng)方式,要求開發(fā)人員的技術(shù)比較全面,

4、從界面、前端開發(fā)工具、數(shù)據(jù)庫工具 成本比較高。 如何保證質(zhì)量 傳統(tǒng)方式,每個開發(fā)人員都可能涉及到軟件系統(tǒng)的各個層次,要求每個開發(fā)人員都要關(guān)心、注意各個環(huán)節(jié)的技術(shù)細節(jié),質(zhì)量隱患點太多了。 如何保證開發(fā)進度 傳統(tǒng)方式,各種業(yè)務(wù)模塊都需要自己開發(fā) 如何滿足用戶對其他系統(tǒng)中的信息處理需求? A) 需要開發(fā)與該系統(tǒng)相近的處理代碼;工作量太大了。 B) 對其他系統(tǒng)的業(yè)務(wù)、實現(xiàn)方式不了解;直接操作外部系統(tǒng),風(fēng)險太大了。 C) 每個外部系統(tǒng)的接口都不一樣,都要分別編寫,太難了。 如何復(fù)用以前開發(fā)的軟件部件或產(chǎn)品? A) 面向過程代碼級的復(fù)用。 B) 面向初級部件級的復(fù)用。 如何滿足用戶的性能要求? 系統(tǒng)響應(yīng)能

5、力與用戶數(shù)的增加、安全要求、動態(tài)均衡、系統(tǒng)強壯性要求. 很多需要自己開發(fā)。 開始系統(tǒng)實施,要跑遍所有的業(yè)務(wù)點安裝。,5,C/S開發(fā)模式歷程,2層體系結(jié)構(gòu) 2.5層體系結(jié)構(gòu) 3層體系結(jié)構(gòu),6,系統(tǒng)偶合模型發(fā)展歷程,面向過程、代碼的系統(tǒng)緊偶合 需要與系統(tǒng)聯(lián)編,與系統(tǒng)一起打包 接口不標(biāo)準(zhǔn)而且復(fù)雜,需要知道過程或代碼接口 產(chǎn)品復(fù)用能力低 面向組件級的系統(tǒng)緊偶合 需要與系統(tǒng)聯(lián)編,并需要準(zhǔn)確知道組件部署所在的位置 接口不一定標(biāo)準(zhǔn)而且復(fù)雜,需要知道組件的應(yīng)用接口 產(chǎn)品復(fù)用能力較高 面向部件的系統(tǒng)松偶合 不需要了解部件部署的位置 接口不一定標(biāo)準(zhǔn),需要知道部件的應(yīng)用接口 產(chǎn)品復(fù)用能力高 面向服務(wù)的系統(tǒng)無關(guān)聯(lián)松偶

6、合 不需要了解服務(wù)部署的位置 應(yīng)用接口標(biāo)準(zhǔn)化;不需要知道服務(wù)的具體應(yīng)用接口 產(chǎn)品復(fù)用能力高,7,2層、2.5層體系結(jié)構(gòu),隨著用戶數(shù)增加,系統(tǒng)資源耗費成幾何級數(shù)增加,而且很多資源耗費呈空閑浪費。 部署不不方便 A) 系統(tǒng)實施問題 B)界面要求更新問題 C) 業(yè)務(wù)邏輯更新問題 D) 系統(tǒng)負載問題 E) 系統(tǒng)健壯性問題 產(chǎn)品可復(fù)用能力帶來的投資保護問題 A) 面向過程代碼級的復(fù)用 B) 更換開發(fā)商,可復(fù)用能力基本=0 信息孤島問題 開發(fā)商產(chǎn)品難題,8,C/S 3 層體系架構(gòu),系統(tǒng)部署問題 系統(tǒng)實施、界面邏輯更改、客戶端環(huán)境變化 信息孤島問題 直接操作不同系統(tǒng)的數(shù)據(jù),沒有標(biāo)準(zhǔn)的接口方式,獲取外系統(tǒng)的信

7、息 可重用性:面向簡單部件或過程,優(yōu)點 A) 系統(tǒng)資源管理(連接池) B) 業(yè)務(wù)邏輯可重用程度比較高 C) 有些產(chǎn)品可以在業(yè)務(wù)邏輯層完成不同系統(tǒng)的信息共享 D) 跨平臺信息共享,9,傳統(tǒng)B/S開發(fā)模式歷程,3層體系結(jié)構(gòu) 界面邏輯/業(yè)務(wù)邏輯統(tǒng)一在系統(tǒng)主機上;系統(tǒng)升級、實施、部署方便 可以跨平臺訪問數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)共享 一致的用戶界面交互方式。 有些產(chǎn)品實現(xiàn)面向部件的復(fù)用能力 常用工具: Asp , 普通JavaBean,信息孤島問題 直接操作不同系統(tǒng)的數(shù)據(jù) 沒有標(biāo)準(zhǔn)的接口方式 可重用性: 簡單部件或過程,沒有標(biāo)準(zhǔn) 沒有資源管理,無法滿足復(fù)雜及大用戶量的應(yīng)用要求。,10,J2EE 多層體系架構(gòu),J

8、2EE 技術(shù)基礎(chǔ) J2EE 概述 J2EE 帶來的優(yōu)勢,11,J2EE 基礎(chǔ):Java 的技術(shù)特點,目標(biāo)代碼與系統(tǒng)硬件平臺無關(guān) 模板式的類繼承方法 面向命名的系統(tǒng)聯(lián)編 其他優(yōu)勢 面向?qū)ο蟮木幊谭绞?準(zhǔn)C + 語法結(jié)構(gòu);解決地址管理問題 眾多廠家支持;統(tǒng)一版本標(biāo)準(zhǔn) IBM WebSphere; WebLogic ; Oracle OC4J Sun 公司統(tǒng)一標(biāo)準(zhǔn)。,12,目標(biāo)代碼與系統(tǒng)平臺無關(guān),Java 虛擬機 可以在不同的系統(tǒng)軟件、不同的硬件平臺運行。( 2 PlatForm ) 系統(tǒng)平臺的變化,不會影響已經(jīng)投資開發(fā)的應(yīng)用軟件。 如:硬件系統(tǒng)、操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)。,13,模板式的類繼承方法,1

9、4,模板式的類繼承方法,可以制定統(tǒng)一的業(yè)務(wù)處理接口標(biāo)準(zhǔn);實現(xiàn)不同業(yè)務(wù)系統(tǒng)間無逢的信息共享。 可以方便的實現(xiàn)不同業(yè)務(wù)的流水化處理作業(yè)。 通過接口的標(biāo)準(zhǔn)化,真正面向部件的產(chǎn)品復(fù)用能力;保護系統(tǒng)原來的投資。,15,面向命名的系統(tǒng)聯(lián)編,傳統(tǒng)工具連編方式:面向地址 A) 變量:編譯聯(lián)編完成后,通過地址訪問變量中存儲的內(nèi)容 B) 過程或方法:聯(lián)編完成后,也是轉(zhuǎn)換成地址的方式,供其他過程調(diào)用。 C)聯(lián)編系統(tǒng)中任何一個模塊發(fā)生變化,都需要重新聯(lián)編,以重新確定地址。 動態(tài)連接庫 A) 通過命名的方式供其他過程調(diào)用。 B) 通過字符串的方式供過程調(diào)用,不參與系統(tǒng)編譯,無法事先發(fā)現(xiàn)錯誤。 C) 動態(tài)連接庫調(diào)用接口繁

10、雜;仍然需要調(diào)用者重新確定系統(tǒng)地址后,再執(zhí)行。 D) 動態(tài)連接庫是以庫的方式提供命名連編。,16,Java 命名聯(lián)編方式,真正的面向命名聯(lián)編方式 A) Java程序編譯成目標(biāo)文件后,與系統(tǒng)地址無關(guān); 通過名稱找到過程所引用的變量或方法。 B) 系統(tǒng)開發(fā)初期,可以按系統(tǒng)定義空的框架結(jié)構(gòu)供其他開發(fā)者使用;待開發(fā)完畢后,再發(fā)布到系統(tǒng)上,而不需要和其他模塊一起聯(lián)編。 C) 只與java 路徑名稱有關(guān),與系統(tǒng)物理目錄無關(guān);在J2EE 架構(gòu)中,甚至與對象運行所在的主機無關(guān)。 該技術(shù)所帶來的優(yōu)勢 A) 各種的功能模塊無須聯(lián)編,只需要定義模塊框架,即可在共同發(fā)布后使用。便于各種業(yè)務(wù)模塊分工合作、集群開發(fā),代碼

11、或版權(quán)保密。 B) 可以方便的實現(xiàn)系統(tǒng)模塊的部件化,從而達到產(chǎn)品的可重用能力。 C) 便于部件的部署;部件的部署可以在本機,也可以在J2EE架構(gòu)的異地主機。 D) 實現(xiàn)面向功能單點級別的升級或修正。任何一個功能模塊修改后,無需整個系統(tǒng)聯(lián)編,既可使用。,17,J2EE 系統(tǒng)結(jié)構(gòu),18,Java 2 Platform Enterprise Edition 是一些列技術(shù)規(guī)范以及成熟的組件或部件的總和 在Java 語言的基礎(chǔ)上;通過一系列框架基本類,規(guī)定一些商業(yè)部件的編程規(guī)范,以及一些成熟的商用部件,19,20,Web包容器,Java 虛擬機環(huán)境,單進程,多線程運行環(huán)境 Web 服務(wù)的提供者,管理者

12、標(biāo)準(zhǔn)規(guī)范 HttpServerlet 規(guī)范 Jsp 規(guī)范 提供組件 JAF RMI/IIOP JavaMail JMS JDBC JTA JNDI 傳統(tǒng)的Java Web 應(yīng)用程序所在地 Tomcat等,21,Web包容器Web 請求,Java 虛擬運行環(huán)境 一個Http請求啟動一個線程 Web 服務(wù)的提供者 A) 打包Http 請求,組成標(biāo)準(zhǔn)的Java HttpRequest 對象 B) 根據(jù)Http 請求地址,路由尋找對應(yīng) 的 Serverlet 類或Jsp Web 部署描述器,22,Web包容器-Jsp 規(guī)范,提供了純Html 與 java 相結(jié)合的界面邏輯編程方式 例子, + V_Se

13、rviceResult.getErrorMessage() ; return ; System.out.println( Result Has no Error); if( V_HttpRequest.getParameter(Add) != null ) System.out.println( Redirect:); response.sendRedirect(book_edit.jsp?bookno= + V_HttpRequest.getParameter(BookNo); return ; % ,23,Serverlet 規(guī)范,public class MeetMana extends

14、 HttpServlet public void init() throws ServletException public void destroy() public void service(HttpServletRequest request, HttpServletResponse response) throws IOException ,24, function commitit() form1.action=book_add.jsp; return true; 編號 書名 出版商 文件 ,25,Web包容器提供的組件,JDBC : Java Database Connection

15、 數(shù)據(jù)庫連接池管理,使得系統(tǒng)主機資源不會空閑浪費。 跨數(shù)據(jù)庫平臺: Oracle , Sybase , Db2 , SqlServer 可以同時連接多個數(shù)據(jù)庫 提供同樣的組件接口模板規(guī)范 RMI/IIOP : Remote Mathod Invocation 遠程方法調(diào)用 Internet Inter-Orb Protocol 互聯(lián)網(wǎng)對象需求中介協(xié)議 實現(xiàn)分布式計算;是J2EE 實現(xiàn)基礎(chǔ)技術(shù) JNDI : Java Name Directory Interface JTA : Java Transation assistant 數(shù)據(jù)庫事務(wù)管理 JavaMail : 郵件服務(wù) JMS : Jav

16、a Message Service 消息服務(wù),26,Ejb 包容器,Enterprise java bean 與Web 包容器屬于不同的進程 是Ejb 部件的管理器 實現(xiàn)面向部件應(yīng)用藕合方式 Java 部件技術(shù)規(guī)范 Java Ejb 基礎(chǔ)類模板 提供與Web 包容器一樣的風(fēng)格。,27,實現(xiàn)面向部件應(yīng)用藕合方式,28,實現(xiàn)面向部件藕合的應(yīng)用方式,客戶/服務(wù) 的部署方式 客戶端通過命名的方式,獲得的Ejb遠程對象,就象操作本地對象一樣操作??蛻舳瞬恍枰繣jb 對象部署在哪里,是本地主機還是異地主機。 客戶端需要的只是部件的接口模板類;部件的業(yè)務(wù)邏輯全部部署在服務(wù)端。 通過JNDI / LDAP

17、 命名目錄服務(wù)獲取Ejb 部件的部署的位置 通過RMI 或 IIOP 實現(xiàn)異地主機遠程部署,29,Ejb 容器所完成的工作,Java 虛擬機環(huán)境;單進程,多線程 部件服務(wù)的路由 容器中部件對象生命周期的管理 根據(jù)客戶端請求,按照Ejb 模板基類聲明的方法,實例化不同的Ejb 業(yè)務(wù)類 根據(jù)客戶端請求,調(diào)用業(yè)務(wù)類中的方法。 管理永久性的Ejb 對象。 Ejb 對象的訪問權(quán)限控制。 Ejb 對象的類型 永久性Ejb 暫時性Ejb Ejb 對象管理方法 交換 釋放,30,Ejb 模板的種類,會話Bean ( Session Bean ) 業(yè)務(wù)處理邏輯類的接口規(guī)范 實體Bean ( Session Be

18、an ) 業(yè)務(wù)數(shù)據(jù)結(jié)構(gòu)及其數(shù)據(jù)的接口規(guī)范 提供了實體Bean 的生成工具,31,會話Bean,Session Bean 有狀態(tài)Session Bean ; 無狀態(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 ejbActi

19、vate() / 從硬盤交換到內(nèi)存 public void setSessionContext(SessionContext ctx) / Ejb 包容器初始化 public int businessDeal( BusinessObject I_Object) -業(yè)務(wù)處理邏輯 ,32,實體Bean,描述的數(shù)據(jù)集合 提供一些方法,操作數(shù)據(jù) 永久性 基類模板 public void ejbPostCreate(UwkDto uwkdto) throws CreateException public void ejbRemove() throws RemoveException public voi

20、d ejbLoad() public void ejbStore() public void ejbActivate() public void ejbPassivate() public void unsetEntityContext() public void setEntityContext(EntityContext entityContext) ,33,J2EE 層次結(jié)構(gòu),34,J2EE 帶來的優(yōu)勢,35,J2EE 帶來的優(yōu)勢,面向Web 的應(yīng)用開發(fā) 界面邏輯與業(yè)務(wù)邏輯都存放在系統(tǒng)主機,無須安裝在各個客戶端 信息孤島問題的解決 EJB 實現(xiàn)了遠程異地對象透明的訪問; 信息共享時,本地

21、不需要開發(fā)任何業(yè)務(wù)邏輯代碼,其業(yè)務(wù)邏輯代碼部署在對應(yīng)外部系統(tǒng)的應(yīng)用服務(wù)器上。 本地系統(tǒng)開發(fā)商不需要了解異地系統(tǒng)業(yè)務(wù)部件的具體業(yè)務(wù)邏輯,也不需要編寫任何業(yè)務(wù)代碼。 使得各個業(yè)務(wù)系統(tǒng)的信息都可以得到共享。 可復(fù)用程度的高,保護了原來的系統(tǒng)投資 Ejb 提供了面向部件的復(fù)用 實現(xiàn)均衡負載,重新調(diào)整主機的負載 當(dāng)應(yīng)用服務(wù)器負載過重時,可以通過添購比較廉價的主機設(shè)備,將負載過重的服務(wù)器上運行的Ejb業(yè)務(wù)邏輯部件,分散部署到不同的主機上。 減小開發(fā)周期,減少開發(fā)成本,降低開發(fā)風(fēng)險 利用原先投資開發(fā)的成熟的Ejb業(yè)務(wù)部件 在市場上外購成熟穩(wěn)定的Ejb部件;如流程管理部件,報表制定部件、數(shù)據(jù)分析部件等,36,J2EE 帶來的優(yōu)勢,標(biāo)準(zhǔn)透明的資源管理 標(biāo)準(zhǔn)的,與數(shù)據(jù)庫平臺無關(guān),接口標(biāo)準(zhǔn)。 透明的,編程人員無須關(guān)心連接池的關(guān)閉與否,降低了系統(tǒng)開發(fā)風(fēng)險 連接池的管理,減少了空閑無益

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論