




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 組件概述組件概述 標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型 設(shè)計(jì)模式設(shè)計(jì)模式 EJB基礎(chǔ)基礎(chǔ)6. 組件組件技術(shù)技術(shù)26.1 6.1 概述概述H 組件的提出組件的提出F 面向?qū)ο筌浖幕窘M成單元是類和對(duì)象,面向?qū)ο筌浖幕窘M成單元是類和對(duì)象,細(xì)粒度概念。細(xì)粒度概念。F 企業(yè)級(jí)項(xiàng)目需要粗粒度。企業(yè)級(jí)項(xiàng)目需要粗粒度。6. 組件組件技術(shù)技術(shù) 概述概述 組件的定義組件的定義3H 組件的定義組件的定義 A software component is a unit of composition with contractually specified interfaces and explicit context
2、dependencies only. A software component can be deployed independently and is subject to composition by third parties。6. 組件組件技術(shù)技術(shù) 概述概述組件是一段實(shí)現(xiàn)一個(gè)定義接口集合的代碼,組件是一段實(shí)現(xiàn)一個(gè)定義接口集合的代碼,一個(gè)可管理的、離散的邏輯塊。組件不是完一個(gè)可管理的、離散的邏輯塊。組件不是完整的應(yīng)用程序,不能單獨(dú)運(yùn)行。整的應(yīng)用程序,不能單獨(dú)運(yùn)行。4組組 件件組組件件服服務(wù)務(wù)接口接口1接口接口2類類類類/對(duì)象和組件對(duì)象和組件6. 組件組件技術(shù)技術(shù) 概述概述5H 組件的特性
3、組件的特性F 操作(操作(operations) F 可重用(可重用(reusable)F 可分布(可分布(distributable)F 到處可發(fā)布,和服務(wù)器無關(guān),和平臺(tái)無關(guān)到處可發(fā)布,和服務(wù)器無關(guān),和平臺(tái)無關(guān)F 自包含(自包含(self-containment)F 自描述(自描述(self-description)6. 組件組件技術(shù)技術(shù) 概述概述F 屬性(屬性(properties) F 事件(事件(events)F 可共享(可共享(shareable)6組件模型就是組件與其環(huán)境所必須的一組組件模型就是組件與其環(huán)境所必須的一組要求。組件模型主要關(guān)心如何約束接口的性質(zhì),要求。組件模型主要關(guān)心
4、如何約束接口的性質(zhì),軟件組件使這些接口被公共使用。通過約束組軟件組件使這些接口被公共使用。通過約束組件的接口來遵循某些知識(shí),組件模型能保證在件的接口來遵循某些知識(shí),組件模型能保證在組件之間,為使用這些組件的應(yīng)用軟件和組件組件之間,為使用這些組件的應(yīng)用軟件和組件所作用于其上的應(yīng)用環(huán)境提供一定級(jí)別的互操所作用于其上的應(yīng)用環(huán)境提供一定級(jí)別的互操作性。作性。 組件模型組件模型6. 組件組件技術(shù)技術(shù) 概述概述7H 組件模型的構(gòu)成組件模型的構(gòu)成F 組件的基本體系結(jié)構(gòu)組件的基本體系結(jié)構(gòu)F 組件接口結(jié)構(gòu)組件接口結(jié)構(gòu)F 與其它組件及容器相互作用的機(jī)制與其它組件及容器相互作用的機(jī)制一般來講,組件模型涉及到特定組件
5、的接一般來講,組件模型涉及到特定組件的接口,組件環(huán)境假設(shè)以及組件間約定。組件可以口,組件環(huán)境假設(shè)以及組件間約定。組件可以嵌套。嵌套。其目的就是組件重用、高層開發(fā)、通過工其目的就是組件重用、高層開發(fā)、通過工具進(jìn)行自動(dòng)化開發(fā)以及簡化開發(fā)過程等。具進(jìn)行自動(dòng)化開發(fā)以及簡化開發(fā)過程等。6. 組件組件技術(shù)技術(shù) 概述概述8Application CodeAttributesInterfacesEventsCustomizationComponentContainer一般組件模型一般組件模型9H 組件模型分類組件模型分類F 客戶端組件模型:客戶端組件模型:專門用于處理程序的表示專門用于處理程序的表示及用戶界面
6、問題,如及用戶界面問題,如JavaBean。F 服務(wù)器端組件模型:為面向事務(wù)處理的中間服務(wù)器端組件模型:為面向事務(wù)處理的中間件提供基礎(chǔ)設(shè)施。服務(wù)器端組件模型把組件件提供基礎(chǔ)設(shè)施。服務(wù)器端組件模型把組件模型的開發(fā)和中間件聯(lián)系在一起,如模型的開發(fā)和中間件聯(lián)系在一起,如EJB。6. 組件組件技術(shù)技術(shù) 概述概述10H 組件模型接口組件模型接口F 設(shè)計(jì)模式:是一組類、接口及其關(guān)系,提供設(shè)計(jì)模式:是一組類、接口及其關(guān)系,提供對(duì)一般問題分類常用的設(shè)計(jì)解決方案;對(duì)一般問題分類常用的設(shè)計(jì)解決方案;F 組件組件SPI(服務(wù)提供商接口):定義一組某(服務(wù)提供商接口):定義一組某些服務(wù)提供商要遵循和實(shí)現(xiàn)的標(biāo)準(zhǔn)接口;些
7、服務(wù)提供商要遵循和實(shí)現(xiàn)的標(biāo)準(zhǔn)接口; 6. 組件組件技術(shù)技術(shù) 概述概述F 組件組件API:定義了一組應(yīng)用程序可以用來使:定義了一組應(yīng)用程序可以用來使用組件服務(wù)的標(biāo)準(zhǔn)接口;用組件服務(wù)的標(biāo)準(zhǔn)接口;11F 組件容器接口:定義被組件假定的容器環(huán)組件容器接口:定義被組件假定的容器環(huán)境接口;境接口;F 容器組件接口:定義被容器假定的組件的容器組件接口:定義被容器假定的組件的接口。接口。6. 組件組件技術(shù)技術(shù) 概述概述12H 組件模型的定義方式組件模型的定義方式F 語言相關(guān):一些組件模型以語言無關(guān)方式定語言相關(guān):一些組件模型以語言無關(guān)方式定義接口。語言無關(guān)組件模型使用接口定義語義接口。語言無關(guān)組件模型使用接口
8、定義語言作為中間語言,該語言可以映射到具體的言作為中間語言,該語言可以映射到具體的計(jì)算語言;計(jì)算語言;F 平臺(tái)相關(guān):一些組件模型實(shí)際上依賴于一種平臺(tái)相關(guān):一些組件模型實(shí)際上依賴于一種特定的操作系統(tǒng)和硬件平臺(tái);特定的操作系統(tǒng)和硬件平臺(tái);6. 組件組件技術(shù)技術(shù) 概述概述13F 分布式通信協(xié)議相關(guān):組件模型可以假定在分布式通信協(xié)議相關(guān):組件模型可以假定在組件和應(yīng)用程序之間底層特定的分布式通信組件和應(yīng)用程序之間底層特定的分布式通信協(xié)議上進(jìn)行通信,其它的組件模型可能是與協(xié)議上進(jìn)行通信,其它的組件模型可能是與協(xié)議無關(guān)的并在更高的抽象級(jí)別上定義;協(xié)議無關(guān)的并在更高的抽象級(jí)別上定義;F 通信同步:組件交互的同
9、步模型是指組件調(diào)通信同步:組件交互的同步模型是指組件調(diào)用程序可能阻塞直到收到應(yīng)答用程序可能阻塞直到收到應(yīng)答;6. 組件組件技術(shù)技術(shù) 概述概述F 數(shù)據(jù)表示相關(guān):除了通信協(xié)議之外,一些組數(shù)據(jù)表示相關(guān):除了通信協(xié)議之外,一些組件模型接口也定義類標(biāo)準(zhǔn)數(shù)據(jù)表示格式,用件模型接口也定義類標(biāo)準(zhǔn)數(shù)據(jù)表示格式,用于組件接口的消息傳遞;于組件接口的消息傳遞;14F 接口定義嚴(yán)格:一些組件模型允許定義組件接口定義嚴(yán)格:一些組件模型允許定義組件必須遵循特定的操作簽名模式;必須遵循特定的操作簽名模式;F 行為定制:組件可以通過定制特性來允許修行為定制:組件可以通過定制特性來允許修改組件行為。改組件行為。6. 組件組件技
10、術(shù)技術(shù) 概述概述15a. 項(xiàng)目宗旨項(xiàng)目宗旨k. 組件測試組件測試b. 分析模式標(biāo)識(shí)分析模式標(biāo)識(shí)l. 組件裝配組件裝配c. 外部組件接口分析外部組件接口分析m. 模塊測試模塊測試f. 組件模型技術(shù)確定組件模型技術(shù)確定n. 組件配置規(guī)范組件配置規(guī)范g. 組件確定組件確定o. 系統(tǒng)測試系統(tǒng)測試h. 組件選擇組件選擇p. 部署部署i. 組件設(shè)計(jì)調(diào)整組件設(shè)計(jì)調(diào)整q. 可維護(hù)性可維護(hù)性j. 組件實(shí)現(xiàn)規(guī)范組件實(shí)現(xiàn)規(guī)范H 基于組件的開發(fā)基于組件的開發(fā)( CBD)6. 組件組件技術(shù)技術(shù) 概述概述166.26.2標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型組件標(biāo)準(zhǔn)包括標(biāo)準(zhǔn)組件模型和設(shè)計(jì)模
11、式兩組件標(biāo)準(zhǔn)包括標(biāo)準(zhǔn)組件模型和設(shè)計(jì)模式兩部分。標(biāo)準(zhǔn)組件模型提供了標(biāo)準(zhǔn)的接口方法學(xué)部分。標(biāo)準(zhǔn)組件模型提供了標(biāo)準(zhǔn)的接口方法學(xué)和技術(shù),這些接口不僅位于應(yīng)用和組件之間,和技術(shù),這些接口不僅位于應(yīng)用和組件之間,也位于組件和容器環(huán)境之間。標(biāo)準(zhǔn)定義了組件也位于組件和容器環(huán)境之間。標(biāo)準(zhǔn)定義了組件和應(yīng)用、其它組件、服務(wù)提供商以及容器環(huán)境和應(yīng)用、其它組件、服務(wù)提供商以及容器環(huán)境之間的約定。設(shè)計(jì)模式主要提供問題類型的一之間的約定。設(shè)計(jì)模式主要提供問題類型的一般設(shè)計(jì)方案。般設(shè)計(jì)方案。17n小應(yīng)用程序(小應(yīng)用程序(applet) Java applet定義了簡單的容器組件和組件定義了簡單的容器組件和組件容器接口,使容器
12、接口,使Java代碼嵌入到代碼嵌入到Web瀏覽器瀏覽器中的中的applet中運(yùn)行。中運(yùn)行。6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型nJavaBean JavaBean組件模型定義了編寫組件模型定義了編寫Java代碼的標(biāo)代碼的標(biāo)準(zhǔn)模型,對(duì)外提供組件屬性和事件以及與準(zhǔn)模型,對(duì)外提供組件屬性和事件以及與JavaBean容器的接口。容器的接口。18n CORBA 定義了分布式訪問用任何語言實(shí)現(xiàn)的組件的定義了分布式訪問用任何語言實(shí)現(xiàn)的組件的標(biāo)準(zhǔn)模型。標(biāo)準(zhǔn)通信容器環(huán)境(標(biāo)準(zhǔn)模型。標(biāo)準(zhǔn)通信容器環(huán)境(ORB)通過)通過標(biāo)準(zhǔn)通信協(xié)議把分布式客戶機(jī)發(fā)出的調(diào)用傳標(biāo)準(zhǔn)通信協(xié)議把分布式客戶機(jī)發(fā)出的調(diào)用傳送至服務(wù)器
13、端容器代碼,該代碼激活分布式送至服務(wù)器端容器代碼,該代碼激活分布式對(duì)象方法。對(duì)象方法。6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型n RMI 為使分布式訪問組件成為可能定義的一個(gè)為使分布式訪問組件成為可能定義的一個(gè)Java相關(guān)的接口模型。相關(guān)的接口模型。19n Java API/SPI Java不僅僅是一種語言,各種不僅僅是一種語言,各種Java API實(shí)際實(shí)際上定義了一組標(biāo)準(zhǔn)組件服務(wù),這些服務(wù)能夠上定義了一組標(biāo)準(zhǔn)組件服務(wù),這些服務(wù)能夠被應(yīng)用程序使用以訪問數(shù)據(jù)庫(被應(yīng)用程序使用以訪問數(shù)據(jù)庫(JDBC)服)服務(wù)、名字和目錄服務(wù)(務(wù)、名字和目錄服務(wù)(JNDI)、事務(wù)服務(wù))、事務(wù)服務(wù)(JTA和和J
14、TS)、消息服務(wù)()、消息服務(wù)(JMS)以及跟)以及跟蹤蹤/發(fā)現(xiàn)服務(wù)(發(fā)現(xiàn)服務(wù)(JINI)。)。6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型20n J2EE Web組件組件 Java Servlet和和JavaServer Page表示服務(wù)器端表示服務(wù)器端的組件,它處理的組件,它處理Web請求和生成請求和生成Web表示內(nèi)表示內(nèi)容。這樣的容。這樣的Web組件運(yùn)行和操作在基于組件運(yùn)行和操作在基于J2EE的的Web容器環(huán)境內(nèi)部。容器環(huán)境內(nèi)部。6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型21n J2EE企業(yè)企業(yè)JavaBean 企業(yè)級(jí)企業(yè)級(jí)JavaBean(EJB)是服務(wù)器端的遵守)是服務(wù)器端的遵
15、守標(biāo)準(zhǔn)模型的應(yīng)用組件,它們在標(biāo)準(zhǔn)模型的應(yīng)用組件,它們在EJB容器和服容器和服務(wù)器內(nèi)操作,這樣的服務(wù)器能夠?yàn)閯?wù)器內(nèi)操作,這樣的服務(wù)器能夠?yàn)镋JB提供提供一組標(biāo)準(zhǔn)的服務(wù)框架,如事務(wù)、安全和可擴(kuò)一組標(biāo)準(zhǔn)的服務(wù)框架,如事務(wù)、安全和可擴(kuò)展性。展性。6. 組件組件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型22n 微軟的微軟的DNA 微軟的分布式網(wǎng)絡(luò)體系結(jié)構(gòu)(微軟的分布式網(wǎng)絡(luò)體系結(jié)構(gòu)(DNA)是微軟)是微軟的集成式分布應(yīng)用服務(wù)體系結(jié)構(gòu)環(huán)境,適用的集成式分布應(yīng)用服務(wù)體系結(jié)構(gòu)環(huán)境,適用于微軟平臺(tái)。于微軟平臺(tái)。DNA結(jié)合許多微軟的標(biāo)準(zhǔn)組件結(jié)合許多微軟的標(biāo)準(zhǔn)組件在微軟平臺(tái)上允許企業(yè)應(yīng)用。在微軟平臺(tái)上允許企業(yè)應(yīng)用。6. 組件組
16、件技術(shù)技術(shù)標(biāo)準(zhǔn)組件模型標(biāo)準(zhǔn)組件模型236. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式n 什么是設(shè)計(jì)模式什么是設(shè)計(jì)模式H 設(shè)計(jì)模式:在軟件的建模和設(shè)計(jì)過程中運(yùn)用到設(shè)計(jì)模式:在軟件的建模和設(shè)計(jì)過程中運(yùn)用到的模式,是一組類、接口與其關(guān)系的集合,提的模式,是一組類、接口與其關(guān)系的集合,提供問題類型的一般設(shè)計(jì)方案。供問題類型的一般設(shè)計(jì)方案。6.3 6.3 設(shè)計(jì)模式設(shè)計(jì)模式H 模式:模式是指一種從一個(gè)反復(fù)出現(xiàn)的問題模式:模式是指一種從一個(gè)反復(fù)出現(xiàn)的問題背景中抽象出來,針對(duì)某一個(gè)問題的固定的背景中抽象出來,針對(duì)某一個(gè)問題的固定的解決方案。解決方案。246. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式F 模式名稱:一個(gè)助記名,
17、用來描述模式的問模式名稱:一個(gè)助記名,用來描述模式的問題、解決方案和效果。題、解決方案和效果。H 設(shè)計(jì)模式的四個(gè)基本要素設(shè)計(jì)模式的四個(gè)基本要素F 問題:描述了應(yīng)該在何時(shí)使用模式。它解釋問題:描述了應(yīng)該在何時(shí)使用模式。它解釋了設(shè)計(jì)問題和問題存在的前因后果,也可能了設(shè)計(jì)問題和問題存在的前因后果,也可能描述了特定的設(shè)計(jì)問題,以及使用該模式需描述了特定的設(shè)計(jì)問題,以及使用該模式需要滿足的一些先決條件。要滿足的一些先決條件。256. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式F 解決方案:描述設(shè)計(jì)的組成部分,他們之間解決方案:描述設(shè)計(jì)的組成部分,他們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式。在此,的相互關(guān)系及各自的職
18、責(zé)和協(xié)作方式。在此,解決方案并不描述一個(gè)特定而具體的設(shè)計(jì)或解決方案并不描述一個(gè)特定而具體的設(shè)計(jì)或?qū)崿F(xiàn),而是提供設(shè)計(jì)問題的抽象描述和怎樣實(shí)現(xiàn),而是提供設(shè)計(jì)問題的抽象描述和怎樣用一個(gè)具有一般意義的元素組合來解決這個(gè)用一個(gè)具有一般意義的元素組合來解決這個(gè)問題。問題。F 效果:描述了模式應(yīng)用的效果及使用模式應(yīng)效果:描述了模式應(yīng)用的效果及使用模式應(yīng)權(quán)衡的問題。權(quán)衡的問題。266. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式n 設(shè)計(jì)模式的特征設(shè)計(jì)模式的特征H 模式是在實(shí)踐中通過不斷摸索發(fā)現(xiàn)的;模式是在實(shí)踐中通過不斷摸索發(fā)現(xiàn)的;H 一般情況下模式是用結(jié)構(gòu)化格式書寫的;一般情況下模式是用結(jié)構(gòu)化格式書寫的;H 模式使得人
19、們不必一切從頭開始;模式使得人們不必一切從頭開始;H 模式存在于各種抽象層次中;模式存在于各種抽象層次中;H 模式也在不斷改進(jìn);模式也在不斷改進(jìn);H 模式是可重用的人造物;模式是可重用的人造物;H 模式可以將設(shè)計(jì)和實(shí)踐的最佳方法結(jié)合起來;模式可以將設(shè)計(jì)和實(shí)踐的最佳方法結(jié)合起來;H 可綜合使用多種模式來解決一個(gè)大規(guī)模的難題。可綜合使用多種模式來解決一個(gè)大規(guī)模的難題。276. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式n 使用設(shè)計(jì)模式的好處使用設(shè)計(jì)模式的好處H 進(jìn)一步支持一個(gè)成熟的解決方案進(jìn)一步支持一個(gè)成熟的解決方案 一個(gè)模式提供的解決方案是在不同的項(xiàng)目中被一個(gè)模式提供的解決方案是在不同的項(xiàng)目中被多次使用之
20、后才被記錄在案,因此,模式為重多次使用之后才被記錄在案,因此,模式為重用提供了一個(gè)有效的機(jī)制。用提供了一個(gè)有效的機(jī)制。H 公用詞匯公用詞匯 模式為軟件設(shè)計(jì)者提供了一套公用詞匯,成為模式為軟件設(shè)計(jì)者提供了一套公用詞匯,成為設(shè)計(jì)與開發(fā)人員交流的設(shè)計(jì)與開發(fā)人員交流的標(biāo)準(zhǔn)語言標(biāo)準(zhǔn)語言。286. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 約束解決方案的應(yīng)用范圍約束解決方案的應(yīng)用范圍 使用了模式就相當(dāng)于在一個(gè)可以進(jìn)行設(shè)計(jì)和使用了模式就相當(dāng)于在一個(gè)可以進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)的解決方案范圍內(nèi)進(jìn)行了約束,或者說實(shí)現(xiàn)的解決方案范圍內(nèi)進(jìn)行了約束,或者說生成了邊界。生成了邊界。296. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式n 描述設(shè)計(jì)
21、模式描述設(shè)計(jì)模式H 模式名和分類模式名和分類H 意圖:做什么、基本原理和意圖、解決什么樣意圖:做什么、基本原理和意圖、解決什么樣的特定問題。的特定問題。 H 適用性:什么情況下可以使用該設(shè)計(jì)模式、可適用性:什么情況下可以使用該設(shè)計(jì)模式、可以改進(jìn)哪些不良設(shè)計(jì)。以改進(jìn)哪些不良設(shè)計(jì)。 H 結(jié)構(gòu):采用何種建模技術(shù)描述模式中的類。結(jié)構(gòu):采用何種建模技術(shù)描述模式中的類。 H 參與者:設(shè)計(jì)模式中的類參與者:設(shè)計(jì)模式中的類/對(duì)象以及各自的職責(zé)。對(duì)象以及各自的職責(zé)。306. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 協(xié)作:模式的參與者怎樣協(xié)作以實(shí)現(xiàn)他們的職協(xié)作:模式的參與者怎樣協(xié)作以實(shí)現(xiàn)他們的職責(zé)。責(zé)。H 效果:模式
22、如何支持它的目標(biāo)、使用模式的效效果:模式如何支持它的目標(biāo)、使用模式的效果和所需做的權(quán)衡取舍、系統(tǒng)結(jié)構(gòu)的哪些方面果和所需做的權(quán)衡取舍、系統(tǒng)結(jié)構(gòu)的哪些方面可以獨(dú)立改變等。可以獨(dú)立改變等。 H 實(shí)現(xiàn):實(shí)現(xiàn)模式時(shí)需要知道的一些提示、技術(shù)實(shí)現(xiàn):實(shí)現(xiàn)模式時(shí)需要知道的一些提示、技術(shù)要點(diǎn)及應(yīng)避免的缺陷等。要點(diǎn)及應(yīng)避免的缺陷等。 H 代碼示例:說明怎樣用實(shí)際語言實(shí)現(xiàn)該模式的代碼示例:說明怎樣用實(shí)際語言實(shí)現(xiàn)該模式的代碼片段。代碼片段。316. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 已知應(yīng)用:每個(gè)模式至少包括兩個(gè)不同領(lǐng)域已知應(yīng)用:每個(gè)模式至少包括兩個(gè)不同領(lǐng)域的實(shí)例。的實(shí)例。H 相關(guān)模式:與這個(gè)模式緊密相關(guān)的模式有哪相
23、關(guān)模式:與這個(gè)模式緊密相關(guān)的模式有哪些、重要不同之處是什么、應(yīng)與哪些模式一些、重要不同之處是什么、應(yīng)與哪些模式一起使用。起使用。 326. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 分類準(zhǔn)則:分類準(zhǔn)則:n 設(shè)計(jì)模式分類設(shè)計(jì)模式分類F 目的:模式是用來完成什么工作的。目的:模式是用來完成什么工作的。F 范圍:模式主要用于類還是用于對(duì)象。范圍:模式主要用于類還是用于對(duì)象。H 分類:分類:F 創(chuàng)建型:與對(duì)象創(chuàng)建有關(guān)的模式。創(chuàng)建型:與對(duì)象創(chuàng)建有關(guān)的模式。F 結(jié)構(gòu)型:處理類或?qū)ο蟮慕M裝方式。結(jié)構(gòu)型:處理類或?qū)ο蟮慕M裝方式。F 行為型:對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎毿袨樾停簩?duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)進(jìn)行描
24、述。責(zé)進(jìn)行描述。336. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 適配器模式:一個(gè)調(diào)節(jié)器用于調(diào)整一個(gè)類的適配器模式:一個(gè)調(diào)節(jié)器用于調(diào)整一個(gè)類的接口實(shí)現(xiàn),以支持新的底層實(shí)現(xiàn),接口實(shí)現(xiàn),以支持新的底層實(shí)現(xiàn),Adapter的的客戶接口保持不變;客戶接口保持不變;H 廠(廠(Factory)模式:廠是一個(gè)用于創(chuàng)建新的)模式:廠是一個(gè)用于創(chuàng)建新的對(duì)象實(shí)例的通用框架,一些通用廠框架能夠?qū)ο髮?shí)例的通用框架,一些通用廠框架能夠在給定類型名和初始參數(shù)時(shí)創(chuàng)建對(duì)象實(shí)例以在給定類型名和初始參數(shù)時(shí)創(chuàng)建對(duì)象實(shí)例以完成類型的構(gòu)造;完成類型的構(gòu)造;n 常用設(shè)計(jì)模式常用設(shè)計(jì)模式346. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 單一(單
25、一(Singleton)模式:單一模式提供了一)模式:單一模式提供了一種方法,保證訪問類的客戶只能創(chuàng)建和訪問種方法,保證訪問類的客戶只能創(chuàng)建和訪問該類的一個(gè)實(shí)例。該類的一個(gè)實(shí)例。H 策略模式:策略模式封裝了底層可互相改變策略模式:策略模式封裝了底層可互相改變的算法,并為訪問該算法提供了相同的接口。的算法,并為訪問該算法提供了相同的接口。H 命令模式:命令模式封裝用于執(zhí)行某些操作命令模式:命令模式封裝用于執(zhí)行某些操作的命令。的命令。 356. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H MVC模式:模式:MVC(ModelViewController)模式定義另一種設(shè)計(jì)系統(tǒng)的標(biāo)準(zhǔn))模式定義另一種設(shè)計(jì)系統(tǒng)
26、的標(biāo)準(zhǔn)方法,該方法單獨(dú)封裝模型、視圖和控制。方法,該方法單獨(dú)封裝模型、視圖和控制。模型封裝表示系統(tǒng)狀態(tài)以及系統(tǒng)狀態(tài)之間的模型封裝表示系統(tǒng)狀態(tài)以及系統(tǒng)狀態(tài)之間的關(guān)系;視圖封裝表示一種方法,該方法為模關(guān)系;視圖封裝表示一種方法,該方法為模型的不同客戶視圖提供相同的底層模型;控型的不同客戶視圖提供相同的底層模型;控制器封裝提供一種方法,該方法由客戶機(jī)維制器封裝提供一種方法,該方法由客戶機(jī)維護(hù)模型并且向客戶視圖激活更新。護(hù)模型并且向客戶視圖激活更新。366. 組件組件技術(shù)技術(shù)設(shè)計(jì)模式設(shè)計(jì)模式H 主體觀察器(主體觀察器(Subject Observer)模式:該)模式:該模式封裝了某些應(yīng)被觀察到的事件的
27、主體。模式封裝了某些應(yīng)被觀察到的事件的主體。主體擁有多個(gè)被封裝觀察器對(duì)象。主體擁有多個(gè)被封裝觀察器對(duì)象。H 代理(代理(Proxy)模式:代理模式提供了一個(gè)中)模式:代理模式提供了一個(gè)中間對(duì)象用于把請求發(fā)送到端點(diǎn)對(duì)象。間對(duì)象用于把請求發(fā)送到端點(diǎn)對(duì)象。H 復(fù)合(復(fù)合(Composite)模式:復(fù)合模式定義了一)模式:復(fù)合模式定義了一些實(shí)體,這些實(shí)體表示應(yīng)被一個(gè)或多個(gè)復(fù)合些實(shí)體,這些實(shí)體表示應(yīng)被一個(gè)或多個(gè)復(fù)合對(duì)象包含的組件。對(duì)象包含的組件。37 EJB EJB定義定義人們希望把人們希望把javajava組件的概念從客戶機(jī)域擴(kuò)展到組件的概念從客戶機(jī)域擴(kuò)展到服務(wù)器域,支持以任務(wù)為關(guān)鍵的企業(yè)信息系統(tǒng)。服
28、務(wù)器域,支持以任務(wù)為關(guān)鍵的企業(yè)信息系統(tǒng)。F 平臺(tái)無關(guān)性平臺(tái)無關(guān)性F 軟件重用性軟件重用性F 開發(fā)高效性開發(fā)高效性F 可擴(kuò)展性可擴(kuò)展性F 可維護(hù)性可維護(hù)性H 問題的提出問題的提出6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)6.4 EJB6.4 EJB基礎(chǔ)基礎(chǔ)38H EJB EJB定義定義EJB EJB 是基于是基于JavaJava的面向?qū)ο蟮慕M件標(biāo)準(zhǔn),是的面向?qū)ο蟮慕M件標(biāo)準(zhǔn),是用于開發(fā)和部署多層結(jié)構(gòu)的、分布式的、面用于開發(fā)和部署多層結(jié)構(gòu)的、分布式的、面向?qū)ο蟮南驅(qū)ο蟮腏avaJava應(yīng)用系統(tǒng)的跨平臺(tái)的構(gòu)件體系應(yīng)用系統(tǒng)的跨平臺(tái)的構(gòu)件體系結(jié)構(gòu)。結(jié)構(gòu)。EJBEJB組件包含一定的業(yè)務(wù)規(guī)則,運(yùn)行組件包含一定的業(yè)
29、務(wù)規(guī)則,運(yùn)行在服務(wù)器端,是在服務(wù)器端,是JavaJava企業(yè)計(jì)算平臺(tái)的核心技企業(yè)計(jì)算平臺(tái)的核心技術(shù)。術(shù)。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)39F EJBEJB組件是基于標(biāo)準(zhǔn)分布式對(duì)象技術(shù)、組件是基于標(biāo)準(zhǔn)分布式對(duì)象技術(shù)、CORBACORBA和和RMIRMI的服務(wù)器端的服務(wù)器端JavaJava組件組件, EJBEJB組件總是分布的。組件總是分布的。F 實(shí)現(xiàn)了實(shí)現(xiàn)了EJB規(guī)范的應(yīng)用服務(wù)器提供了可以解決規(guī)范的應(yīng)用服務(wù)器提供了可以解決安全性、資源共享、持續(xù)運(yùn)行、事務(wù)處理等服安全性、資源共享、持續(xù)運(yùn)行、事務(wù)處理等服務(wù),簡化了商業(yè)應(yīng)用系統(tǒng)。務(wù),簡化了商業(yè)應(yīng)用系統(tǒng)。F EJBEJB是部署在服務(wù)器上的可執(zhí)行
30、的組件或商業(yè)對(duì)是部署在服務(wù)器上的可執(zhí)行的組件或商業(yè)對(duì)象。它運(yùn)行在服務(wù)器上,是由客戶機(jī)調(diào)用的非象。它運(yùn)行在服務(wù)器上,是由客戶機(jī)調(diào)用的非可視遠(yuǎn)程對(duì)象??梢曔h(yuǎn)程對(duì)象。F EJBEJB組件提供了應(yīng)用的商務(wù)邏輯部分,不涉及表組件提供了應(yīng)用的商務(wù)邏輯部分,不涉及表示層部分。示層部分。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)40H EJB EJB的發(fā)展過程的發(fā)展過程F 發(fā)布:發(fā)布:19971997年年1212月;月;F 1.01.0版:版:19981998年年3 3月;月;F 2.02.0版:版:20012001年年9 9月;月;6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)41H 三層結(jié)構(gòu)三層結(jié)構(gòu)6. 組件組件技術(shù)
31、技術(shù) EJB基礎(chǔ)基礎(chǔ) EJB EJB體系結(jié)構(gòu)體系結(jié)構(gòu)業(yè)務(wù)邏輯從業(yè)務(wù)邏輯從web服務(wù)器分離成幾個(gè)獨(dú)立的組服務(wù)器分離成幾個(gè)獨(dú)立的組件,這些獨(dú)立的組件可以部署在不同的機(jī)器件,這些獨(dú)立的組件可以部署在不同的機(jī)器上以提高性能,可以被瀏覽器、小應(yīng)用(上以提高性能,可以被瀏覽器、小應(yīng)用(Applet)、或通過現(xiàn)有的輕量級(jí)的)、或通過現(xiàn)有的輕量級(jí)的CGI訪問訪問。同時(shí),這些組件經(jīng)過優(yōu)化,大大提高了其。同時(shí),這些組件經(jīng)過優(yōu)化,大大提高了其性能、穩(wěn)定性和容錯(cuò)性。性能、穩(wěn)定性和容錯(cuò)性。42436. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)F 數(shù)據(jù)流分層數(shù)據(jù)流分層網(wǎng)絡(luò)服務(wù)器(網(wǎng)絡(luò)服務(wù)器(Web Server)應(yīng)用服務(wù)器(應(yīng)用
32、服務(wù)器(Application Server)事務(wù)監(jiān)控器(事務(wù)監(jiān)控器(Transaction Server)數(shù)據(jù)庫服務(wù)器(數(shù)據(jù)庫服務(wù)器(Database Server)44F 應(yīng)用分層應(yīng)用分層6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)表示層:一般由表示層:一般由JSP,Servlet來實(shí)現(xiàn),提供來實(shí)現(xiàn),提供整個(gè)系統(tǒng)與用戶交互的界面。整個(gè)系統(tǒng)與用戶交互的界面。業(yè)務(wù)邏輯層:一般由普通的業(yè)務(wù)邏輯層:一般由普通的Java類或會(huì)話類或會(huì)話Bean來實(shí)現(xiàn),用來處理業(yè)務(wù)邏輯,一般是對(duì)來實(shí)現(xiàn),用來處理業(yè)務(wù)邏輯,一般是對(duì)數(shù)據(jù)的處理,對(duì)文件的讀寫等等。數(shù)據(jù)的處理,對(duì)文件的讀寫等等。數(shù)據(jù)訪問層:一般由普通的數(shù)據(jù)訪問層:
33、一般由普通的Java類或?qū)嶓w類或?qū)嶓wBean來實(shí)現(xiàn),提供對(duì)數(shù)據(jù)庫的操作。來實(shí)現(xiàn),提供對(duì)數(shù)據(jù)庫的操作。 45H 分布式對(duì)象分布式對(duì)象 EJB組件是基于分布式對(duì)象的,采用的技組件是基于分布式對(duì)象的,采用的技術(shù)就是術(shù)就是Java的的RMI-IIOP。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)F 存根(存根(stub):代表遠(yuǎn)程對(duì)象的客戶機(jī)端代):代表遠(yuǎn)程對(duì)象的客戶機(jī)端代理,它有和遠(yuǎn)程對(duì)象一樣的接口理,它有和遠(yuǎn)程對(duì)象一樣的接口(interface),并且駐留在客戶端的機(jī)器上。),并且駐留在客戶端的機(jī)器上。因此客戶端可以像使用遠(yuǎn)程對(duì)象一樣使用存根因此客戶端可以像使用遠(yuǎn)程對(duì)象一樣使用存根的方法。存根會(huì)把客戶端
34、對(duì)方法的調(diào)用轉(zhuǎn)換成的方法。存根會(huì)把客戶端對(duì)方法的調(diào)用轉(zhuǎn)換成可以在網(wǎng)絡(luò)中傳輸?shù)木W(wǎng)絡(luò)消息,發(fā)送到服務(wù)器。可以在網(wǎng)絡(luò)中傳輸?shù)木W(wǎng)絡(luò)消息,發(fā)送到服務(wù)器。466. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)F 骨架(骨架(SkeletonSkeleton)是一個(gè)駐留在服務(wù)器端的)是一個(gè)駐留在服務(wù)器端的代理對(duì)象,它可以把客戶端傳來的網(wǎng)絡(luò)消息代理對(duì)象,它可以把客戶端傳來的網(wǎng)絡(luò)消息轉(zhuǎn)換成對(duì)服務(wù)器端對(duì)象的方法調(diào)用。在方法轉(zhuǎn)換成對(duì)服務(wù)器端對(duì)象的方法調(diào)用。在方法結(jié)束后,骨架會(huì)得到方法的返回值,再把返結(jié)束后,骨架會(huì)得到方法的返回值,再把返回值轉(zhuǎn)換成網(wǎng)絡(luò)消息,發(fā)送到客戶端。這時(shí),回值轉(zhuǎn)換成網(wǎng)絡(luò)消息,發(fā)送到客戶端。這時(shí),存根會(huì)把網(wǎng)絡(luò)
35、消息轉(zhuǎn)換成可以使用的存根會(huì)把網(wǎng)絡(luò)消息轉(zhuǎn)換成可以使用的JavaJava對(duì)對(duì)象,供客戶端使用。象,供客戶端使用。476. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)存存 根根框框 架架網(wǎng)絡(luò)網(wǎng)絡(luò)客戶端客戶端調(diào)用遠(yuǎn)調(diào)用遠(yuǎn)程接口程接口遠(yuǎn)程對(duì)象遠(yuǎn)程對(duì)象調(diào)用本調(diào)用本地接口地接口分布式對(duì)象分布式對(duì)象486. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)客戶端客戶端 客戶端調(diào)用一客戶端調(diào)用一個(gè)方法個(gè)方法STUB 返回結(jié)果返回結(jié)果中間層中間層網(wǎng)絡(luò)網(wǎng)絡(luò) 所調(diào)用方法的通信所調(diào)用方法的通信 返回值的通信返回值的通信對(duì)象對(duì)象服務(wù)器服務(wù)器 在服務(wù)器上在服務(wù)器上調(diào)用調(diào)用SKELETONSKELETONRMI循環(huán)循環(huán)RMI循環(huán)循環(huán)每個(gè)對(duì)象服務(wù)器的實(shí)
36、例都被相應(yīng)每個(gè)對(duì)象服務(wù)器的實(shí)例都被相應(yīng)的的skeleton類的實(shí)例所包裝,類的實(shí)例所包裝, skeleton 在一個(gè)在一個(gè)IP地址和一個(gè)端地址和一個(gè)端口上建立起來并監(jiān)聽由口上建立起來并監(jiān)聽由stub發(fā)來發(fā)來的請求。的請求。 stub作為對(duì)象服務(wù)器在作為對(duì)象服務(wù)器在客戶端的代理代理,負(fù)責(zé)通過客戶端的代理代理,負(fù)責(zé)通過skeleton將請求從客戶端送到對(duì)將請求從客戶端送到對(duì)象服務(wù)器。象服務(wù)器。49客戶機(jī)客戶機(jī)EJBHomeEJBObject數(shù)據(jù)庫數(shù)據(jù)庫或組件或組件EJB組件組件EJB服務(wù)器服務(wù)器容器容器6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)H EJB EJB體系結(jié)構(gòu)體系結(jié)構(gòu)50F EJBEJB組件
37、模型包括組件模型包括: :EJBEJB組件組件EJB ServerEJB ServerEJB ContainerEJB ContainerEJB ObjectEJB ObjectEJB EJB 部署部署 6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)51FEJBEJB組件類型組件類型 EJB組件用于封裝業(yè)務(wù)邏輯,使得開發(fā)人組件用于封裝業(yè)務(wù)邏輯,使得開發(fā)人員無需再擔(dān)心數(shù)據(jù)訪問、事務(wù)處理支持、安員無需再擔(dān)心數(shù)據(jù)訪問、事務(wù)處理支持、安全性、高速緩存和并發(fā)等瑣碎任務(wù)的編程。全性、高速緩存和并發(fā)等瑣碎任務(wù)的編程。 實(shí)體實(shí)體beanbean 會(huì)話會(huì)話beanbean 消息驅(qū)動(dòng)消息驅(qū)動(dòng)beanbean(EJB2.0
38、)EJB2.0)6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)52實(shí)體實(shí)體beanbean(Entity beans) 實(shí)體實(shí)體bean是一個(gè)標(biāo)準(zhǔn)的是一個(gè)標(biāo)準(zhǔn)的Java類,用對(duì)象的類,用對(duì)象的形式來展現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)表記錄,利用形式來展現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)表記錄,利用對(duì)象所定義的對(duì)象所定義的business函數(shù),來執(zhí)行對(duì)應(yīng)于函數(shù),來執(zhí)行對(duì)應(yīng)于數(shù)據(jù)表的存取工作,如添加記錄、修改記數(shù)據(jù)表的存取工作,如添加記錄、修改記錄和刪除記錄等。實(shí)體錄和刪除記錄等。實(shí)體bean可以用來維護(hù)可以用來維護(hù)一個(gè)或多個(gè)表格的記錄。一個(gè)或多個(gè)表格的記錄。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)53 它們代表了存儲(chǔ)介質(zhì)上的數(shù)據(jù)。它們代表
39、了存儲(chǔ)介質(zhì)上的數(shù)據(jù)。 它們可以在服務(wù)器關(guān)掉了或是崩潰了之后存它們可以在服務(wù)器關(guān)掉了或是崩潰了之后存在。在。 多個(gè)客戶端可以使用代表相同數(shù)據(jù)的多個(gè)客戶端可以使用代表相同數(shù)據(jù)的EJBEJB。 實(shí)體實(shí)體 EJBEJB管理著存儲(chǔ)介質(zhì)上的數(shù)據(jù)在內(nèi)存中管理著存儲(chǔ)介質(zhì)上的數(shù)據(jù)在內(nèi)存中的拷貝。的拷貝。 代表系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)。代表系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)。 6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)實(shí)體實(shí)體beanbean的特點(diǎn):的特點(diǎn):54會(huì)話會(huì)話beanbean(Session beanSession bean) 會(huì)話會(huì)話BeanBean是客戶端應(yīng)用程序的一個(gè)擴(kuò)展,負(fù)是客戶端應(yīng)用程序的一個(gè)擴(kuò)展,負(fù)責(zé)控制工作流(商務(wù)過程
40、)并填補(bǔ)實(shí)體責(zé)控制工作流(商務(wù)過程)并填補(bǔ)實(shí)體beanbean代表的數(shù)據(jù)和與該數(shù)據(jù)交互的商務(wù)邏輯之間代表的數(shù)據(jù)和與該數(shù)據(jù)交互的商務(wù)邏輯之間的空白。其特點(diǎn)是不會(huì)永遠(yuǎn)存在,一旦服務(wù)的空白。其特點(diǎn)是不會(huì)永遠(yuǎn)存在,一旦服務(wù)器關(guān)掉了或崩潰了,它的數(shù)據(jù)就丟失了。器關(guān)掉了或崩潰了,它的數(shù)據(jù)就丟失了。 從客戶端的角度來看,從客戶端的角度來看, 會(huì)話會(huì)話BeanBean是一個(gè)實(shí)現(xiàn)是一個(gè)實(shí)現(xiàn)一些業(yè)務(wù)功能的對(duì)象,客戶端可以自由的操一些業(yè)務(wù)功能的對(duì)象,客戶端可以自由的操作這些對(duì)象來完成它的工作。作這些對(duì)象來完成它的工作。 6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)55無狀態(tài)會(huì)話無狀態(tài)會(huì)話BeanBean:實(shí)現(xiàn)了一次使用的
41、服務(wù):實(shí)現(xiàn)了一次使用的服務(wù)組件。這種服務(wù)組件可以被多次調(diào)用,但組件。這種服務(wù)組件可以被多次調(diào)用,但是無狀態(tài)會(huì)話是無狀態(tài)會(huì)話BeanBean在多次調(diào)用之間不會(huì)保在多次調(diào)用之間不會(huì)保留客戶端相關(guān)數(shù)據(jù)。當(dāng)它的方法被調(diào)用時(shí),留客戶端相關(guān)數(shù)據(jù)。當(dāng)它的方法被調(diào)用時(shí),這個(gè)方法必須完成它的業(yè)務(wù)邏輯而又不能這個(gè)方法必須完成它的業(yè)務(wù)邏輯而又不能對(duì)該會(huì)話對(duì)該會(huì)話BeanBean的屬性進(jìn)行修改。的屬性進(jìn)行修改。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)56有狀態(tài)會(huì)話有狀態(tài)會(huì)話BeanBean:有狀態(tài)會(huì)話:有狀態(tài)會(huì)話BeanBean是被設(shè)計(jì)是被設(shè)計(jì)成可以在方法調(diào)用之間維護(hù)客戶端的狀態(tài),成可以在方法調(diào)用之間維護(hù)客戶端的狀態(tài),
42、就像就像HTTP SessionHTTP Session一樣。有狀態(tài)會(huì)話一樣。有狀態(tài)會(huì)話BeanBean會(huì)會(huì)把這些狀態(tài)存在它的屬性中。把這些狀態(tài)存在它的屬性中。EJB EJB 容器會(huì)保容器會(huì)保證同一個(gè)客戶端的每次調(diào)用都會(huì)被轉(zhuǎn)到這個(gè)證同一個(gè)客戶端的每次調(diào)用都會(huì)被轉(zhuǎn)到這個(gè)保持它的狀態(tài)的有狀態(tài)會(huì)話保持它的狀態(tài)的有狀態(tài)會(huì)話 BeanBean的實(shí)例,的實(shí)例,但不能保證同一個(gè)客戶端的兩次調(diào)用都被轉(zhuǎn)但不能保證同一個(gè)客戶端的兩次調(diào)用都被轉(zhuǎn)到同一個(gè)實(shí)例。到同一個(gè)實(shí)例。 6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)57消息驅(qū)動(dòng)消息驅(qū)動(dòng)beanbean 消息驅(qū)動(dòng)消息驅(qū)動(dòng)BeanBean將將EJBEJB和和JMSJMS的功
43、能結(jié)合在一的功能結(jié)合在一起,來實(shí)現(xiàn)異步消息通信。起,來實(shí)現(xiàn)異步消息通信。消息驅(qū)動(dòng)消息驅(qū)動(dòng)bean適合于任何一個(gè)可以在后臺(tái)運(yùn)行、不需要適合于任何一個(gè)可以在后臺(tái)運(yùn)行、不需要立刻知道結(jié)果的操作。立刻知道結(jié)果的操作。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)58瀏覽器瀏覽器J2EE應(yīng)用服務(wù)器應(yīng)用服務(wù)器實(shí)體實(shí)體bean會(huì)話會(huì)話beanEJB容器容器瀏覽器瀏覽器JSP實(shí)體實(shí)體bean實(shí)體實(shí)體bean數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器服務(wù)器59例如:在一個(gè)預(yù)訂航行得系統(tǒng)例如:在一個(gè)預(yù)訂航行得系統(tǒng)TitanEJB中,中,實(shí)體實(shí)體bean可以代表船艙、顧客、輪船等,會(huì)話可以代表船艙、顧客、輪船等,會(huì)話bean負(fù)責(zé)管理特定的行為,如
44、預(yù)訂,協(xié)調(diào)諸如負(fù)責(zé)管理特定的行為,如預(yù)訂,協(xié)調(diào)諸如乘客、票價(jià)、航行計(jì)劃等與輪船無關(guān)的事務(wù)。乘客、票價(jià)、航行計(jì)劃等與輪船無關(guān)的事務(wù)。會(huì)話會(huì)話bean在完成預(yù)訂活動(dòng)的過程中,能直在完成預(yù)訂活動(dòng)的過程中,能直接使用數(shù)據(jù)庫并且進(jìn)行讀、修改和刪除數(shù)據(jù)。但接使用數(shù)據(jù)庫并且進(jìn)行讀、修改和刪除數(shù)據(jù)。但預(yù)訂一旦完成,預(yù)訂一旦完成, 會(huì)話會(huì)話bean生命周期就結(jié)束了。生命周期就結(jié)束了。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)60F EJB 容器(容器( Container) EJBEJB容器是容器是EJBEJB的執(zhí)行環(huán)境,它通過將的執(zhí)行環(huán)境,它通過將EJB EJB ServerServer提供強(qiáng)大的系統(tǒng)層級(jí)服務(wù),包
45、括:持久性提供強(qiáng)大的系統(tǒng)層級(jí)服務(wù),包括:持久性、安全、并發(fā)性、事務(wù)、分布式對(duì)象和命名,加、安全、并發(fā)性、事務(wù)、分布式對(duì)象和命名,加入到組件中的。從本質(zhì)上來說,入到組件中的。從本質(zhì)上來說,EJBEJB容器在客戶容器在客戶端和端和beansbeans之間充當(dāng)不可見的中間人。他們負(fù)責(zé)之間充當(dāng)不可見的中間人。他們負(fù)責(zé)連接客戶端到連接客戶端到beansbeans、執(zhí)行事務(wù)協(xié)調(diào)、提供持久、執(zhí)行事務(wù)協(xié)調(diào)、提供持久性、管理性、管理beanbean的生命周期及其他任務(wù)。的生命周期及其他任務(wù)。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)61F EJB EJB服務(wù)器服務(wù)器 一個(gè)遵循一個(gè)遵循EJBEJB的應(yīng)用服務(wù)器就叫的應(yīng)
46、用服務(wù)器就叫EJBEJB服務(wù)服務(wù)器。器。 EJBEJB服務(wù)器必須提供一組標(biāo)準(zhǔn)的服務(wù)來支服務(wù)器必須提供一組標(biāo)準(zhǔn)的服務(wù)來支持持EJBEJB組件,提供一個(gè)支持用組件,提供一個(gè)支持用EJBEJB技術(shù)開發(fā)的應(yīng)技術(shù)開發(fā)的應(yīng)用程序執(zhí)行的環(huán)境,用于管理和協(xié)調(diào)應(yīng)用程序用程序執(zhí)行的環(huán)境,用于管理和協(xié)調(diào)應(yīng)用程序的資源配置。的資源配置。EJBEJB服務(wù)器必須提供一個(gè)或多個(gè)服務(wù)器必須提供一個(gè)或多個(gè)EJBEJB容器,一個(gè)容器,一個(gè)EJBEJB容器管理在它其中的容器管理在它其中的EJBEJB組組件。件。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)62F EJB EJB對(duì)象(對(duì)象( EJB ObjectEJB Object) EJ
47、BEJB對(duì)象接口提供對(duì)對(duì)象接口提供對(duì)EJBEJB組件中業(yè)務(wù)邏組件中業(yè)務(wù)邏輯方法的存取。一個(gè)輯方法的存取。一個(gè)EJBEJB對(duì)象表示一個(gè)對(duì)象表示一個(gè)EJBEJB組件組件的客戶視圖,的客戶視圖,EJB ObjectEJB Object將對(duì)象的所有與應(yīng)用將對(duì)象的所有與應(yīng)用相關(guān)的接口陳列出來,但不允許把相關(guān)的接口陳列出來,但不允許把EJBEJB容器管容器管理和控制該對(duì)象的接口顯露出來。理和控制該對(duì)象的接口顯露出來。 EJBEJB對(duì)象允對(duì)象允許許EJBEJB容器截取在容器截取在EJBEJB組件之上的所有操作。組件之上的所有操作。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)63F EJB EJB部署部署 配置描述
48、器的功能類似于屬性文件,用于描配置描述器的功能類似于屬性文件,用于描述組成述組成beanbean類和運(yùn)行時(shí)怎樣管理類和運(yùn)行時(shí)怎樣管理beanbean。在配置過。在配置過程中,配置描述器被讀取,它的屬性也顯示出來程中,配置描述器被讀取,它的屬性也顯示出來以便進(jìn)行編輯。配置者可以修改和添加適合應(yīng)用以便進(jìn)行編輯。配置者可以修改和添加適合應(yīng)用程序操作環(huán)境的設(shè)置,生成在程序操作環(huán)境的設(shè)置,生成在EJBEJB服務(wù)器中配置服務(wù)器中配置beanbean所需的整個(gè)支持基礎(chǔ)結(jié)構(gòu),包括將所需的整個(gè)支持基礎(chǔ)結(jié)構(gòu),包括將beanbean加入加入命名系統(tǒng)并生成命名系統(tǒng)并生成beanbean的的EJBEJB對(duì)象和對(duì)象和EJBhomeEJBhome、持久、持久性基礎(chǔ)結(jié)構(gòu)、事務(wù)支持、決定性基礎(chǔ)結(jié)構(gòu)、事務(wù)支持、決定beanbean的引用等等。的引用等等。6. 組件組件技術(shù)技術(shù) EJB基礎(chǔ)基礎(chǔ)6465 EJBEJB設(shè)計(jì)目標(biāo)設(shè)計(jì)目標(biāo) 為使用可重用組件實(shí)現(xiàn)多層應(yīng)用程序中的為使用可重用組件實(shí)現(xiàn)多層應(yīng)用程序中的商業(yè)邏輯定義的體系結(jié)構(gòu)標(biāo)準(zhǔn)商業(yè)邏輯定義的體系結(jié)構(gòu)標(biāo)準(zhǔn)EJB規(guī)范。規(guī)范。H EJBEJB體系結(jié)構(gòu)將成為用體系結(jié)構(gòu)將成為用JavaJava編程語言建造分布編程語言建造分布式、面向?qū)ο笊虡I(yè)應(yīng)用程序的標(biāo)準(zhǔn)組件結(jié)構(gòu)。式、面向?qū)ο?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 華東師范大學(xué)《風(fēng)景園林設(shè)計(jì)實(shí)驗(yàn)古典園林景觀設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢工程大學(xué)郵電與信息工程學(xué)院《立體設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京師范大學(xué)泰州學(xué)院《大學(xué)美育》2023-2024學(xué)年第二學(xué)期期末試卷
- 南昌航空大學(xué)《電路(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南檢察職業(yè)學(xué)院《造型基礎(chǔ)(工設(shè))》2023-2024學(xué)年第二學(xué)期期末試卷
- 河源廣東河源紫金縣專門學(xué)校駐校教官招聘7人筆試歷年參考題庫附帶答案詳解
- 山東農(nóng)業(yè)大學(xué)《組成原理與接口技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西體育職業(yè)學(xué)院《聯(lián)合創(chuàng)作預(yù)案》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國礦業(yè)大學(xué)(北京)《基礎(chǔ)造型》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南2025年河南省工業(yè)學(xué)校招聘20人筆試歷年參考題庫附帶答案詳解-1
- 2025下半年上海事業(yè)單位招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 天津市和平區(qū)2024-2025學(xué)年高一(上)期末質(zhì)量調(diào)查物理試卷(含解析)
- 《呼吸》系列油畫創(chuàng)作中詩意建構(gòu)的研究與實(shí)踐
- 客流統(tǒng)計(jì)系統(tǒng)施工方案
- 船舶制造設(shè)施安全生產(chǎn)培訓(xùn)
- 全國駕駛員考試(科目一)考試題庫下載1500道題(中英文對(duì)照版本)
- TSG 07-2019電梯安裝修理維護(hù)質(zhì)量保證手冊程序文件制度文件表單一整套
- 設(shè)備損壞評(píng)估報(bào)告范文
- 標(biāo)準(zhǔn)和計(jì)量管理制度范文(2篇)
- 透析患者心理問題護(hù)理干預(yù)
- 孕前口腔護(hù)理保健
評(píng)論
0/150
提交評(píng)論