信息系統項目管理師-系統架構設計_第1頁
信息系統項目管理師-系統架構設計_第2頁
信息系統項目管理師-系統架構設計_第3頁
信息系統項目管理師-系統架構設計_第4頁
信息系統項目管理師-系統架構設計_第5頁
已閱讀5頁,還剩82頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、信息與軟件工程學院信息系統項目管理師課程輔導1信息與軟件工程學院五、系統架構設計五、系統架構設計25.1 5.1 軟件體系結構基本概念軟件體系結構基本概念5.25.2 軟件體系結構風格軟件體系結構風格5.3 5.3 軟件體系結構應用框架軟件體系結構應用框架5.4 5.4 軟件設計模式軟件設計模式信息與軟件工程學院35.1 軟件體系結構基本概念 1定義軟件體系結構,也稱軟件架構,是軟件工程的重要研究領域。從90年代開始,很多專家學者對軟件體系結構引起廣泛的關注,到目前為止,軟件體系結構并沒有統一的定義,綜合軟件體系結構的定義,只有比較權威的定義性論述。權威的定義性論述軟件體系結構是設計過程的一個

2、層次,它處理那些超越算法和數據結構的設計,研究整體結構設計和描述方法。體系結構包括:總體組織結構、全局控制結構、通信和同步以及數據存取的協議、設計元素的功能、物理分布與合成、設計方案的選擇、評估和實現等。信息與軟件工程學院4理解要點: 軟件體系結構是軟件設計過程的一個層面,是相對獨立的、有價值的軟件設計方法的總結,可作為軟件開發指導性的策略和途徑強調設計過程,而非分析的過程。分析的目標是理解和表達,而設計的目標是實現非用戶的觀點,即非功能的觀點。對于用戶,結構是軟件系統功能的組合,而對于設計者,結構是為特定目標而設立的、軟件成分以及成分之間的關系。軟件體系結構的研究,包括:怎樣選擇、怎樣評估,

3、以及怎樣實現一個軟件結構的問題信息與軟件工程學院52. 軟件的基本結構軟件技術的發展與硬件技術密不可分。軟件結構的基礎受硬件結構的制約,目前,在計算機基本硬件結構的基礎之上,軟件體系結構的基本元素和結構包括如下幾種:數據類型結構,包括基本數據類型結構、抽象數據類型結構控制流連接結構,也稱調用結構包括:條件連接結構、循環連接結構、控制轉移結構;其調用連接方式,包括鏈詢式、分析式、代理式中斷觸發連接結構,包括內部進程連接結構、獨立進程同步連接結構、獨立進程異步連接結構層次結構,包括單向依賴層次結構、開放式層次結構信息與軟件工程學院63.軟件體系結構設計的基本策略和原則在大量的軟件開發的設計實踐中,

4、始終存在對設計原則和策略的探討和總結,很多被普遍性采用的原則和策略,一直被廣泛使用,并不斷驗證和改進,它們獨立于具體的軟件開發方法。這些原則和策略包括: 抽象 分而治之,層次化分解 封裝和信息隱蔽 模塊化高內聚和低耦合關注點分離策略和實現分離接口和實現分離信息與軟件工程學院7抽象抽象,是人們認識復雜事物的基本方法。它的實質是集中表現事物的主要特征和屬性,隱蔽和忽略細節部分。運用抽象,能概括普遍的、具有相同特征和屬性的事物,簡化表達和理解,便于利用。軟件設計中運用的抽象包括:數據抽象:描述特定數據對象的屬性集合過程抽象:特定操作過程命名的操作序列控制抽象:隱含內部細節的控制邏輯信息與軟件工程學院

5、8分而治之,層次式分解將大問題分解,從小問題入手,逐一解決整個大問題,這是人們處理問題的通常的方式。軟件設計中運用的分解包括:橫向分解:按照從基礎問題到上層問題的分解方式,將大問題按照層次分解成相互依賴的多層,每層完成的局部解,提供對上層的支持縱向分解:在橫向分解的基礎上,對每層的求解,再分解成相互獨立的多項求解信息與軟件工程學院9封裝和信息隱蔽封裝是為了信息隱蔽,隱蔽是為了減小出錯帶來損失,而出錯是軟件系統不可避免的事實。無論是多么精心設計,嚴格實施,以及反復測試,軟件系統的錯誤就像與生俱來不可回避。局部化設計將處理信息限制在局部處理過程中,避免與外部其它處理共享,減少出錯的幾率,并且,出錯

6、后的影響面也會較小。封裝性設計將處理過程盡量隱蔽,使外界得不到,只留出簡單而統一的訪問接口。這樣,使軟件處理的各個部分相互獨立,減小系統擴充或修改時的出錯的機率。信息與軟件工程學院10模塊化模塊是可被獨立命名、具有獨立作用的軟件成分。軟件設計的模塊化,是以提高系統的可構造性為目標的。為了軟件系統的可擴充性、可修改性,設計可靈活的拆解,或者可靈活組裝的軟件構造,則成為軟件設計者的愿望和責任。模塊設計的原則包括:可分解性:問題本身可由多個部分的解合成,則應分解問題成為多個處理模塊可組裝性:可作為獨立的部分被組裝利用,得到一個更大的解,則包裝它成為獨立的模塊可理解性:模塊需要容易理解,不能被理解或者

