




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