




已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1,第4章 基于構(gòu)件開發(fā),本章內(nèi)容,41 構(gòu)件方法的目標(biāo) 42 定義構(gòu)件 43 構(gòu)件粒度 44 構(gòu)件環(huán)境 45 構(gòu)件在整體中的位置 46 部署構(gòu)件 47 構(gòu)件規(guī)范 48 基于構(gòu)件開發(fā)的局限性與不適用之處,2,41 構(gòu)件方法的目標(biāo),應(yīng)用構(gòu)架應(yīng)關(guān)注的方向 基于構(gòu)件開發(fā)的目標(biāo) 基于構(gòu)件開發(fā)的目的 構(gòu)件的要素 CBD方法應(yīng)考慮的主要問題,3,網(wǎng)絡(luò)經(jīng)濟(jì)時代對軟件工作者的挑戰(zhàn),最大程度地利用在軟件或硬件基礎(chǔ)設(shè)施上的投資; 把新技術(shù)的潛力最大限度地發(fā)掘出來; 驅(qū)動新的業(yè)務(wù)先導(dǎo),在解決方案市場中提供一個有競爭力的方案 。,計算技術(shù)經(jīng)歷了“以機(jī)器為中心-以應(yīng)用為中心-以企業(yè)為中心”的變化,4,應(yīng)用構(gòu)架應(yīng)關(guān)注的方向, 應(yīng)用程序的解決方案重點(diǎn)被放在對遺產(chǎn)系統(tǒng)、軟件包和新開發(fā)系統(tǒng)的組裝和集成技術(shù)上; Internet家電和手持設(shè)備需求的增加,要求設(shè)備必須支持真正的、簡便的“即插即用”,在Internet上它們要和電話類似,插上就能工作; 面向服務(wù)的軟件增加,以及Web Services和網(wǎng)格服務(wù)廣泛應(yīng)用,“無需管理”網(wǎng)絡(luò)的需求也就越強(qiáng)烈,用戶可以希望能夠使用所有網(wǎng)絡(luò)上的軟件服務(wù),以及設(shè)備;打印機(jī)、文件服務(wù)器、掃描儀以及大量的純軟件服務(wù),無需任何配置、管理或安裝驅(qū)動程序就可以輕松使用。,要達(dá)到以上幾點(diǎn),應(yīng)用程序的開發(fā)方式和應(yīng)用程序構(gòu)架就要做許多改變。,5,未來的應(yīng)用程序構(gòu)架和應(yīng)用程序支持工具,6,基于構(gòu)件方法的目標(biāo),改進(jìn)軟件的開發(fā)過程,手段,通過一些預(yù)先構(gòu)建的軟件構(gòu)件來組裝成新的軟件,而不是從頭開發(fā)。,根據(jù)構(gòu)件功能完成系統(tǒng)設(shè)計; 把部分應(yīng)用程序外包; 關(guān)注使用基于接口的設(shè)計技術(shù)來組裝構(gòu)件。,CBD:有計劃地集成現(xiàn)有軟件部分來進(jìn)行軟件開發(fā),CBD-Component-Based Development,7,基于構(gòu)件開發(fā)的目的,遏止復(fù)雜性 便于維護(hù) 支持并行和分布式的開發(fā) 減少重復(fù)工作 縮短整個工程的工期 提高一致性 提高生產(chǎn)率,把變化局限在較小的范圍,減少查看代碼量,造成重復(fù)工作的原因是由于軟件用于支持過程的,而過程不同是很自然的事情。采用CBD,可以調(diào)整前一應(yīng)用,來滿足新用戶的需求。,構(gòu)件功能是單一的,無二義性,不會因一構(gòu)件的改變,而影響其他構(gòu)件。,8,構(gòu)件的要素,規(guī)格說明 一個或多個實現(xiàn) 構(gòu)件標(biāo)準(zhǔn) 包裝方法 部署方法,是提供服務(wù)的抽象,它建立在接口概念之上的,并作為客戶方和提供方之間的契約.,構(gòu)件內(nèi)部實現(xiàn)具有很大的自由度,開發(fā)者可以選擇任何一種認(rèn)為是合適的實現(xiàn)方法(包括對編程語言的選擇)。唯一的限制是,要滿足在規(guī)格說明中定義的行為。,是約束條件,構(gòu)件必須安排在一個定義良好、合理的約束條件環(huán)境中,這個環(huán)境也稱為構(gòu)件模型。,構(gòu)件模型:支持構(gòu)件的服務(wù),與使用構(gòu)件服務(wù)必須遵守的規(guī)則。,包裝是使用的構(gòu)件組所必要的注冊機(jī)制,即安裝所必須的系統(tǒng)設(shè)置。,構(gòu)件組(包):是根據(jù)需要,組織構(gòu)件成為一組可替換的服務(wù)。,部署是創(chuàng)建構(gòu)件應(yīng)用的可執(zhí)行實例,它使構(gòu)件在此應(yīng)用中執(zhí)行,并允許構(gòu)件之間發(fā)生交互。,9,CBD方法應(yīng)考慮的主要問題,提供可復(fù)用服務(wù)的含義 如何交付獨(dú)立的服務(wù),10,可復(fù)用服務(wù)提供,可復(fù)用服務(wù)提供意味著某個構(gòu)件提供了其他一些構(gòu)件希望訪問的功能。,基于構(gòu)件開發(fā)方法的基本原則,每個構(gòu)件應(yīng)該有描述該構(gòu)件功能,以及當(dāng)使用其服務(wù)時,它將進(jìn)行哪些行為的規(guī)格說明; 規(guī)格說明和實現(xiàn)之間分離。,借助于構(gòu)件的規(guī)格說明書,潛在的用戶或客戶端就可以關(guān)注整體的解決方案,而不需要考慮這些服務(wù)是如何實現(xiàn)的; 開發(fā)人員可按照規(guī)格說明的要求,將相應(yīng)的服務(wù)用代碼和數(shù)據(jù)具體地實現(xiàn);,規(guī)格說明帶來的好處,支持相同規(guī)格說明的兩個構(gòu)件可以相互替代; 實現(xiàn)有效的包裝。,11,服務(wù)的獨(dú)立交付,獨(dú)立交付的構(gòu)件必須是上下文無關(guān)的。,構(gòu)件上下文無關(guān)的基本概念,構(gòu)件必須相互合作實現(xiàn)一個解決方案,但它們不能相互干擾,特別是: 構(gòu)件之間不能有嵌入式的相關(guān)性存在; 構(gòu)件之間不能直接共享一個公共的數(shù)據(jù)結(jié)構(gòu)。,12,42 定義構(gòu)件,構(gòu)件是預(yù)先構(gòu)建的 構(gòu)件特征 構(gòu)件組裝的部署 構(gòu)件上下環(huán)境 支持技術(shù) 構(gòu)件的定義,13,構(gòu)件是預(yù)先構(gòu)建的,預(yù)先構(gòu)建的構(gòu)件的原因, 開發(fā)費(fèi)用要求 應(yīng)用集成的要求 維護(hù)要求 有利于漸進(jìn)開發(fā)的方式,在系統(tǒng)運(yùn)行時,構(gòu)件仍然保持可分離的標(biāo)識,因為它沒有前期重用源代碼的開發(fā)過程,所以它比在復(fù)用源代碼的費(fèi)用要低。,用當(dāng)初不可能估計到的方式復(fù)用已有的應(yīng)用。同時,必須考慮“非干擾式”復(fù)用。,需要檢查的代碼數(shù)量盡可能的少。,只要新的構(gòu)件提供所要替換或改變構(gòu)件一樣的功能,則就不會影響到使用其他的構(gòu)件。,14,1)構(gòu)件是黑盒,只能通過其接口訪問, 內(nèi)部結(jié)構(gòu)是不可見的,用戶只對它通過確定的接口所提供的功能或“服務(wù)”感興趣。其他構(gòu)件只有通過這個明確定義的接口,才能與該構(gòu)件相連。 為了使用一個構(gòu)件,必須能夠得到關(guān)于它的接口知識,要么通過相關(guān)的規(guī)格說明書,要么可以向該構(gòu)件詢問關(guān)于它所提供的接口的信息。,構(gòu)件特征,2)構(gòu)件是可分離的,能夠從目前的上下文環(huán)境中分離出來,并在另一個上下文環(huán)境中使用它。,15,構(gòu)件組裝的部署, 構(gòu)件不是在編譯之前組裝的,而且在編譯之后; 構(gòu)件的裝配可能涉及到幾層配置或定制; 一個構(gòu)件可以部署很多實例,每個實例都是獨(dú)立的,并且在它自己的進(jìn)程中執(zhí)行。 雖然也有情況是構(gòu)件只有在運(yùn)行時刻才進(jìn)行識別和鏈接(如Jini),但是在大多數(shù)業(yè)務(wù)環(huán)境下,應(yīng)用是在部署之前進(jìn)行組裝的。,16,構(gòu)件上下環(huán)境,使用構(gòu)件意味著需要在一些層次上對開發(fā)方式進(jìn)行標(biāo)準(zhǔn)化,這些層次包括:業(yè)務(wù)邏輯、軟件基礎(chǔ)設(shè)施和接口標(biāo)準(zhǔn)。,支持技術(shù),構(gòu)件需要一個支持環(huán)境,構(gòu)件技術(shù)通常提供一個運(yùn)行時刻環(huán)境,組裝好的程序可以在這個環(huán)境中運(yùn)行,輔助組裝和部署工具也需要在此環(huán)境下工作,支持構(gòu)件的運(yùn)行時刻環(huán)境通常稱為“容器”。,17,構(gòu)件的定義,構(gòu)件是一個獨(dú)立發(fā)布的功能部分,可以通過它的接口訪問它的服務(wù)。,該定義強(qiáng)調(diào)了構(gòu)件很多重要方面 : 它將構(gòu)件定義為一個可交付的單元; 它提到構(gòu)件會提供一些有用的功能; 構(gòu)件通過接口提供服務(wù)。,構(gòu)件含義,軟件系統(tǒng)的一個有用片段,它可以與其它片段組裝成一起形成更大的片段,或是整個的解決方案。,18,43 構(gòu)件粒度,0 構(gòu)件對應(yīng)應(yīng)用的比例 100%,結(jié)論,粒度可以用構(gòu)件所提供的功能數(shù)目來度量; 大的構(gòu)件對業(yè)務(wù)來說具有更大的價值; 最大類型的構(gòu)件是預(yù)先構(gòu)建的應(yīng)用軟件包,但是,要找到一個在業(yè)務(wù)上能充分滿足需要的應(yīng)用軟件包卻常常很困難; 大的構(gòu)件本身也應(yīng)該用較小的構(gòu)件來構(gòu)建; 最有價值的構(gòu)件會大一些,而不是小一些。,19,44 構(gòu)件環(huán)境,構(gòu)件的互操作性 不同技術(shù)之間的互操作性 構(gòu)件模型 包裝現(xiàn)有的應(yīng)用 平臺無關(guān)性 服務(wù)提供,20,不同技術(shù)之間的互操作性,構(gòu)件的互操作性,實現(xiàn)互操作的基本要求,即構(gòu)件必須對使用到的接口具有統(tǒng)一的理解,并用一致的方式來描述接口??墒箻?gòu)件具有上下文無關(guān)性。,用一種標(biāo)準(zhǔn)的方式來定義構(gòu)件間的接口。,使用中介技術(shù),實現(xiàn)構(gòu)件在不同技術(shù)之間的互操作,中介層將接口翻譯數(shù)從n(n-1)降低到2(n-1)次,21,構(gòu)件模型,參考模型 描述模型 實現(xiàn)模型,22,參考模型,3C構(gòu)件模型,1)概念 (Concept) 關(guān)于“構(gòu)件做什么”的抽象描述,概念包括接口規(guī)約和語義描述兩部分。 2)內(nèi)容(Content) 概念的具體實現(xiàn),描述構(gòu)件如何完成概念所刻畫的功能。內(nèi)容是對一般用戶隱蔽的信息,只有那些企圖修改構(gòu)件的工程師,才需要了解這些信息。 3)語境(Context) 描述構(gòu)件和外圍環(huán)境在概念級和內(nèi)容級的關(guān)系。語境刻畫構(gòu)件的應(yīng)用環(huán)境,為構(gòu)件的選用和適應(yīng)性提供指導(dǎo)。,23,描述模型,REBOOT模型,REBOOT(Reuse Based on Object-Oriented Technology基于面向?qū)ο蠹夹g(shù)的復(fù)用)構(gòu)件模型,1)抽象(obstraction) 它是構(gòu)件概念的抽象性描述。 2)操作(operation) 它是構(gòu)件所提供的操作描述。 3)操作對象(operand) 它描述操作的對象。 4)依賴(dependency) 它描述構(gòu)件與外界的依賴關(guān)系。,24,實現(xiàn)模型, OMG的CORBA Sun公司的J2EE 微軟公司的COM/DCOM,這些實現(xiàn)模型將構(gòu)件的接口與實現(xiàn)進(jìn)行了有效的分離 ,每個組件的接口都將以標(biāo)準(zhǔn)的方式定義。 解決了諸如一個構(gòu)件怎樣使得其他構(gòu)件獲得它提供的服務(wù),構(gòu)件怎樣被命名,以及怎樣在運(yùn)行時發(fā)現(xiàn)新構(gòu)件和它們的服務(wù)這些問題。,25,包裝現(xiàn)有的應(yīng)用,目的是讓現(xiàn)存的軟件在自己的構(gòu)件環(huán)境下能工作,實現(xiàn)現(xiàn)存應(yīng)用與其他構(gòu)件的互操作。,方法,為現(xiàn)存的軟件加上門面(或叫外觀)構(gòu)成包裝構(gòu)件,使它能在給定的構(gòu)件環(huán)境中操作。,包裝構(gòu)件功能,提供標(biāo)準(zhǔn)構(gòu)件接口 提供與現(xiàn)存應(yīng)用相關(guān)的接口,這樣包裝構(gòu)件與現(xiàn)存應(yīng)用代碼組成了虛擬構(gòu)件,稱為“遺留系統(tǒng)構(gòu)件”。,26,平臺無關(guān)性,擴(kuò)大構(gòu)件的復(fù)用環(huán)境,服務(wù)提供,“服務(wù)提供”指在構(gòu)建應(yīng)用構(gòu)件時,所要提供的公共服務(wù)環(huán)境。需要有一種為此應(yīng)用程序中所有構(gòu)件能使用的、共享的構(gòu)件基礎(chǔ)設(shè)施。,解決辦法使用Java技術(shù),27,構(gòu)件基礎(chǔ)設(shè)施中考慮的問題,構(gòu)件模型 一組使用這種基礎(chǔ)設(shè)施的構(gòu)件都必須遵守的協(xié)議、標(biāo)準(zhǔn)、約束以及責(zé)任。 實現(xiàn)協(xié)作和同步的一組機(jī)制 使得構(gòu)件之間可以相互通信,這些機(jī)制使用一些特定的技術(shù),并且與特定的平臺相關(guān)。,基礎(chǔ)設(shè)施處理的功能,提供通用的服務(wù): 定義構(gòu)件接口的標(biāo)準(zhǔn)方法; 命名、安全、事務(wù)以及事件處理等服務(wù)的管理 ; 處理對于不同提供商在不同平臺上的數(shù)據(jù)庫更新。,28,基礎(chǔ)設(shè)施作用, 應(yīng)用程序的開發(fā)者不需要再承受通用的服務(wù)所帶來的負(fù)擔(dān)了; 應(yīng)用程序的開發(fā)者可以將注意力集中于他們業(yè)務(wù)級構(gòu)件的應(yīng)用功能的開發(fā)上來; 應(yīng)用程序的開發(fā)者無需對支持跨異構(gòu)網(wǎng)絡(luò)平臺的復(fù)雜代碼進(jìn)行開發(fā)。,29,45 構(gòu)件在整體中的位置, 構(gòu)件是整體中的可分離的實體; 每個擁有各自范圍的構(gòu)件能確保其在整體中的獨(dú)立性; 構(gòu)件可以從第三方購買; 構(gòu)件一個重要的需求是,不僅要在一個組織內(nèi)部實現(xiàn)應(yīng)用集成,而且要與供應(yīng)鏈上的其他組織實現(xiàn)集成; 構(gòu)件可和其組織以外的軟件集成。,30,46 部署構(gòu)件,定制和配置 組裝 接口不匹配原因和解決方法 服務(wù)粒度上的不匹配問題和解決方法 更改處理,31,定制和配置,通過以下方式實現(xiàn)定制: 提供配置數(shù)據(jù),這些數(shù)據(jù)將作為構(gòu)件運(yùn)行時的參數(shù); 在構(gòu)件中內(nèi)建立配置或定制服務(wù),這種配置服務(wù)可能只在組裝或部署時提供,在構(gòu)件投入運(yùn)行時,可以禁止或取消。,32,組裝:把構(gòu)件粘在一起,通過構(gòu)件規(guī)格說明書確定構(gòu)件的匹配程度。構(gòu)件規(guī)格說明書是由構(gòu)件的開發(fā)者提供的,它定義了構(gòu)件的接口,并說明了與構(gòu)件的部署相關(guān)的其他方面的問題,主要是關(guān)于如何部署的限制條件,諸如構(gòu)件運(yùn)行的操作系統(tǒng)和它所需要的構(gòu)件服務(wù)。 “膠水(glue)”就是處于兩個接口之間,讓它們能相互匹配的代碼。,接口不匹配的原因,參數(shù)傳遞的順序可能與被調(diào)用的服務(wù)所要求的順序不一致; 調(diào)用構(gòu)件沒有提供被調(diào)用的服務(wù)可能需要的參數(shù); 調(diào)用構(gòu)件提供了被調(diào)用服務(wù)不要求的參數(shù)。 所需的參數(shù)格式可能與傳遞過來的參數(shù)格式不一樣,或者使用了不同的值。,使用XML語言解決構(gòu)件接口不匹配問題,33,使用XML語言解決構(gòu)件接口匹配問題,XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語言)是基于SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)的一種通用標(biāo)記語言,XML的目標(biāo)主要是在Web上應(yīng)用。因為XML是可擴(kuò)展的,所以它的標(biāo)記符號集是不受限制的。 XML通過標(biāo)記符來標(biāo)記數(shù)據(jù),從而說明數(shù)據(jù)的含義。,XML益處,它解決了接口傳遞參數(shù)順序不同的問題。由于每個參數(shù)都由一個標(biāo)記符來表示,傳遞參數(shù)的順序就不必符合被調(diào)用的服務(wù)的要求。映射的管理可以與參數(shù)的順序無關(guān)。 由于使用標(biāo)記符來標(biāo)記每個數(shù)據(jù)字段,這些標(biāo)記符可以用于表示每個字段的含義。 如果采用XML,詞匯和術(shù)語可以標(biāo)準(zhǔn)化。如果各方面的XML中的業(yè)務(wù)詞匯不匹配,XML提供了在不同的“方言”之間實現(xiàn)轉(zhuǎn)換的機(jī)制,即通過XSL轉(zhuǎn)換。,34,與遺留系統(tǒng)集成時,存在服務(wù)粒度上的不匹配問題,調(diào)用構(gòu)件認(rèn)為調(diào)用一個單獨(dú)的服務(wù)就可以了,而實際卻需要調(diào)用多個服務(wù); 如果不提供更多的信息,就不能調(diào)用一項服務(wù)。,解決方法,使用包裝構(gòu)件來解決。 包裝構(gòu)件和被包裝的應(yīng)用一起被視為一個新的邏輯上的構(gòu)件。這樣將來可以選擇更合適的構(gòu)件來替換這個包裝構(gòu)件。,35,集成(組裝)的最佳方法,全面使用一致的構(gòu)件參考模型,理由,模型明確定義了應(yīng)該有哪些構(gòu)件。它們應(yīng)該提供的服務(wù),以及創(chuàng)建滿足這種模型的構(gòu)件所需的工作,而不要使用一種隨心所欲的方式簡單地把東西堆砌在一起。當(dāng)需求出現(xiàn)時,這會使構(gòu)件的重新連接更為容易,同時這也創(chuàng)造了更為簡單的總體圖景。,36,更改處理,構(gòu)件更改處理目的:除錯或者增加功能。 除錯通常不會涉及構(gòu)件接口或規(guī)格說明的改變,而增加功能可能涉及到這些接口或規(guī)格說明改變。,更改會引起的問題,在一種上下文環(huán)境下所做的改動在另一種上下文環(huán)境中卻不可接受 ; 當(dāng)多個構(gòu)件利用某一個構(gòu)件的服務(wù),而這個構(gòu)件又被修改時,也會產(chǎn)生類似的問題。,解決問題的方法,凍結(jié)已發(fā)布的接口,然后,進(jìn)行“非干擾式”的更改。 當(dāng)新的需求出現(xiàn),而無法通過使用已有接口來滿足時,構(gòu)件就簡單地在原來接口的基礎(chǔ)上增加一個新的接口
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)園區(qū)規(guī)劃設(shè)計與質(zhì)量監(jiān)管策略
- 工業(yè)機(jī)器人市場及技術(shù)發(fā)展趨勢
- 工業(yè)機(jī)器人技術(shù)與應(yīng)用趨勢
- 工業(yè)機(jī)器人技術(shù)及應(yīng)用領(lǐng)域探討
- 工業(yè)廢物處理與循環(huán)經(jīng)濟(jì)
- 工業(yè)自動化中機(jī)器視覺的發(fā)展趨勢
- 工業(yè)污染防治技術(shù)
- 工業(yè)綠色化改造的實踐與思考
- 工業(yè)質(zhì)量管理與質(zhì)量控制方法探討
- 工業(yè)自動化技術(shù)的應(yīng)用與發(fā)展趨勢
- 2025云南省德宏州瑞麗市人民醫(yī)院合同制聘用人員招聘(2人)筆試參考題庫及答案解析
- 無人配送車輛故障診斷與維護(hù)-深度研究
- 2024北京東城區(qū)初一(下)期末英語試題和答案
- 腫瘤患者化療的健康教育
- 2025年雙方協(xié)商確立房產(chǎn)產(chǎn)權(quán)歸屬協(xié)議
- 香料限公司年產(chǎn)香精11000噸建設(shè)項目環(huán)評資料環(huán)境影響
- 產(chǎn)業(yè)創(chuàng)新生態(tài)協(xié)同機(jī)制-深度研究
- 2025年中國PCR儀市場全面調(diào)研及行業(yè)投資潛力預(yù)測報告
- 國際共產(chǎn)主義運(yùn)動史知到智慧樹章節(jié)測試課后答案2024年秋聊城大學(xué)
- 2025年醫(yī)院信息科數(shù)據(jù)安全管理計劃
- 2025中智集團(tuán)招聘重要崗位高頻重點(diǎn)提升(共500題)附帶答案詳解
評論
0/150
提交評論