7、理解多義的軟件成分不能作為獨立模塊連續性: 對于一個軟件成分的修改,只作用于它自身,這樣的模塊才是好的模塊保護性: 如果模塊出現異常,對于系統的影響較小,甚至沒有影響,這樣的模塊才是好的模塊信息與軟件工程學院11高內聚和低耦合內聚性內聚性是指軟件成份的內部特性。成份中各處理元素的關系越緊密越好。耦合性耦合性是指軟件成份之間的關系特性。軟件成份之間的關系越松散越好。信息與軟件工程學院1212偶然內聚:各處理元素之間并沒有關系,只是把分散在多處的功能合在一起偶然內聚:各處理元素之間并沒有關系,只是把分散在多處的功能合在一起邏輯內聚:僅僅是邏輯功能相關的處理元素合在一起邏輯內聚:僅僅是邏輯功能相關的

8、處理元素合在一起時間內聚:需要在同一時間執行,并無功能邏輯的處理元素合在一起時間內聚:需要在同一時間執行,并無功能邏輯的處理元素合在一起過程內聚:過程順序相關的功能元素合在一起過程內聚:過程順序相關的功能元素合在一起通訊內聚:需要對相同的外部數據進行操作的處理元素合在一起通訊內聚:需要對相同的外部數據進行操作的處理元素合在一起順序內聚:一個軟件成份的輸出是另一個軟件成份的輸入,將它們合起來順序內聚:一個軟件成份的輸出是另一個軟件成份的輸入,將它們合起來功能內聚:只完成單一的功能功能內聚:只完成單一的功能內容耦合:一個軟件成份直接修改另一個軟件成份的內容內容耦合:一個軟件成份直接修改另一個軟件成

9、份的內容公共耦合:兩個以上的軟件成份共同處理外部的一個公共數據公共耦合:兩個以上的軟件成份共同處理外部的一個公共數據控制耦合:軟件成份的動作依賴于接收的控制信號控制耦合:軟件成份的動作依賴于接收的控制信號標記耦合:標記耦合:軟件成份的接口參數具有一個復雜的內部結構軟件成份的接口參數具有一個復雜的內部結構數據耦合:軟件成份之間僅是數據傳遞數據耦合:軟件成份之間僅是數據傳遞內聚內聚耦合耦合緊密緊密松散松散松散松散緊密緊密信息與軟件工程學院13關注點分離關注點:關注點是軟件系統中特別需要考慮的多變部分。例如,軟件成分的執行會受到運行環境、設備條件,以及通信設施等的制約和限制,為了適應不同的運行環境和

10、條件,需要進行必要的參數調整和驅動配置。為此進行的這部分設計和開發,即是所謂的關注點。關注點分離設計:軟件系統中涉及關注點的成分應該與非關注點的成分分為相互獨立的部分,這樣的設計會使未來的系統容易配置,靈活適應多種不同的情況。信息與軟件工程學院14策略和實現分離策略策略是指軟件中用于處理選擇控制的決策成分。通過信息語義解釋、參數條件等,進行分析判斷,以決定怎樣的具體數據加工和功能實現。實現實現是指軟件系統中,有規范步驟及完整執行算法的成分。策略和實現分離的設計通常,決策部分是異變的成分,而實現部分相對穩定,并可多次復用。將策略成分和實現成分分別設計成獨立的部分,使系統維護的范圍減小,以提高系統

11、的維護性和復用性。信息與軟件工程學院15接口和實現分離接口接口是軟件成分對外統一形式的、可直接訪問的操作集合,其操作提供了該軟件成分的功能及使用方式。一個軟件成分可以不只一個接口,每個接口提供不同的一組相關的操作。實現實現是軟件成分外部不可見的操作執行部分接口和實現分離的設計為了達到軟件成分的高復用,對于不同的訪問形式的適應問題,可以采用分設不同的訪問接口來實現。因此,采用接口和實現分離的設計,會極大地提高系統的可移植性和復用性,而這些正是軟件性能評價的重要指標。信息與軟件工程學院164.風格、框架、模式在軟件體系結構的研究中,有三個重要的術語需要明確:軟件體系結構風格(Architectur

12、e Styles),風格是描述特定系統組織方式的慣用范例(idiomatic paradigm),強調組織方式和習慣用法;組織方式是用靜態形式表述的系統結構,而慣用范式,則可反映眾多系統共有的結構和語義。應用框架(Application Framework),框架是待實例化的、可復用的大粒度部件結構??蚣苊嫦虿煌幠5膽脝栴},是通用的結構。強調針對實際的應用問題和通用結構。軟件設計模式(Design Pattern),設計模式是軟件問題高效和成熟的設計模板(pattern),模板包含了固有的問題的處理邏輯,強調處理邏輯采用方式的直接復用。信息與軟件工程學院175.2 軟件體系結構風格軟件體系

13、結構風格體系結構風格是對軟件系統組織結構的慣用形式總結。認識特定軟件結的原理及適合的計算模式,為軟件體系結構設計提供必要的選擇空間,對于軟件設計來說是重要的技術途徑。目前經典的體系結構風格包括:管道過濾器風格主程序與子過程風格數據抽象與面向對象風格黑板知識庫風格虛擬機(解釋器)風格事件驅動隱式調用風格過程控制回路風格 部件鏈接器C2風格相關的信息系統開發,僅介紹其中幾種經典體系結構風格信息與軟件工程學院181 .管道過濾器 (Pipes and Filters)過濾器A過濾器B過濾器C過濾器D過濾器E增量計算的 功能模塊輸入/輸出 數據流管道過濾器風格的特征以數據流向的過程為核心,因此也被稱為

