版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、系統(tǒng)集成項目管理工程師課程輔導3,北京理工大學 計算機學院徐 進,1,3.5 系統(tǒng)架構(gòu)設計,2,3.5.1 軟件體系結(jié)構(gòu)基本概念3.5.2 軟件體系結(jié)構(gòu)風格3.5.3 軟件體系結(jié)構(gòu)應用框架3.5.4 軟件設計模式,3,3.5.1 軟件體系結(jié)構(gòu)基本概念 1.定義軟件體系結(jié)構(gòu),也稱軟件架構(gòu),是軟件工程的重要研究領域。從90年代開始,很多專家學者對軟件體系結(jié)構(gòu)引起廣泛的關注,到目前為止,軟件體系結(jié)構(gòu)并沒有統(tǒng)一的定義,
2、綜合軟件體系結(jié)構(gòu)的定義,只有比較權威的定義性論述。權威的定義性論述軟件體系結(jié)構(gòu)是設計過程的一個層次,它處理那些超越算法和數(shù)據(jù)結(jié)構(gòu)的設計,研究整體結(jié)構(gòu)設計和描述方法。體系結(jié)構(gòu)包括:總體組織結(jié)構(gòu)、全局控制結(jié)構(gòu)、通信和同步以及數(shù)據(jù)存取的協(xié)議、設計元素的功能、物理分布與合成、設計方案的選擇、評估和實現(xiàn)等。,4,理解要點: 軟件體系結(jié)構(gòu)是軟件設計過程的一個層面,是相對獨立的、有價值的軟件設計方法的總結(jié),可作為軟件開發(fā)指導性的策略和途徑強調(diào)
3、設計過程,而非分析的過程。分析的目標是理解和表達,而設計的目標是實現(xiàn)非用戶的觀點,即非功能的觀點。對于用戶,結(jié)構(gòu)是軟件系統(tǒng)功能的組合,而對于設計者,結(jié)構(gòu)是為特定目標而設立的、軟件成分以及成分之間的關系。軟件體系結(jié)構(gòu)的研究,包括:怎樣選擇、怎樣評估,以及怎樣實現(xiàn)一個軟件結(jié)構(gòu)的問題,5,2. 軟件的基本結(jié)構(gòu)軟件技術的發(fā)展與硬件技術密不可分。軟件結(jié)構(gòu)的基礎受硬件結(jié)構(gòu)的制約,目前,在計算機基本硬件結(jié)構(gòu)的基礎之上,軟件體系結(jié)構(gòu)的基本元素和結(jié)
4、構(gòu)包括如下幾種:數(shù)據(jù)類型結(jié)構(gòu),包括基本數(shù)據(jù)類型結(jié)構(gòu)、抽象數(shù)據(jù)類型結(jié)構(gòu)控制流連接結(jié)構(gòu),也稱調(diào)用結(jié)構(gòu)包括:條件連接結(jié)構(gòu)、循環(huán)連接結(jié)構(gòu)、控制轉(zhuǎn)移結(jié)構(gòu);其調(diào)用連接方式,包括鏈詢式、分析式、代理式中斷觸發(fā)連接結(jié)構(gòu),包括內(nèi)部進程連接結(jié)構(gòu)、獨立進程同步連接結(jié)構(gòu)、獨立進程異步連接結(jié)構(gòu)層次結(jié)構(gòu),包括單向依賴層次結(jié)構(gòu)、開放式層次結(jié)構(gòu),6,3.軟件體系結(jié)構(gòu)設計的基本策略和原則在大量的軟件開發(fā)的設計實踐中,始終存在對設計原則和策略的探討和總結(jié),很多被
5、普遍性采用的原則和策略,一直被廣泛使用,并不斷驗證和改進,它們獨立于具體的軟件開發(fā)方法。這些原則和策略包括:,?抽象 ?分而治之,層次化分解 ?封裝和信息隱蔽 ?模塊化,?高內(nèi)聚和低耦合?關注點分離?策略和實現(xiàn)分離?接口和實現(xiàn)分離,7,抽象抽象,是人們認識復雜事物的基本方法。它的實質(zhì)是集中表現(xiàn)事物的主要特征和屬性,隱蔽和忽略細節(jié)部分。運用抽象,能概括普遍的、具有相同特征和屬性的事物,簡化表達和理解,便于利用。軟
6、件設計中運用的抽象包括:數(shù)據(jù)抽象:描述特定數(shù)據(jù)對象的屬性集合過程抽象:特定操作過程命名的操作序列控制抽象:隱含內(nèi)部細節(jié)的控制邏輯,8,分而治之,層次式分解將大問題分解,從小問題入手,逐一解決整個大問題,這是人們處理問題的通常的方式。軟件設計中運用的分解包括:橫向分解:按照從基礎問題到上層問題的分解方式,將大問題按照層次分解成相互依賴的多層,每層完成的局部解,提供對上層的支持縱向分解:在橫向分解的基礎上,對每層的求解,再分解成
7、相互獨立的多項求解,9,封裝和信息隱蔽封裝是為了信息隱蔽,隱蔽是為了減小出錯帶來損失,而出錯是軟件系統(tǒng)不可避免的事實。無論是多么精心設計,嚴格實施,以及反復測試,軟件系統(tǒng)的錯誤就像與生俱來不可回避。局部化設計將處理信息限制在局部處理過程中,避免與外部其它處理共享,減少出錯的幾率,并且,出錯后的影響面也會較小。封裝性設計將處理過程盡量隱蔽,使外界得不到,只留出簡單而統(tǒng)一的訪問接口。這樣,使軟件處理的各個部分相互獨立,減小系統(tǒng)擴充
8、或修改時的出錯的機率。,10,模塊化模塊是可被獨立命名、具有獨立作用的軟件成分。軟件設計的模塊化,是以提高系統(tǒng)的可構(gòu)造性為目標的。為了軟件系統(tǒng)的可擴充性、可修改性,設計可靈活的拆解,或者可靈活組裝的軟件構(gòu)造,則成為軟件設計者的愿望和責任。模塊設計的原則包括:可分解性:問題本身可由多個部分的解合成,則應分解問題成為多個處理模塊可組裝性:可作為獨立的部分被組裝利用,得到一個更大的解,則包裝它成為獨立的模塊可理解性:模塊需要容易理解,
9、不能被理解或者理解多義的軟件成分不能作為獨立模塊連續(xù)性: 對于一個軟件成分的修改,只作用于它自身,這樣的模塊才是好的模塊保護性: 如果模塊出現(xiàn)異常,對于系統(tǒng)的影響較小,甚至沒有影響,這樣的模塊才是好的模塊,11,高內(nèi)聚和低耦合內(nèi)聚性內(nèi)聚性是指軟件成份的內(nèi)部特性。成份中各處理元素的關系越緊密越好。耦合性耦合性是指軟件成份之間的關系特性。軟件成份之間的關系越松散越好。,12,12,偶然內(nèi)聚:各處理元素之間并沒有關系,只是把分
10、散在多處的功能合在一起邏輯內(nèi)聚:僅僅是邏輯功能相關的處理元素合在一起時間內(nèi)聚:需要在同一時間執(zhí)行,并無功能邏輯的處理元素合在一起過程內(nèi)聚:過程順序相關的功能元素合在一起通訊內(nèi)聚:需要對相同的外部數(shù)據(jù)進行操作的處理元素合在一起順序內(nèi)聚:一個軟件成份的輸出是另一個軟件成份的輸入,將它們合起來功能內(nèi)聚:只完成單一的功能,,內(nèi)容耦合:一個軟件成份直接修改另一個軟件成份的內(nèi)容公共耦合:兩個以上的軟件成份共同處理外部的一個公共數(shù)據(jù)控
11、制耦合:軟件成份的動作依賴于接收的控制信號標記耦合:軟件成份的接口參數(shù)具有一個復雜的內(nèi)部結(jié)構(gòu)數(shù)據(jù)耦合:軟件成份之間僅是數(shù)據(jù)傳遞,,內(nèi)聚,耦合,緊密,松散,松散,緊密,13,關注點分離關注點:關注點是軟件系統(tǒng)中特別需要考慮的多變部分。例如,軟件成分的執(zhí)行會受到運行環(huán)境、設備條件,以及通信設施等的制約和限制,為了適應不同的運行環(huán)境和條件,需要進行必要的參數(shù)調(diào)整和驅(qū)動配置。為此進行的這部分設計和開發(fā),即是所謂的關注點。關注點分離設計
12、:軟件系統(tǒng)中涉及關注點的成分應該與非關注點的成分分為相互獨立的部分,這樣的設計會使未來的系統(tǒng)容易配置,靈活適應多種不同的情況。,14,策略和實現(xiàn)分離策略策略是指軟件中用于處理選擇控制的決策成分。通過信息語義解釋、參數(shù)條件等,進行分析判斷,以決定怎樣的具體數(shù)據(jù)加工和功能實現(xiàn)。實現(xiàn)實現(xiàn)是指軟件系統(tǒng)中,有規(guī)范步驟及完整執(zhí)行算法的成分。策略和實現(xiàn)分離的設計通常,決策部分是異變的成分,而實現(xiàn)部分相對穩(wěn)定,并可多次復用。將策略成分和實
13、現(xiàn)成分分別設計成獨立的部分,使系統(tǒng)維護的范圍減小,以提高系統(tǒng)的維護性和復用性。,15,接口和實現(xiàn)分離接口接口是軟件成分對外統(tǒng)一形式的、可直接訪問的操作集合,其操作提供了該軟件成分的功能及使用方式。一個軟件成分可以不只一個接口,每個接口提供不同的一組相關的操作。實現(xiàn)實現(xiàn)是軟件成分外部不可見的操作執(zhí)行部分接口和實現(xiàn)分離的設計為了達到軟件成分的高復用,對于不同的訪問形式的適應問題,可以采用分設不同的訪問接口來實現(xiàn)。因此,采用接口和
14、實現(xiàn)分離的設計,會極大地提高系統(tǒng)的可移植性和復用性,而這些正是軟件性能評價的重要指標。,16,4.風格、框架、模式在軟件體系結(jié)構(gòu)的研究中,有三個重要的術語需要明確:軟件體系結(jié)構(gòu)風格(Architecture Styles),風格是描述特定系統(tǒng)組織方式的慣用范例(idiomatic paradigm),強調(diào)組織方式和習慣用法;組織方式是用靜態(tài)形式表述的系統(tǒng)結(jié)構(gòu),而慣用范式,則可反映眾多系統(tǒng)共有的結(jié)構(gòu)和語義。應用框架(Applicat
15、ion Framework),框架是待實例化的、可復用的大粒度部件結(jié)構(gòu)??蚣苊嫦虿煌?guī)模的應用問題,是通用的結(jié)構(gòu)。強調(diào)針對實際的應用問題和通用結(jié)構(gòu)。軟件設計模式(Design Pattern),設計模式是軟件問題高效和成熟的設計模板(pattern),模板包含了固有的問題的處理邏輯,強調(diào)處理邏輯采用方式的直接復用。,17,3.5.2 軟件體系結(jié)構(gòu)風格體系結(jié)構(gòu)風格是對軟件系統(tǒng)組織結(jié)構(gòu)的慣用形式總結(jié)。認識特定軟件結(jié)的原理及適合的計算模式
16、,為軟件體系結(jié)構(gòu)設計提供必要的選擇空間,對于軟件設計來說是重要的技術途徑。目前經(jīng)典的體系結(jié)構(gòu)風格包括:管道過濾器風格主程序與子過程風格面向?qū)ο箫L格黑板知識庫風格虛擬機(解釋器)風格事件驅(qū)動隱式調(diào)用風格過程控制回路風格 部件鏈接器C2風格相關的信息系統(tǒng)開發(fā),僅介紹其中幾種經(jīng)典體系結(jié)構(gòu)風格,18,1 .管道過濾器 (Pipes and Filters),過濾器A,過濾器B,過濾器C,過濾器D,過濾器E,,,,,,,,
17、,,,,,,,,增量計算的 功能模塊,輸入/輸出 數(shù)據(jù)流,管道過濾器風格的特征以數(shù)據(jù)流向的過程為核心,因此也被稱為:數(shù)據(jù)流風格過濾器自身功能獨立而完整,不需要知道其他過濾器的存在與否,相互之間無狀態(tài)交互過濾器對輸入的數(shù)據(jù)流有限制,并必須保證輸出流的正確性系統(tǒng)內(nèi),各部分的執(zhí)行與整體系統(tǒng)的最終輸出不相關適用于無交互的批量加工過程處理系統(tǒng),管道1,管道2,管道3,管道4,管道5,管道6,管道8,管道7,19,2.主程序與子過
18、程 (Main Program/Subroutine),主程序,子過程1,子過程2,子過程n,?????,,,,,,,子過程k1,子過程k2,調(diào)用,返回,,,,,,,,,子過程f,,,,,主程序與子過程特征與過程性語言的概念相對應,適當?shù)脑O計會使代碼效率很高層次式的結(jié)構(gòu)調(diào)用,幾乎可以應對所有的軟件問題單純的過程劃分基于特定問題,不具普遍性,復用性差數(shù)據(jù)結(jié)構(gòu)的變化會引起復雜關聯(lián)的變化,維護性差適用于需求穩(wěn)定且高效的系統(tǒng)問題,20
19、,3 .數(shù)據(jù)抽象和面向?qū)ο?Data Abstraction and Object-Oriented),,對象實體,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,對象實體,對象實體,對象實體,對象實體,對象實體,對象實體,對象實體,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,消息,?對象實體是具有自身屬性和行為能力的獨立個體。?對象實體是主動的管理者,包括待處理的對象數(shù)據(jù)和所有參與過 程
20、的實體。?任何事務處理都是對象相互發(fā)送“消息”作用的結(jié)果。發(fā)送消息是“請求”,接受消息是對請求的“響應”。?響應“消息”的動作是接受請求對象自身的行為能力。并且它也可以 向其他對象發(fā)出請求。,面向?qū)ο蠼Y(jié)構(gòu)的特征,21,4.事件驅(qū)動和隱式調(diào)用(Event-Based,Implicit Invocation),外部實體1,,,,外部實體n,,,,消息過濾1,消息過濾n,中斷服務n,中斷服務1,?????,?????,系統(tǒng)消息隊列,應用
21、A 消息 隊列,應用線程1,應用線程n,?????,應用B 消息 隊列,,,,,,,,,,,,,,,系統(tǒng)傳送,系統(tǒng)傳送,消息發(fā)送,消息發(fā)送,事件,事件,應用線程1,應用線程n,?????,消息循環(huán) B,消息循環(huán) A,,,,?????,事件驅(qū)動和隱式調(diào)用特征事件不直接被各響應處理接收,而是通過隱藏在中間的層次間接地被接收和處理中間的層次,完成消息形式的統(tǒng)一處理及調(diào)整和調(diào)度,這樣,可以對接受事件進行必要操控請求與響應成
22、分之間構(gòu)成松散耦合,為靈活設計創(chuàng)造了條件對于資源不對等的異步并發(fā)系統(tǒng)是一種極好的控制方式,22,5. 黑板知識庫 (倉儲) (Repository),黑板(共享狀態(tài) 和策略數(shù)據(jù)),,知識源1,知識源8,知識源7,知識源6,知識源3,知識源4,知識源2,知識源5,,,,,,,,,黑板知識庫風格的特征每個知識源的動作依據(jù)是黑板中的信息,包括需要的交互及協(xié)同 系統(tǒng)中的執(zhí)行者和決策者享有同等的地位 使系統(tǒng)中多對多的關系,以及執(zhí)行者
23、和決策者的復雜關系變得簡單而清晰對于協(xié)同求解等專家系統(tǒng)是極好的控制方式,23,虛擬機,6. 虛擬機(解釋器)(Interpreter),程序的交互輸入,被解釋的 程序,執(zhí)行偽碼,解釋引擎,,輸出,輸入,選擇指示,,,,解釋狀態(tài),虛擬機(解釋器)結(jié)構(gòu)的優(yōu)勢? 易于擴充文法,以適應系統(tǒng)的改變。特別是采用面向?qū)ο蟮睦^承方式。? 高效的解釋通常采用狀態(tài)機方式。狀態(tài)機方式仍然適用于解釋器結(jié)構(gòu)。,,,24,7. 部件連接器(Co
24、mponents and Connectors),?部件和連接器是軟件結(jié)構(gòu)成分的兩大部分。?部件是軟件的組成成分,在系統(tǒng)構(gòu)架中起結(jié)構(gòu)塊的作用。?連接件是建立部件和部件之間連接的成分,是專門承接連接作用 的特殊部件。?部件可以組合,連接器可以相互連接。,,,,,,,,,,,,,,部件,部件,部件,部件,部件,部件,部件,,部件,,復合部件,部件和連接器也稱為 C2 (Components and Connectors)風格。它總結(jié)
25、了所有體系結(jié)構(gòu)的成分,歸納并深入探討其規(guī)律、特性,引導了軟件體系結(jié)構(gòu)研究的新途徑。,25,軟件體系結(jié)構(gòu)成分列表,26,?部件的類別?部件的表達形式?部件的特性,接口特性運行特性遠程服務特性關聯(lián)特性動態(tài)特性等級或?qū)哟翁匦?,?連接的種類?連接的實現(xiàn)?連接協(xié)議?連接的特性,連接方向性連接的角色連接的激發(fā)連接的響應連接的匹配性,,討論部件連接器的內(nèi)容包括:,27,連接的種類,從連接目的分:操作/過程調(diào)用、控制/事件
26、/消息發(fā)送、數(shù)據(jù)傳輸從連接機能分:有返回連接和無返回連接從連接響應分:同步連接和異步連接。,連接的實現(xiàn),計算機硬件提供了實現(xiàn)一切連接的基礎。在此基礎上構(gòu)筑了各層的連接方式。無論怎樣復雜的連接,都是在基本連接的基礎上實現(xiàn)的。,串行輸入/輸出并行輸入輸出DMA(直接存儲訪問)循環(huán)掃描代碼塊連接,進程線程共享同步并行,過程調(diào)用中斷存儲棧,分時并發(fā)事件消息異常處理,基本連接,28,3.5.3 軟件體系結(jié)構(gòu)應用框架
27、軟件體系結(jié)構(gòu)應用框架,是在大量成功的應用系統(tǒng)中,被廣泛使用并得到驗證的系統(tǒng)結(jié)構(gòu)。它們大都有相應的軟件產(chǎn)品或開發(fā)環(huán)境的工具所支持。各大軟件開發(fā)商,都在相互競爭地圍繞這些應用的軟件體系結(jié)構(gòu),發(fā)展自己獨特性能的構(gòu)造工具和產(chǎn)品,并且,不斷創(chuàng)造新的更具優(yōu)勢的結(jié)構(gòu)概念,以研制更多的產(chǎn)品占領軟件開發(fā)市場。,29,1.客戶/服務器 ( Client/Server)C/S結(jié)構(gòu)在信息產(chǎn)業(yè)的系統(tǒng)結(jié)構(gòu)中占有重要地位。是隨著網(wǎng)絡時代的發(fā)展,從集中式計算到分布式
28、計算重大演變的產(chǎn)物?;靖拍頒/S結(jié)構(gòu)是分布式系統(tǒng)結(jié)構(gòu) 分布式系統(tǒng)是由多個自主的處理器,平行地處理所各自獨立的系統(tǒng)部分,來同共完成一個業(yè)務過程。它們之間不共享存儲,僅通過封裝的接口傳遞信息。C/S結(jié)構(gòu)是分布式系統(tǒng)結(jié)構(gòu)。C/S結(jié)構(gòu)的消息傳遞特征 消息傳遞是分布系統(tǒng)結(jié)構(gòu)的基礎,C/S結(jié)構(gòu)采用消息傳遞的關系模式。即客戶向服務者發(fā)送消息,客戶是消息的發(fā)送者,也是請求服務者;而服務器是消息的接收者,它響應消息并執(zhí)行服務。C/S結(jié)構(gòu)既是
29、指硬件也是指軟件。并且,通常用來表明一種消息交互的形式,30,C/S體系結(jié)構(gòu)硬件,,,,,,,,,,,,Internet,,,,,,,,,,客戶機1,打印機,調(diào)制解調(diào)器,服務器,其他公用設備,客戶機2,客戶機3,客戶機4,客戶機5,客戶機通常采用個人微機,在自身操作系統(tǒng)控制下,執(zhí)行系統(tǒng)的應用程序。服務器,采用高級計算機系統(tǒng),提供多用戶方式下的數(shù)據(jù)庫服務、文件服務、網(wǎng)絡通信、打印服務、電傳及傳真等設備服務等。,,,,31,,應用接口,數(shù)
30、據(jù)庫系統(tǒng) Core,操作系統(tǒng),用戶界面,應用系統(tǒng),數(shù)據(jù)庫系統(tǒng) 運行環(huán)境,Form Report SQL,操作系統(tǒng),,,,跨平臺跨地域,接口,數(shù)據(jù)存儲管理,Server,Client,C/S結(jié)構(gòu)的軟件系統(tǒng)分布,C/S結(jié)構(gòu)是資源不對等結(jié)構(gòu)。常被形象地稱為“胖客戶機結(jié)構(gòu)”客戶處理機擔任應用程序的全部系統(tǒng)處理,包括:操作界面、業(yè)務邏輯及數(shù)據(jù)計算的所有處理運行。服務處理機擔任多個客戶應用的數(shù)據(jù)管理,包括:數(shù)據(jù)庫服務器、網(wǎng)絡服
31、務、應用請求響應服務。,…,32,C/S結(jié)構(gòu)的處理流程早期的C/S結(jié)構(gòu)處理方式是兩層方式的。由于所有的應用系統(tǒng)程序都在Client側(cè),程序之間的訪問,是采用的共享內(nèi)存的本地過程調(diào)用LPC(Local Procedure Call)方式。,33,C/S結(jié)構(gòu)發(fā)展的必然趨勢1)在應用系統(tǒng)中,有時一個數(shù)據(jù)查詢,需要多次循環(huán)的查詢數(shù)據(jù)集合,由于全部數(shù)據(jù)運算都在Client端,需要多次頻繁而大量的數(shù)據(jù)從服務器端傳過來,造成網(wǎng)絡傳輸?shù)娘L險和壓力。
32、2)隨著計算機硬件技術的發(fā)展,以及遠程過程存儲及遠程過程調(diào)用RPC(Remote Procedure Call)技術的發(fā)展,使分布式系統(tǒng)結(jié)構(gòu)得以實現(xiàn)3)隨著Internet網(wǎng)絡技術,以及WWW技術的發(fā)展,三層的C/S結(jié)構(gòu),直接對應瀏覽器/服務器結(jié)構(gòu)的基本結(jié)構(gòu)形式。,,,,34,RPC運行,Skeleton,RPC API,過程存儲,數(shù)據(jù)庫,操作系統(tǒng),用戶界面,RPC運行,Stub,RPC API,應用系統(tǒng),操作系統(tǒng),,,跨平臺跨地
33、域,遠程過程存儲及RPC,Server,Client,客戶端向服務器發(fā)出請求---向指定的服務器請求數(shù)據(jù)訪問服務器接收請求----向客戶提供相應的數(shù)據(jù)服務RPC接口----為應用提供的過程存儲調(diào)用IDL(Interface Description Language)----可產(chǎn)生C/S兩端的RPC接口,,…,35,三層C/S結(jié)構(gòu)處理流程將服務器分為邏輯上獨立的兩部分:業(yè)務功能處理和數(shù)據(jù)訪問處理。將原來客戶端處理的內(nèi)容只保留界面操
34、作請求驗證處理部分,而將驗證過的操作請求及數(shù)據(jù),整體發(fā)送給服務器,服務器經(jīng)過業(yè)務處后,客戶端僅將結(jié)果數(shù)據(jù)取回。,36,2.瀏覽器/服務器結(jié)構(gòu)( Browser/Server,B/S)B/S結(jié)構(gòu),針對Internet國際互聯(lián)網(wǎng)絡形式的系統(tǒng)應用問題,結(jié)合了成熟的WWW(World Wide Web)技術,是三層C/S結(jié)構(gòu)的一種特定形式的實現(xiàn)。WWW技術的基本原理采用超文本標記語言(Hypertext Markup Language ,
35、HTML),以互聯(lián)網(wǎng)絡上全體共識的格式,在瀏覽器中展現(xiàn)資源信息。WWW技術仍然采用的C/S消息傳遞方式:瀏覽器作為信息系統(tǒng)的前端,僅負責操作請求及取回信息展示給外界服務器以多用戶處理方式,響應瀏覽器的請求,執(zhí)行搜索、整理和存儲各種WWW資源。,37,B/S結(jié)構(gòu)的基本形式WWW技術僅針對HTML文本資源的處理,而B/S結(jié)構(gòu)所面對的除了HTML文本資源,主要是針對應用系統(tǒng)程序的運行資源。因為,大量的應用系統(tǒng)越來越多地建立在Intern
36、et互聯(lián)網(wǎng)絡的基礎之上。,客戶端計算機運行瀏覽器,服務器計算機運行邏輯上劃分的Web服務器和數(shù)據(jù)服務器,38,客戶瀏覽器1)用統(tǒng)一資源定位器URL來識別對應請求的Web服務器2)通過解釋HTML頁面來顯示信息3)用超文本傳輸協(xié)議HTTP來傳輸請求4)取回處理結(jié)果,轉(zhuǎn)換成HTML頁面信息服務器各個業(yè)務的處理包裝成對應的應用服務,并執(zhí)行下列任務:1)驗證客戶端的業(yè)務請求2)執(zhí)行相應的業(yè)務處理代碼程序3)發(fā)送必要的請求給數(shù)
37、據(jù)服務器,并取回結(jié)果數(shù)據(jù)4)按事先給定的結(jié)果頁面準備好執(zhí)行結(jié)果數(shù)據(jù)服務器數(shù)據(jù)服務接受對應的數(shù)據(jù)請求與數(shù)據(jù)庫及文件系統(tǒng)交互,建立并管理數(shù)據(jù),執(zhí)行檢索、修改、刪除等數(shù)據(jù)操作,39,B/S多層結(jié)構(gòu)基本B/S結(jié)構(gòu)存在如下問題:應用服務的表示邏輯和處理邏輯緊密相關,不能獨立修改和復用業(yè)務的顯示信息是以全體共識的方式直接被客戶端獲取,因此,系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)直接暴露,造成極高的信息安全風險Web服務器既要處理界面操作驗證,又要處理業(yè)務計
38、算,還要負責與數(shù)據(jù)服務器的聯(lián)系,使其負擔過重,造成系統(tǒng)性能下降,抗風險能力低,40,多層B/S結(jié)構(gòu)的形式將Web服務器的工作適當分解為多個部分,將界面操作驗證等處理邏輯分成獨立的部分,不但減輕了各部分的負擔,使風險分散,最重要的是可以提高系統(tǒng)的安全性,并提高系統(tǒng)的復用性和構(gòu)造性。,41,3.對象中間件結(jié)構(gòu)中間件基本概念中間件的產(chǎn)生與C/S結(jié)構(gòu)的發(fā)展密不可分。由于C/S結(jié)構(gòu)存在著操作系統(tǒng)、文件格式、網(wǎng)絡協(xié)議、服務等相互多元異構(gòu)的問題
39、。希望通過中間件,能夠屏蔽差異,實現(xiàn)異構(gòu)環(huán)境下,建立具有可擴展能力的分布式軟件框架。中間件的定義:中間件是為解決異構(gòu)環(huán)境的分布計算問題,是位于平臺和應用之間、具有標準接口和協(xié)議的通用服務。,42,早期的中間件類型早在中間件概念被提出之前,很多系統(tǒng)在解決分布式互聯(lián)方面就已經(jīng)采用過很好的中間件解決方案。例如:遠程過程調(diào)用(Remote Procedure Call,RPC),同步方式的分布式互聯(lián)技術消息發(fā)布/訂閱(publish/
40、subscribe),準異步的分布式互聯(lián)消息隊列(Message queue),異步方式的分布式互聯(lián)技術開放數(shù)據(jù)庫互連(Open Database Connectivity,ODBC),異構(gòu)數(shù)據(jù)庫系統(tǒng)互聯(lián)然而,上述中間件系統(tǒng)中,軟件成分之間的互聯(lián)訪問,其雙方的位置和身份是固定的。,43,對象中間件隨著軟件技術的不斷發(fā)展,軟件結(jié)構(gòu)設計的抽象程度越來越高,從基本數(shù)據(jù)結(jié)構(gòu)、模塊,子程序、對象類,直到對象構(gòu)件。以對象構(gòu)件為基礎建造的系
41、統(tǒng),不但需要對象構(gòu)件本身,還需要對象構(gòu)件的運行機制來管理和控制,以實現(xiàn)構(gòu)件的建立和撤銷、構(gòu)件的加入與退出,以及構(gòu)件之間的相互訪問等,這個機制就是“對象中間件”。對象中間件的理解要點:對象構(gòu)件是包含獨立數(shù)據(jù)和功能的大粒度的對象實體,是系統(tǒng)建設的構(gòu)造塊在分布式網(wǎng)絡環(huán)境下的對象構(gòu)件系統(tǒng)中,對象構(gòu)件不分客戶還是服務者,它們的角色可以互換,并可以即插即用,44,對象中間件的三大主流結(jié)構(gòu)由國際OMG(Object Management Gr
42、oup)制定的ORB和CORBA對象中間件規(guī)范以SUN公司Java技術為基礎的對象組件和中間件體系EJBMicrosoft公司W(wǎng)indows環(huán)境的COM/DCOM/COM+構(gòu)件技術系列,45,① CORBA對象中間件由國際OMG(Object Management Group)制定的軟件跨平臺交互操作標準。目標是:無論在什么地方,用的什么語言或是什么操作系統(tǒng),應用程序都能在獨立的情況下,透明訪問對象。在此目標下,制定統(tǒng)一的應用軟件
43、標準,規(guī)劃分布對象的體系結(jié)構(gòu),以及在此結(jié)構(gòu)下對象的產(chǎn)生、消亡和運用方式。這套規(guī)定包括:OMA(Object Management Architecture) 對象管理體系結(jié)構(gòu)ORB(Object Request Broker)對象請求代理者CORBA(Common Object Request Broker Architecture)公共對象請求代理者體系結(jié)構(gòu),46,對象服務,提供用于實現(xiàn)對象的一些基本功能,如對象的命名服務、對象
44、并行、對象存儲、對象產(chǎn)生和消亡、事件消息響應,以及事務交易的一致性保障等應用對象,是廣泛概念的分布系統(tǒng)中的任何成分。可以是應用程序、進程、類實例公共設施,提供運行在應用程序中的公共服務,例如:菜單、窗口、繪圖板、電子郵件等ORB是OMA的核心部分。對象系統(tǒng)中對象構(gòu)件之間的交互,都是通過ORB進行的,OMA對象管理體系結(jié)構(gòu),47,ORB核心,ORB核心提供底層消息通信協(xié)議GIOP(Global Internet-ORB Protoc
45、ol)接口定義語言IDL,提供對象的接口定義機制,通過編譯的接口,產(chǎn)生stub和skeleton樁(stub),客戶請求所需要的對象代理,或者遠程對象的本地代理槽(skeleton)服務的接口,明確給出所承擔的服務接口庫,提供注冊構(gòu)件的接口管理,動態(tài)調(diào)用時,提供對象方法的元數(shù)據(jù)實現(xiàn)庫,包含支持服務的類、實例化對象及標識。為定位和激活對象提供必要的手段對象適配器,提供對象構(gòu)件運行環(huán)境的適配轉(zhuǎn)換機制,CORBA結(jié)構(gòu),48,EJB
46、構(gòu)件系統(tǒng)開發(fā)環(huán)境EJB和J2EEJ2EE(Java2 Enterprise Edition)是SUN公司開發(fā)的具有性能保證,安全防護、事務處理,以及集群(cluster)管理等綜合技術標準的應用系統(tǒng)軟件開發(fā)框架。包含網(wǎng)絡服務支持和軟件開發(fā)工具(Software Development Kit,SDK)等很多的概念和技術。其中,核心的技術就是EJB。除了EJB之外,還包含JNDI(Java Naming and Directory I
47、nterface)、JMS(Java Message Service)、JCA(Java Connector Architecture)、JTA(Java Transaction API)等重要的技術。它們可以配合EJB完成企業(yè)應用系統(tǒng)的開發(fā)和建設。J2EE只是個標準,它依賴于各廠商的產(chǎn)品實現(xiàn)。EJB(Enterprise Java Bean)是J2EE的一部分,是基于組件式企業(yè)系統(tǒng)應用的軟件開發(fā)標準。 EJB提供可視化操作的構(gòu)件系
48、統(tǒng)裝配工具和環(huán)境,是能在服務器上運行的,一個特定的JavaBean。,49,JavaBean的基本概念Bean(豆)可看作一個整體構(gòu)件,是具有內(nèi)省(可表示)、可裝配、可授權操作、可事件響應,以及可永久性存儲的軟件獨立成份。JavaBean提供動態(tài)發(fā)現(xiàn)、組裝、部署B(yǎng)ean ,以及運行Bean的機制。Bean用事件機制相互連接,可構(gòu)成完整的應用系統(tǒng)。EJB的基本概念EJB是企業(yè)級應用服務的一個特殊的Bean,在EJB中,包含一個OTM
49、(Object Transaction Monitor)對象事務處理控制器,提供事務處理的服務構(gòu)件,包括:負責激活構(gòu)件、撤銷構(gòu)件、事務調(diào)度構(gòu)件,事件處理及構(gòu)件,以及持久性管理構(gòu)件。并且,在EJB中,構(gòu)件之間交互控制的機制是RMI(Remote Method Invocation)遠程方法調(diào)用,它相當于SUN公司的ORB。,50,EJB結(jié)構(gòu),EJB服務器,可以有多個EJB構(gòu)件或稱EJB容器,部署在EJB服務器上EJB容器,表示EJD單個
50、構(gòu)件或多個構(gòu)件共同完成的整體大粒度的構(gòu)件Home接口,EJB構(gòu)件的接口,提供創(chuàng)建、刪除及發(fā)現(xiàn)、查找等操作Remote,EJB構(gòu)件的接口,外界通過該接口調(diào)用業(yè)務構(gòu)件,51,COM、DCOM、COM+對象組件技術COM與OLE、ActiveX的關系OLE(Object Linking and Embedded)對象連接和嵌入技術,是將應用程序的數(shù)據(jù)交換提高到“對象之間的交換”。早期的OLE技術是為了開發(fā)時能夠容易地控制連接多媒體混合
51、文檔而實現(xiàn)的。OLE中的數(shù)據(jù)對象被稱為“復合文件”,可在任一應用程序中,對其進行編輯、更新、打印等功能的操作。隨著組件技術的發(fā)展,在OLE2.0技術的基礎上,建立了COM(Component Object model)組件對象技術規(guī)范,或者說OLE技術是COM的一個技術應用。ActiveX是在原OLE技術的基礎上,支持網(wǎng)絡環(huán)境上的對象組件集成和交互的技術,它擴展了OLE 僅針對Windows系統(tǒng)內(nèi)應用軟件的集成和交互的技術。,52,C
52、OM對象組件模型及實現(xiàn)過程,客戶應用,是使用對象組件的應用COM庫,提供COM對象組件的創(chuàng)建和標識、內(nèi)存管理、對象構(gòu)件程序連接等函數(shù)注冊表,操作系統(tǒng)范圍公用的信息,是客戶應用、對象購件與COM庫用以信息交換的共享區(qū)對象構(gòu)件,創(chuàng)建COM對象構(gòu)件的特殊類,用特殊接口提供標準的操作,得到構(gòu)件的實例化對象,53,DCOMDCOM(Distributed COM)是COM的進一步擴展。由于COM僅支持同一計算機上Windows環(huán)境的構(gòu)件之
53、間的交換,WindowsNT4.0研制了分布對象計算環(huán)境COM技術。DCOM用網(wǎng)絡協(xié)議來代替本地進程之間的通信,并針對分布環(huán)境提供必要的特性,包括:位置透明、網(wǎng)絡安全、跨平臺調(diào)用。DCOM的分布功能主要依靠遠程過程調(diào)用實現(xiàn)。COM+COM+在DCOM基礎上,加入了事務服務和分布式網(wǎng)絡應用體系。提供建立分布式事務處理企業(yè)應用的系統(tǒng)框架。包括:COM+目錄、負載平衡、駐留內(nèi)存數(shù)據(jù)庫、對象池、事件模型、構(gòu)件部署和管理等服務型對象構(gòu)件。,5
54、4,COM+COM+目錄負載平衡駐留內(nèi)存數(shù)據(jù)庫對象池事件模型構(gòu)件部署和管理,COM+的基本結(jié)構(gòu),COM接口編程方式基本構(gòu)件服務,支持遠程 DCOM分布式構(gòu)件服務,MTS支持事務處理資源分發(fā)管理安全管理,55,,4.面向服務的體系結(jié)構(gòu),基本概念面向服務的體系結(jié)構(gòu)(Service Oriented Architecture,SOA),是另一種形式的分布式系統(tǒng)構(gòu)造模型。它將分布在網(wǎng)絡中被稱為服務的應
55、用程序或功能單元,通過協(xié)議方式的連接機制聯(lián)系起來。而這個服務的連接機制是獨立于服務運行環(huán)境的硬件平臺、操作系統(tǒng)和編程語言的執(zhí)行機構(gòu)。,56,理解要點SOA的“服務”不同于“組件”。 組件也稱為“構(gòu)件”,是系統(tǒng)構(gòu)造過程中的構(gòu)造快?!皹?gòu)件可動態(tài)連接”仍然是指系統(tǒng)建造過程中的操作,因此,它們或被代理預置,或被事先部署,總之是非運行過程的操作。 “服務”是運行中特定功能的網(wǎng)絡實體,它們是通過獨立連接機制,可動態(tài)發(fā)現(xiàn)并建立連接運行執(zhí)行成分。
56、使得“服務”能夠被發(fā)現(xiàn),并建立連接的機制,是采用統(tǒng)一的協(xié)議方式,獨立于服務運行環(huán)境的運行機構(gòu),而不是單純的構(gòu)件接口方式。僅從字面意義理解“服務”和“構(gòu)件”的區(qū)別就不難看出,SOA結(jié)構(gòu)比起對象組件結(jié)構(gòu),可以構(gòu)成更松散的耦合關系。,57,SOA和網(wǎng)格計算SOA的產(chǎn)生與網(wǎng)格技術密不可分,是網(wǎng)格(grid)技術的實際應用和技術擴展。網(wǎng)格的概念借鑒了電力網(wǎng)的概念,希望像使用電力網(wǎng)一樣使用網(wǎng)絡資源。,水力發(fā)電(地點A),火力發(fā)電(地點B),風力
57、發(fā)電(地點C),核力發(fā)電(地點E),電力網(wǎng),,,輸入,輸出,電力,電力,電力,電力,,,,,,,,,,電力網(wǎng)構(gòu)成示意:,58,網(wǎng)格計算,為解決超大型計算問題,是集成計算資源環(huán)境的問題求解體系結(jié)構(gòu)。它將各種計算資源轉(zhuǎn)化成一種隨處可得的、可靠的、標準的、同時還是經(jīng)濟的計算能力。資源包括計算機、網(wǎng)絡通信、數(shù)據(jù)資源、儀器設備等。網(wǎng)格計算,是繼Internet之后又一次重大科技進步,它代表了先進的技術和基礎設施。,系統(tǒng)M(地點A),系統(tǒng)N(地
58、點B),數(shù)據(jù)信息(地點C),設備儀器(地點E),,網(wǎng)格,,,輸入,輸出,計算,計算,計算,計算,,,,,,,,,網(wǎng)格組成示意:,59,網(wǎng)格計算與Web Services具有代表性的網(wǎng)格技術是Globus(美國Argonne國家實驗室的研發(fā)項目)。其中的五層沙漏協(xié)議體系結(jié)構(gòu),以及Globus Toolkit,作為開放的結(jié)構(gòu)和開放源代碼,已經(jīng)在世界上許多網(wǎng)格項目中被使用。2002年10月,IBM與Globus在多倫多聯(lián)合發(fā)布的OGSA
59、(Open Grid Services Architecture)開放網(wǎng)格服務體系結(jié)構(gòu),把Globus的概念和標準運用于Web Services,把網(wǎng)格技術由科學計算應用,擴展到廣泛的異構(gòu)企業(yè)系統(tǒng)結(jié)構(gòu)。,60,Web Services的基本思想Web Service的“服務”,是可被Internet協(xié)議的URL統(tǒng)一資源定位器識別的應用軟件成分。 服務的接口是采用Internet協(xié)議可被直接訪問的XML(eXtensible Mark
60、up Language)消息形式描述。所有信息及信息處理都被視為同一形式的網(wǎng)絡運行資源,包括物理設備及軟件運行的邏輯成分;統(tǒng)稱為“服務”服務可以被動態(tài)發(fā)現(xiàn)和邦定,并在生命期內(nèi)被管理運行。,61,Web Services 體系結(jié)構(gòu),服務提供者是提供Web服務的供應商,它實現(xiàn)Web服務,并放置在在線服務器上供請求服務者使用,同時,還要將服務發(fā)布到注冊中心服務注冊中心是Web服務的注冊地,它包含所有注冊了的Web服務的有關信息,提供商業(yè)
61、化注冊手段,并有發(fā)現(xiàn)為Web服務的能力 Web服務的請求者,向服務注冊中心發(fā)出查找服務的請求,當?shù)玫交貞业搅撕线m的Web服務后,從服務注冊中心獲取Web服務的信息引用,通過動態(tài)綁定機制建立Web服務,得到所需要的服務。,62,SOAP(simple object access protocol)基于XML的RPC協(xié)議,描述通用的Web服務目標WSDL(Web service description language)描述Web服務
62、接口的訪問方法,復雜的服務可以由多個服務組成UDDI(universal description discovery and integration)Web服務的目錄結(jié)構(gòu)定義BPEL(Business Process Execution Language For Web Services)Web服務的業(yè)務流程執(zhí)行語言,Web Service的標準協(xié)議,63,簡單對象訪問協(xié)議SOAP (Simple Object Access Pro
63、tocol)SOAP協(xié)議是基于XML支持分布式環(huán)境結(jié)構(gòu)化文本信息的交換SOAP由四個部分組成:①SOAP envelope(SOAP 信封)---定義了整體的表示框架,用于表示消息的內(nèi)容,由誰來處理,以及可以由目標應用程序自己選擇是否處理,還是強制必須處理,如果無法處理則返回錯誤。②SOAP encoding rules(SOAP 編碼規(guī)則)---定義了數(shù)據(jù)編序機制,通過編序機制,定義應用程序中需要使用的數(shù)據(jù)類型,這些數(shù)據(jù)類型所
64、衍生的實例可用于交換。③SOAP RPC representation(SOAP RPC表示)---定義了用于遠端過程調(diào)用和響應的約定。④SOAP binding(SOAP 綁定)---定義了使用底層傳輸協(xié)議來完成在結(jié)點間交換SOAP信封的約定。,64,Web服務描述WSDL(Web Services Definition Language) WSDL把Web服務描述成一系列端點操作(服務接口)。WSDL描述了Web服務的三個
65、基本屬性:①服務做些什么---服務提供的操作(方法)②如何訪問服務---數(shù)據(jù)格式及訪問服務操作的協(xié)議③服務位于何處---由特定協(xié)議決定的網(wǎng)絡地址,65,Web服務的尋找和發(fā)現(xiàn)UDDI(Universal Description Discovery and Integration) 統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議,提供向注冊中心注冊的方式。注冊中心維護Web服務的全局目錄,目錄的信息描述格式采用通用的XML格式。UDDI注冊中心
66、提供兩種注冊方式:① Public UDDI Registry(公共UDDI注冊中心)面向全局UDDI注冊,采用邏輯上統(tǒng)一,物理上分布的實現(xiàn)方式,不同站點之間采用P2P對等網(wǎng)絡。注冊其中任意一個站點就等于注冊了UDDI全局注冊中心。② Private UDDI Registry(私有UDDI注冊中心)獨立組織、企業(yè)或某一范圍內(nèi)使用的UDDI注冊服務,其服務對象局限在注冊的局部注冊中心范圍內(nèi)。,66,BPEL(Business
67、Process Execution Language For Web Services)Web服務的業(yè)務流程執(zhí)行語言。BPEL結(jié)合了IBM的Web服務流程語言(Web Services Flow Language)和 Microsoft 的 XLANG 規(guī)范??梢詫⒁唤M服務整合起來,定義一個新的 Web 服務。 整合服務的接口被描述為 WSDL portType 的集合,并指出服務接口與總體執(zhí)行的配合情況。,67,.Net基于網(wǎng)
68、格計算的Web Service受到業(yè)界廣泛的關注,形成了新的產(chǎn)業(yè)協(xié)議,其中包括Microsoft公司的.Net,以及SUN公司的Sun One等。因此,.Net技術屬于面向服務的體系結(jié)構(gòu),是基于XML Web services標準的應用系統(tǒng)開發(fā)環(huán)境,被稱為.Net平臺。.Net技術的基本思想.Net技術的基本理念,不再關注單個網(wǎng)站和與Internet連接的單個設備,而是要讓所有的計算機和相關設備,以及應用服務協(xié)同工作。使人們能控制信
69、息并讓所需信息在指定的時間,以指定的方式傳送給自己。,68,.Net平臺結(jié)構(gòu) Operating System運行在Windows 2000 Server等多種操作系統(tǒng)中.Net Enterprise Servers提供企業(yè)應用系統(tǒng)使用的服務器產(chǎn)品.Net Building Block Services,提供可采用付費方式直接訪問的成型服務,如:Passport服務。Visual Studio.Net提供
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統(tǒng)集成項目管理工程師重點(系統(tǒng)集成工程師考試專供)
- 系統(tǒng)集成項目管理工程師教材-3
- 系統(tǒng)集成項目管理工程師
- 系統(tǒng)集成項目管理工程師-筆記
- 系統(tǒng)集成項目管理工程師考試大綱及培訓指南
- 系統(tǒng)集成項目管理工程師練習八
- 系統(tǒng)集成項目管理工程師考試經(jīng)驗
- 系統(tǒng)集成項目管理工程師考試簡介
- 2010年上半年系統(tǒng)集成項目管理工程師下午試題
- 2010年上半年系統(tǒng)集成項目管理工程師下午試題
- 系統(tǒng)集成項目管理工程師考點解答
- 系統(tǒng)集成項目管理工程師學習筆記
- 2017系統(tǒng)集成項目管理工程師考前沖刺
- 系統(tǒng)集成項目管理工程師教程_精華版
- 2020系統(tǒng)集成項目管理工程師中級學習筆記
- 2012系統(tǒng)集成項目管理工程師中級學習筆記
- [精心整理]系統(tǒng)集成項目管理工程師計算題
- 系統(tǒng)集成項目管理工程師歷年真題及答案
- 系統(tǒng)集成項目管理工程師要點1-21章
- 軟考-2017系統(tǒng)集成項目管理工程師必考內(nèi)容
評論
0/150
提交評論