分層 |
典型分層方法
分層表示將功能進行有序的分組:應用程式專用功能位於上層,跨越應用程式領域的功能位於中層,而配置環境專用功能位於低層。層的數量與組成取決於問題領域和解決空間的複雜程度:通常只有一個應用程式專用層。如果領域中已有先前構建的系統,或有由較小的互作業系統構成的大型系統,各設計團隊之間尤其需要共享信息。因此,業務專用層很可能部分地存在,並且為明確起見,可能將其分成幾個層。
如果解決空間得到中間件產品的充分支持,並且複雜的系統軟體在其中起著更加重要的作用,解決空間就將具有經過充分開發的低層,並且還可能具有一些由中間件和系統軟體構成的層。
應當把子系統組織成分層結構,構架的上層是應用程式專用子系統,構架的低層是硬體和操作專用子系統,中間件層是通用服務。
下面是一個四層構架的示例.頂層是應用程式層,它包括應用程式專用的服務。
下面一層是業務專用層,它包括在一些應用程式中使用的業務專用構件。
中間件層包括各個構件,例如 GUI 構建器、與資料庫管理系統的接口、獨立於平台的作業系統服務以及電子表格程式、圖表編輯器等 OLE 構件。
底層是系統軟體層,它包括作業系統、資料庫、與特定硬體的接口等構件。分層結構始於最初略的功能層次,然後逐步發展成多個更為具體的功能層次。
分層指南
分層從邏輯上將子系統劃分成許多集合,而層間關係的形成要遵循一定的規則。通過分層,可以限制子系統間的依賴關係,使系統以更鬆散的方式耦合,從而更易於維護。子系統的分組標準包含以下幾條規則:可見度。各子系統只能與同一層及其下一層的子系統存在依賴關係。易變性。最上層放置隨用戶需求的改變而改變的元素。最底層放置隨實施平台(硬體、語言、作業系統、資料庫等)的改變而改變的元素。中間的夾層放置廣泛適用於各種系統和實施環境的元素。如果在這些大類中進一步劃分有助於對模型進行組織,則添加更多的層。
通用性。一般將抽象的模型元素放置在模型的低層。如果它們不針對於具體的實施,則傾向於將其放置在中間層。
層數。對於小型系統,三層就足夠了。對於複雜系統,通常需要 5-7 層。無論複雜程度如何,如果超過 10 層,就需要慎重考慮了。層數越多,越需慎重。以下列出了一些經驗法則:
類的數量 | 層數 |
0 - 10 | 無需分層 |
10 - 50 | 2 層 |
25 - 150 | 3 層 |
100 - 1000 | 4 層 |
特定層中的子系統和包只應同一層及其下一層的子系統存在依賴關係。如果不這樣限制依賴關係,將會導致構架退化,使系統脆弱並難於維護。
如果子系統需要直接訪問低層服務,則屬於例外:應理智地決定如何處理整個系統所需的基本服務(如列印、傳送訊息等)。如果解決方案是在中間各層之間有效地實施調用傳遞,將訊息限制在低層就毫無意義了。
分區模式
在系統的頂層作進一步的分區會有助於對模型進行組織。以下分區指南提出了需要考慮的各種問題:用戶組織。可以根據業務組織中各種功能的組織形式來組織子系統,如按部門進行分區。由於現有的企業模型具有嚴格的組織劃分結構,所以這種分區通常要在設計的初期進行。這種組織模式通常只影響到頂部少數層,即應用程式專用服務,隨著設計工作的深入,它通常會變得無關緊要。根據用戶的組織結構來進行分區,可以為模型提供一個良好開端。由於用戶組織的結構在很長時間以後可能會因業務重組而變得不穩定,因此不宜用作系統分區的長期基礎。系統的內部組織應該使系統便於開發和維護,而不受它所支持的業務組織的影響。
技能領域。在開發組織中,可以對子系統進行適當組織,以便將模型中的各個部分分派給不同的開發組。這通常發生在系統的中低層,它反映了在開發和支持複雜的基礎結構技術時,需要有專門化的技能。這類技術包括網路與分布管理、資料庫管理、通信管理,進程控制等等。根據能力來進行分區也可以在上層進行。在這些層需要具備問題領域內的特殊能力,以便了解和支持關鍵的業務功能;這樣的例子有:電信呼叫管理、證券交易、保險申報處理和航空交通控制。
系統分布。在系統的任何層中,都可以將層作進一步的“水平方向”細分,以反映功能的物理分布情況。反映分布情況的分區有助於預見到在系統執行過程中將發生的網路通訊。但是,如果配置模型發生顯著改變,反映分布情況的分區則會使系統難以作出相應的改變。
保密領域。有些應用程式,特別是那些要求有關人員通過安全審查才能進行開發和/或支持的應用程式,需要根據安全訪問許可權來進行分區。控制保密區域訪問權的軟體必須由通過相應審查的個人來開發和維護。如果項目中具有這種背景的人員有限,要求特殊審查的功能必須分區為子系統,並將獨立於其他子系統單獨開發。對其他子系統言,唯一可見的將是與該保密領域的接口。
可變性領域。某些功能可能會用作可選功能,從而只在系統的某些變體中交付,這些功能應組織成獨立的子系統,獨立於系統的必需功能進行開發和交付。
網路層次的劃分
分層 |
1. 物理層(Physical layer)是參考模型的最低層。該層是網路通信的數據傳輸介質,由連線不同結點的電纜與設備共同構成。主要功能是:利用傳輸介質為數據鏈路層提供物理連線,負責處理數據傳輸並監控數據出錯率,以便數據流的透明傳輸。
2. 數據鏈路層(Data link layer)是參考模型的第2層。 主要功能是:在物理層提供的服務基礎上,在通信的實體間建立數據鏈路連線,傳輸以“幀”為單位的數據包,並採用差錯控制與流量控制方法,使有差錯的物理線路變成無差錯的數據鏈路。
3. 網路層(Network layer)是參考模型的第3層。主要功能是:為數據在結點之間傳輸創建邏輯鏈路,通過路由選擇算法為分組通過通信子網選擇最適當的路徑,以及實現擁塞控制、網路互聯等功能。
4. 傳輸層(Transport layer)是參考模型的第4層。主要功能是向用戶提供可靠的端到端(End-to-End)服務,處理數據包錯誤、數據包次序,以及其他一些關鍵傳輸問題。傳輸層向高層禁止了下層數據通信的細節,因此,它是計算機通信體系結構中關鍵的一層。
5. 會話層(Session layer)是參考模型的第5層。主要功能是:負責維擴兩個結點之間的傳輸連結,以便確保點到點傳輸不中斷,以及管理數據交換等功能。
6. 表示層(Presentation layer)是參考模型的第6層。主要功能是:用於處理在兩個通信系統中交換信息的表示方式,主要包括數據格式變換、數據加密與解密、數據壓縮與恢復等功能。
7. 套用層(Application layer)是參考模型的最高層。主要功能是:為套用軟體提供了很多服務,例如檔案伺服器、資料庫服務、電子郵件與其他網路軟體服務。