14、:數據流風格過濾器自身功能獨立而完整,不需要知道其他過濾器的存在與否,相互之間無狀態交互過濾器對輸入的數據流有限制,并必須保證輸出流的正確性系統內,各部分的執行與整體系統的最終輸出不相關適用于無交互的批量加工過程處理系統管道1管道2管道3管道4管道5管道6管道8管道7信息與軟件工程學院192.主程序與子過程主程序與子過程 (Main Program/Subroutine)主程序子過程1子過程2子過程n子過程k1子過程k2調用返回子過程f主程序與子過程特征與過程性語言的概念相對應,適當的設計會使代碼效率很高層次式的結構調用,幾乎可以應對所有的軟件問題單純的過程劃分基于特定問題,不具普遍性,復用性

15、差數據結構的變化會引起復雜關聯的變化,維護性差適用于需求穩定且高效的系統問題信息與軟件工程學院203.事件驅動和隱式調用事件驅動和隱式調用(Event-Based,Implicit Invocation)外部實體1外部實體n消息過濾1消息過濾n中斷服務n中斷服務1系統消息隊列應用A 消息 隊列應用線程1應用線程n應用B 消息 隊列系統傳送系統傳送消息發送消息發送事件事件應用線程1應用線程n消息循環 B消息循環 A事件驅動和隱式調用特征事件不直接被各響應處理接收,而是通過隱藏在中間的層次間接地被接收和處理中間的層次,完成消息形式的統一處理及調整和調度,這樣,可以對接受事件進行必要操控請求與響應成

16、分之間構成松散耦合,為靈活設計創造了條件對于資源不對等的異步并發系統是一種極好的控制方式信息與軟件工程學院21 黑板(共享狀態 和策略數據)知識源1知識源8知識源7知識源6知識源3知識源4知識源2知識源5黑板知識庫風格的特征每個知識源的動作依據是黑板中的信息,包括需要的交互及協同 系統中的執行者和決策者享有同等的地位 使系統中多對多的關系,以及執行者和決策者的復雜關系變得簡單而清晰對于協同求解等專家系統是極好的控制方式信息與軟件工程學院22虛擬機5. 虛擬虛擬機機( (解釋器解釋器) )(Interpreter)程序的交互輸入 被解釋的 程序執行偽碼解釋引擎輸出輸入選擇指示解釋狀態虛擬機(解釋

17、器)結構的優勢 易于擴充文法,以適應系統的改變。特別是采用面向對象的繼承方式。 高效的解釋通常采用狀態機方式。狀態機方式仍然適用于解釋器結構。信息與軟件工程學院236 部件連接器部件連接器(Components and Connectors)部件和連接器是軟件結構成分的兩大部分。部件是軟件的組成成分,在系統構架中起結構塊的作用。連接件是建立部件和部件之間連接的成分,是專門承接連接作用 的特殊部件。部件可以組合,連接器可以相互連接。部件部件部件部件部件部件部件部件復合部件部件和連接器也稱為 C2 (Components and Connectors)風格。它總結了所有體系結構的成分,歸納并深入探

18、討其規律、特性,引導了軟件體系結構研究的新途徑。信息與軟件工程學院24軟件體系結構成分列表信息與軟件工程學院25部件的類別部件的表達形式部件的特性接口特性運行特性遠程服務特性關聯特性動態特性等級或層次特性連接的種類連接的實現連接協議連接的特性連接方向性連接的角色連接的激發連接的響應連接的匹配性討論部件連接器的內容包括:信息與軟件工程學院26連接的種類從連接目的分:操作/過程調用、控制/事件/消息發送、數據傳輸從連接機能分:有返回連接和無返回連接從連接響應分:同步連接和異步連接。連接的實現計算機硬件提供了實現一切連接的基礎。在此基礎上構筑了各層的連接方式。無論怎樣復雜的連接,都是在基本連接的基礎

19、上實現的。串行輸入/輸出并行輸入輸出DMA(直接存儲訪問)循環掃描代碼塊連接進程線程共享同步并行過程調用中斷存儲棧分時并發事件消息異常處理基本連接信息與軟件工程學院275.3 軟件體系結構應用框架軟件體系結構應用框架,是在大量成功的應用系統中,被廣泛使用并得到驗證的系統結構。它們大都有相應的軟件產品或開發環境的工具所支持。各大軟件開發商,都在相互競爭地圍繞這些應用的軟件體系結構,發展自己獨特性能的構造工具和產品,并且,不斷創造新的更具優勢的結構概念,以研制更多的產品占領軟件開發市場。信息與軟件工程學院281 1客戶客戶/ /服務器服務器 ( Client/Server)( Client/Ser

20、ver)C/S結構在信息產業的系統結構中占有重要地位。是隨著網絡時代的發展,從集中式計算到分布式計算重大演變的產物。基本概念C/S結構是分布式系統結構 分布式系統是由多個自主的處理器,平行地處理所各自獨立的系統部分,來同共完成一個業務過程。它們之間不共享存儲,僅通過封裝的接口傳遞信息。C/S結構是分布式系統結構。C/S結構的消息傳遞特征 消息傳遞是分布系統結構的基礎,C/S結構采用消息傳遞的關系模式。即客戶向服務者發送消息,客戶是消息的發送者,也是請求服務者;而服務器是消息的接收者,它響應消息并執行服務。C/S結構既是指硬件也是指軟件。并且,通常用來表明一種消息交互的形式信息與軟件工程學院29

21、C/S體系結構硬件客戶機1打印機調制解調器服務器其他公用設備客戶機2客戶機3客戶機4客戶機5 客戶機通常采用個人微機,在自身操作系統控制下,執行系統的應用程序。 服務器,采用高級計算機系統,提供多用戶方式下的數據庫服務、文件服務、網絡通信、打印服務、電傳及傳真等設備服務等。 信息與軟件工程學院30 應用接口 數據庫系統 Core 操作系統 用戶界面 應用系統 數據庫系統 運行環境 Form Report SQL 操作系統跨平臺跨地域接口數據存儲管理ServerClientC/S結構的軟件系統分布 C/S結構是資源不對等結構。常被形象地稱為“胖客戶機結構” 客戶處理機擔任應用程序的全部系統處理,

22、包括:操作界面、業務邏輯及數據計算的所有處理運行。 服務處理機擔任多個客戶應用的數據管理,包括:數據庫服務器、網絡服務、應用請求響應服務。信息與軟件工程學院31C/S結構的處理流程早期的C/S結構處理方式是兩層方式的。由于所有的應用系統程序都在Client側,程序之間的訪問,是采用的共享內存的本地過程調用LPC(Local Procedure Call)方式。信息與軟件工程學院32C/S結構發展的必然趨勢1)在應用系統中,有時一個數據查詢,需要多次循環的查詢數據集合,由于全部數據運算都在Client端,需要多次頻繁而大量的數據從服務器端傳過來,造成網絡傳輸的風險和壓力。2)隨著計算機硬件技術的

23、發展,以及遠程過程存儲及遠程過程調用RPC(Remote Procedure Call)技術的發展,使分布式系統結構得以實現3)隨著Internet網絡技術,以及WWW技術的發展,三層的C/S結構,直接對應瀏覽器/服務器結構的基本結構形式。信息與軟件工程學院33 RPC運行SkeletonRPC API 過程存儲過程存儲 數據庫 操作系統 用戶界面 RPC運行 StubRPC API 應用系統 操作系統跨平臺跨地域遠程過程存儲及RPCServerClient客戶端向服務器發出請求-向指定的服務器請求數據訪問服務器接收請求-向客戶提供相應的數據服務RPC接口-為應用提供的過程存儲調用IDL(In

24、terface Description Language)-可產生C/S兩端的RPC接口信息與軟件工程學院34三層C/S結構處理流程將服務器分為邏輯上獨立的兩部分:業務功能處理和數據訪問處理。將原來客戶端處理的內容只保留界面操作請求驗證處理部分,而將驗證過的操作請求及數據,整體發送給服務器,服務器經過業務處后,客戶端僅將結果數據取回。信息與軟件工程學院352瀏覽器/服務器結構( Browser/Server,B/S)B/S結構,針對Internet國際互聯網絡形式的系統應用問題,結合了成熟的WWW(World Wide Web)技術,是三層C/S結構的一種特定形式的實現。WWW技術的基本原理采

25、用超文本標記語言(Hypertext Markup Language ,HTML),以互聯網絡上全體共識的格式,在瀏覽器中展現資源信息。WWW技術仍然采用的C/S消息傳遞方式:瀏覽器作為信息系統的前端,僅負責操作請求及取回信息展示給外界服務器以多用戶處理方式,響應瀏覽器的請求,執行搜索、整理和存儲各種WWW資源。信息與軟件工程學院36B/S結構的基本形式WWW技術僅針對HTML文本資源的處理,而B/S結構所面對的除了HTML文本資源,主要是針對應用系統程序的運行資源。因為,大量的應用系統越來越多地建立在Internet互聯網絡的基礎之上。 客戶端計算機運行瀏覽器, 服務器計算機運行邏輯上劃分的

26、Web服務器和數據服務器信息與軟件工程學院37 客戶瀏覽器1)用統一資源定位器URL來識別對應請求的Web服務器2)通過解釋HTML頁面來顯示信息3)用超文本傳輸協議HTTP來傳輸請求4)取回處理結果,轉換成HTML頁面信息 Web服務器各個業務的處理包裝成對應的應用服務,并執行下列任務:1)驗證客戶端的業務請求2)執行相應的業務處理代碼程序3)發送必要的請求給數據服務器,并取回結果數據4)按事先給定的結果頁面準備好執行結果 數據服務器數據服務接受對應的數據請求與數據庫及文件系統交互,建立并管理數據,執行檢索、修改、刪除等數據操作信息與軟件工程學院38B/S多層結構 基本B/S結構存在如下問題

27、: 應用服務的表示邏輯和處理邏輯緊密相關,不能獨立修改和復用 業務的顯示信息是以全體共識的方式直接被客戶端獲取,因此,系統的數據結構直接暴露,造成極高的信息安全風險 Web服務器既要處理界面操作驗證,又要處理業務計算,還要負責與數據服務器的聯系,使其負擔過重,造成系統性能下降,抗風險能力低信息與軟件工程學院39 多層B/S結構的形式將Web服務器的工作適當分解為多個部分,將界面操作驗證等處理邏輯分成獨立的部分,不但減輕了各部分的負擔,使風險分散,最重要的是可以提高系統的安全性,并提高系統的復用性和構造性。信息與軟件工程學院403對象中間件結構中間件基本概念中間件的產生與C/S結構的發展密不可分

28、。由于C/S結構存在著操作系統、文件格式、網絡協議、服務等相互多元異構的問題。希望通過中間件,能夠屏蔽差異,實現異構環境下,建立具有可擴展能力的分布式軟件框架。中間件的定義:中間件是為解決異構環境的分布計算問題,是位于平臺和應用之間、具有標準接口和協議的通用服務。信息與軟件工程學院41早期的中間件類型早在中間件概念被提出之前,很多系統在解決分布式互聯方面就已經采用過很好的中間件解決方案。例如:遠程過程調用(Remote Procedure Call,RPC),同步方式的分布式互聯技術消息發布/訂閱(publish/subscribe),準異步的分布式互聯消息隊列(Message queue),

29、異步方式的分布式互聯技術開放數據庫互連(Open Database Connectivity,ODBC),異構數據庫系統互聯然而,上述中間件系統中,軟件成分之間的互聯訪問,其雙方的位置和身份是固定的。信息與軟件工程學院42 對象中間件隨著軟件技術的不斷發展,軟件結構設計的抽象程度越來越高,從基本數據結構、模塊,子程序、對象類,直到對象構件。 以對象構件為基礎建造的系統,不但需要對象構件本身,還需要對象構件的運行機制來管理和控制,以實現構件的建立和撤銷、構件的加入與退出,以及構件之間的相互訪問等,這個機制就是“對象中間件”。 對象中間件的理解要點: 對象構件是包含獨立數據和功能的大粒度的對象實體

30、,是系統建設的構造塊 在分布式網絡環境下的對象構件系統中,對象構件不分客戶還是服務者,它們的角色可以互換,并可以即插即用信息與軟件工程學院43對象中間件的三大主流結構由國際OMG(Object Management Group)制定的ORB和CORBA對象中間件規范以SUN公司Java技術為基礎的對象組件和中間件體系EJBMicrosoft公司Windows環境的COM/DCOM/COM+構件技術系列信息與軟件工程學院44 CORBA對象中間件由國際OMG(Object Management Group)制定的軟件跨平臺交互操作標準。目標是:無論在什么地方,用的什么語言或是什么操作系統,應用程

31、序都能在獨立的情況下,透明訪問對象。在此目標下,制定統一的應用軟件標準,規劃分布對象的體系結構,以及在此結構下對象的產生、消亡和運用方式。這套規定包括:OMA(Object Management Architecture) 對象管理體系結構ORB(Object Request Broker)對象請求代理者CORBA(Common Object Request Broker Architecture)公共對象請求代理者體系結構信息與軟件工程學院45 對象服務,提供用于實現對象的一些基本功能,如對象的命名服務、對象并行、對象存儲、對象產生和消亡、事件消息響應,以及事務交易的一致性保障等 應用對象,

32、是廣泛概念的分布系統中的任何成分。可以是應用程序、進程、類實例 公共設施,提供運行在應用程序中的公共服務,例如:菜單、窗口、繪圖板、電子郵件等 ORB是OMA的核心部分。對象系統中對象構件之間的交互,都是通過ORB進行的OMA對象管理體系結構信息與軟件工程學院46 ORB核心,ORB核心提供底層消息通信協議GIOP(Global Internet-ORB Protocol) 接口定義語言IDL,提供對象的接口定義機制,通過編譯的接口,產生stub和skeleton 樁(stub),客戶請求所需要的對象代理,或者遠程對象的本地代理 槽(skeleton)服務的接口,明確給出所承擔的服務 接口庫,

33、提供注冊構件的接口管理,動態調用時,提供對象方法的元數據 實現庫,包含支持服務的類、實例化對象及標識。為定位和激活對象提供必要的手段 對象適配器,提供對象構件運行環境的適配轉換機制CORBA結構信息與軟件工程學院47 EJB構件系統開發環境 EJB和J2EE J2EE(Java2 Enterprise Edition)是SUN公司開發的具有性能保證,安全防護、事務處理,以及集群(cluster)管理等綜合技術標準的應用系統軟件開發框架。包含網絡服務支持和軟件開發工具(Software Development Kit,SDK)等很多的概念和技術。其中,核心的技術就是EJB。除了EJB之外,還包含

34、JNDI(Java Naming and Directory Interface)、JMS(Java Message Service)、JCA(Java Connector Architecture)、JTA(Java Transaction API)等重要的技術。它們可以配合EJB完成企業應用系統的開發和建設。 J2EE只是個標準,它依賴于各廠商的產品實現。 EJB(Enterprise Java Bean)是J2EE的一部分,是基于組件式企業系統應用的軟件開發標準。 EJB提供可視化操作的構件系統裝配工具和環境,是能在服務器上運行的,一個特定的JavaBean。信息與軟件工程學院48Jav

35、aBean的基本概念Bean(豆)可看作一個整體構件,是具有內?。杀硎荆⒖裳b配、可授權操作、可事件響應,以及可永久性存儲的軟件獨立成份。JavaBean提供動態發現、組裝、部署Bean ,以及運行Bean的機制。Bean用事件機制相互連接,可構成完整的應用系統。EJB的基本概念EJB是企業級應用服務的一個特殊的Bean,在EJB中,包含一個OTM(Object Transaction Monitor)對象事務處理控制器,提供事務處理的服務構件,包括:負責激活構件、撤銷構件、事務調度構件,事件處理及構件,以及持久性管理構件。并且,在EJB中,構件之間交互控制的機制是RMI(Remote Me

36、thod Invocation)遠程方法調用,它相當于SUN公司的ORB。信息與軟件工程學院49EJB結構 EJB服務器,可以有多個EJB構件或稱EJB容器,部署在EJB服務器上 EJB容器,表示EJD單個構件或多個構件共同完成的整體大粒度的構件 Home接口,EJB構件的接口,提供創建、刪除及發現、查找等操作 Remote,EJB構件的接口,外界通過該接口調用業務構件信息與軟件工程學院50 COM、DCOM、COM+對象組件技術COM與OLE、ActiveX的關系OLE(Object Linking and Embedded)對象連接和嵌入技術,是將應用程序的數據交換提高到“對象之間的交換”

37、。早期的OLE技術是為了開發時能夠容易地控制連接多媒體混合文檔而實現的。OLE中的數據對象被稱為“復合文件”,可在任一應用程序中,對其進行編輯、更新、打印等功能的操作。隨著組件技術的發展,在OLE2.0技術的基礎上,建立了COM(Component Object model)組件對象技術規范,或者說OLE技術是COM的一個技術應用。ActiveX是在原OLE技術的基礎上,支持網絡環境上的對象組件集成和交互的技術,它擴展了OLE 僅針對Windows系統內應用軟件的集成和交互的技術。信息與軟件工程學院51COM對象組件模型及實現過程 客戶應用,是使用對象組件的應用 COM庫,提供COM對象組件的

38、創建和標識、內存管理、對象構件程序連接等函數 注冊表,操作系統范圍公用的信息,是客戶應用、對象購件與COM庫用以信息交換的共享區 對象構件,創建COM對象構件的特殊類,用特殊接口提供標準的操作,得到構件的實例化對象信息與軟件工程學院52DCOMDCOM(Distributed COM)是COM的進一步擴展。由于COM僅支持同一計算機上Windows環境的構件之間的交換,WindowsNT4.0研制了分布對象計算環境COM技術。DCOM用網絡協議來代替本地進程之間的通信,并針對分布環境提供必要的特性,包括:位置透明、網絡安全、跨平臺調用。DCOM的分布功能主要依靠遠程過程調用實現。COM+COM

39、+在DCOM基礎上,加入了事務服務和分布式網絡應用體系。提供建立分布式事務處理企業應用的系統框架。包括:COM+目錄、負載平衡、駐留內存數據庫、對象池、事件模型、構件部署和管理等服務型對象構件。信息與軟件工程學院53 COM+COM+目錄負載平衡駐留內存數據庫對象池事件模型構件部署和管理COM+的基本結構COM接口編程方式基本構件服務支持遠程 DCOM分布式構件服務 MTS支持事務處理資源分發管理安全管理信息與軟件工程學院544.面向服務的體系結構基本概念面向服務的體系結構(Service Oriented Architecture,SOA),是另一種形式的分布式系統構造模型。它將分布在網絡中

40、被稱為服務的應用程序或功能單元,通過協議方式的連接機制聯系起來。而這個服務的連接機制是獨立于服務運行環境的硬件平臺、操作系統和編程語言的執行機構。信息與軟件工程學院55理解要點SOA的“服務”不同于“組件”。 組件也稱為“構件”,是系統構造過程中的構造快?!皹嫾蓜討B連接”仍然是指系統建造過程中的操作,因此,它們或被代理預置,或被事先部署,總之是非運行過程的操作。 “服務”是運行中特定功能的網絡實體,它們是通過獨立連接機制,可動態發現并建立連接運行執行成分。使得“服務”能夠被發現,并建立連接的機制,是采用統一的協議方式,獨立于服務運行環境的運行機構,而不是單純的構件接口方式。僅從字面意義理解“

41、服務”和“構件”的區別就不難看出,SOA結構比起對象組件結構,可以構成更松散的耦合關系。信息與軟件工程學院56SOA和網格計算 SOA的產生與網格技術密不可分,是網格(grid)技術的實際應用和技術擴展。網格的概念借鑒了電力網的概念,希望像使用電力網一樣使用網絡資源。水力發電(地點A)火力發電(地點B)風力發電(地點C)核力發電(地點E) 電力網輸入輸出電力電力電力電力電力網構成示意:信息與軟件工程學院57 網格計算,為解決超大型計算問題,是集成計算資源環境的問題求解體系結構。它將各種計算資源轉化成一種隨處可得的、可靠的、標準的、同時還是經濟的計算能力。資源包括計算機、網絡通信、數據資源、儀器

42、設備等。網格計算,是繼Internet之后又一次重大科技進步,它代表了先進的技術和基礎設施。系統M(地點A)系統N(地點B)數據信息(地點C)設備儀器(地點E) 網格輸入輸出計算計算計算計算網格組成示意:信息與軟件工程學院58網格計算與Web Services 具有代表性的網格技術是Globus(美國Argonne國家實驗室的研發項目)。其中的五層沙漏協議體系結構,以及Globus Toolkit,作為開放的結構和開放源代碼,已經在世界上許多網格項目中被使用。 2002年10月,IBM與Globus在多倫多聯合發布的OGSA(Open Grid Services Architecture)開放

43、網格服務體系結構,把Globus的概念和標準運用于Web Services,把網格技術由科學計算應用,擴展到廣泛的異構企業系統結構。信息與軟件工程學院59Web Services的基本思想 Web Service的“服務”,是可被Internet協議的URL統一資源定位器識別的應用軟件成分。 服務的接口是采用Internet協議可被直接訪問的XML(eXtensible Markup Language)消息形式描述。 所有信息及信息處理都被視為同一形式的網絡運行資源,包括物理設備及軟件運行的邏輯成分;統稱為“服務” 服務可以被動態發現和邦定,并在生命期內被管理運行。信息與軟件工程學院60Web

44、 Services 體系結構 服務提供者是提供Web服務的供應商,它實現Web服務,并放置在在線服務器上供請求服務者使用,同時,還要將服務發布到注冊中心 服務注冊中心是Web服務的注冊地,它包含所有注冊了的Web服務的有關信息,提供商業化注冊手段,并有發現為Web服務的能力 Web服務的請求者,向服務注冊中心發出查找服務的請求,當得到回應找到了合適的Web服務后,從服務注冊中心獲取Web服務的信息引用,通過動態綁定機制建立Web服務,得到所需要的服務。信息與軟件工程學院61 SOAP(simple object access protocol)基于XML的RPC協議,描述通用的Web服務目標

45、WSDL(Web service description language)描述Web服務接口的訪問方法,復雜的服務可以由多個服務組成 UDDI(universal description discovery and integration)Web服務的目錄結構定義 BPEL(Business Process Execution Language For Web Services)Web服務的業務流程執行語言Web Service的標準協議信息與軟件工程學院62簡單對象訪問協議SOAP (Simple Object Access Protocol)SOAP協議是基于XML支持分布式環境結構化文

46、本信息的交換SOAP由四個部分組成:SOAP envelope(SOAP 信封)-定義了整體的表示框架,用于表示消息的內容,由誰來處理,以及可以由目標應用程序自己選擇是否處理,還是強制必須處理,如果無法處理則返回錯誤。SOAP encoding rules(SOAP 編碼規則)-定義了數據編序機制,通過編序機制,定義應用程序中需要使用的數據類型,這些數據類型所衍生的實例可用于交換。SOAP RPC representation(SOAP RPC表示)-定義了用于遠端過程調用和響應的約定。SOAP binding(SOAP 綁定)-定義了使用底層傳輸協議來完成在結點間交換SOAP信封的約定。 信

47、息與軟件工程學院63Web服務描述WSDL(Web Services Definition Language) WSDL把Web服務描述成一系列端點操作(服務接口)。WSDL描述了Web服務的三個基本屬性:服務做些什么-服務提供的操作(方法)如何訪問服務-數據格式及訪問服務操作的協議服務位于何處-由特定協議決定的網絡地址信息與軟件工程學院64Web服務的尋找和發現UDDI(Universal Description Discovery and Integration) 統一描述、發現和集成協議,提供向注冊中心注冊的方式。注冊中心維護Web服務的全局目錄,目錄的信息描述格式采用通用的XML格式。

48、UDDI注冊中心提供兩種注冊方式: Public UDDI Registry(公共UDDI注冊中心)面向全局UDDI注冊,采用邏輯上統一,物理上分布的實現方式,不同站點之間采用P2P對等網絡。注冊其中任意一個站點就等于注冊了UDDI全局注冊中心。 Private UDDI Registry(私有UDDI注冊中心)獨立組織、企業或某一范圍內使用的UDDI注冊服務,其服務對象局限在注冊的局部注冊中心范圍內。信息與軟件工程學院65BPEL(Business Process Execution Language For Web Services)Web服務的業務流程執行語言。BPEL結合了IBM的We

49、b服務流程語言(Web Services Flow Language)和 Microsoft 的 XLANG 規范??梢詫⒁唤M服務整合起來,定義一個新的 Web 服務。 整合服務的接口被描述為 WSDL portType 的集合,并指出服務接口與總體執行的配合情況。信息與軟件工程學院66.Net基于網格計算的Web Service受到業界廣泛的關注,形成了新的產業協議,其中包括Microsoft公司的.Net,以及SUN公司的Sun One等。因此,.Net技術屬于面向服務的體系結構,是基于XML Web services標準的應用系統開發環境,被稱為.Net平臺。.Net技術的基本思想.Ne

50、t技術的基本理念,不再關注單個網站和與Internet連接的單個設備,而是要讓所有的計算機和相關設備,以及應用服務協同工作。使人們能控制信息并讓所需信息在指定的時間,以指定的方式傳送給自己。信息與軟件工程學院67.Net平臺結構 Operating System運行在Windows 2000 Server等多種操作系統中.Net Enterprise Servers提供企業應用系統使用的服務器產品.Net Building Block Services,提供可采用付費方式直接訪問的成型服務,如:Passport服務。Visual Studio.Net提供 C#語言、.Net VB、.Net X

51、ML、等開發環境??砷_發桌面應用程序、 Web應用程序、智能設備等應用程序。Visual Studio .NETOperating System.NETEnterpriseServers.NET Framework.NET BuildingBlockServices信息與軟件工程學院68.Net Framework 是平臺結構的技術核心包括:公共語言運行機制( Common Language Runtime,CLR).Net框架類庫 (Framework Class Library, FCL)Common Language Runtime(debug,IL,JIT等)Web serviceWe

52、b Form Windwos FormFramework Baes Classes(IO,String,net,threading等)Data and XML Classes(ADO,SQL,XSLT,Xpath,XML等)信息與軟件工程學院695引擎結構工作流引擎工作流,是經營管理過程的計算機實現工作流管理系統,上述實現的軟件環境(或平臺)工作流三大部分:工作流建模工具工作流運行機制工作流引擎工作流建模,統一描述業務過程的各項任務,分配任務角色;定義任務間的交互操作和過程。工作流運行機制,啟動對應業務的工作流引擎,按照模型描述的任務、角色及工作過程,控制不同操作者的、不同任務的各項操作執行。

53、工作流引擎,逐一解釋對應業務的工作流模型,根據執行狀態及操作輸入,決定每一操作步驟,并輸出操作,以控制業務應用系統的執行。信息與軟件工程學院引擎執行過程70過程建模工具工作流模型工作流引擎工作流引擎工作流引擎過程狀態工作流運行數據企業應用系統應用系統數據庫任務管理操作界面工作流控制數據應用系統運行核心角色管理用戶操作輸入工作流引擎結構及工作示信息與軟件工程學院71AJAX引擎AJAX基本概念AJAX(Asynchronous JavaScript and XML)異步的JavaScript和XML,是聯合使用多種技術,以提高Web應用效率的一個解決方案。其中的多個技術包括:XHTML和CSS標

54、準,XHTML(The Extensible HyperText Markup Language)可擴展標識語言,CSS(Cascading Style Sheet)級聯樣式單。用于動態Web頁面呈現效果和布局。DOM(Document Object Model)文檔對象模型,是對HTML和XML文檔操作的程序接口,提供兩種文檔的結構描述,用于實現動態修改瀏覽器頁面。XSLT(Extensible Stylesheet Language Transformations)擴展樣式單轉換語言。用于將 XML 文檔轉換為另外形式的、可被瀏覽器識別的文檔,比如 HTML、XHTML等。XMLHttpR

55、equest對象類,提供瀏覽器腳本發送Http請求并獲取回執的異步數據讀取操作。JavaScript腳本語言,AJAX引擎是用JavaScript編寫,可嵌入在瀏覽器中,用于動態連接,并實現相關的處理邏輯。信息與軟件工程學院72AJAX技術原理傳統的Web應用處理方式:瀏覽器與服務器交互時,需要瀏覽器端觸發一個HTTP請求到服務器,服務器對其進行處理后,再返回一個新的HTHL網頁到瀏覽器。這樣,每當服務器處理提交的請求時,瀏覽器端基本是空閑的,并且,哪怕從服務器端得到的只是很簡單的一個數據,也都需要一個完整的HTML頁的重寫。AJAX的Web應用處理方式:在客戶端瀏覽器上添加AJAX引擎,當瀏

56、覽器向服務器提交數據時,由AJAX引擎收集數據,并通過XMLHttpRequest向服務器發送數據及處理請求,服務器處理完成后返回XML,由AJAX引擎再將XML轉換為XHTML和CSS標準格式顯示到瀏覽器,并負責更新瀏覽器界面。AJAX引擎的結構如圖3.43所示。信息與軟件工程學院73 AJAX引擎的結構AJAX引擎的主要任務:收集數據并完成必要數據驗證控制不需要提交的請求異步數據交換的同步控制輸出格式的轉換頁面更新處理,以及控制刷新頁面信息與軟件工程學院5.4 5.4 設計模式設計模式設計模式:設計模式:是面向對象的軟件開發經驗的總結,是面向對象的軟件開發經驗的總結,其中包含了其中包含了軟

57、件設計中很多問題的解決方案和設計思路,是軟件設計中很多問題的解決方案和設計思路,是可直接利用的程序結構??芍苯永玫某绦蚪Y構。按照以下要點討論設計模:按照以下要點討論設計模:l 模式名稱:表達設計思想的簡單名字模式名稱:表達設計思想的簡單名字l 設計意圖:針對的問題和解決問題的思路設計意圖:針對的問題和解決問題的思路l 實現效果:達到的實際效果及作用實現效果:達到的實際效果及作用l 技術途徑:采用的技術方法和策略技術途徑:采用的技術方法和策略74信息與軟件工程學院設計模式分類:設計模式分類: 構造式:涉及對象創建過程的模式構造式:涉及對象創建過程的模式75信息與軟件工程學院結構式:涉及對象類組

58、合的模式結構式:涉及對象類組合的模式76信息與軟件工程學院行為式:涉及對象之間交互操作的模式行為式:涉及對象之間交互操作的模式77信息與軟件工程學院78信息與軟件工程學院 構造型設計模式,提供在系統中創建獨立對象、創建組合對象,創建系列對象的基本方法。構造型模式中,始終圍繞的問題: 將結構不同、功能不同的“產品”對象,用靈活的配置方式來創建,以適應未來的變化。 討論的是怎樣創建對象的問題,在何時創建?由誰來創建?1.1.構造型設計模式構造型設計模式79信息與軟件工程學院(1 1)抽象工廠)抽象工廠(Abstract FactoryAbstract Factory)模式模式 AbstractFactory AbstractFactorycreateProductA()createProductA()createProductB()

溫馨提示

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

評論

0/150

提交評論