文秘知識 > 畢業設計

基於耦合度的分布問題研究


【摘要】 本文主要討論分散式套用系統中基於耦合度的用戶分布、功能分布和數據分布問題。【關鍵字】用戶分布,功能分布,數據分布,耦合度,領域知識,自動構造  隨著Client/Server結構套用系統複雜和擴大,其數據、功能和用戶的分布問題變得日益突出。合理有效地設計MIS系統模型是MIS系統能否有效發揮效率的關鍵。通常處理這些問題都是軟體開發人員根據其以往的開發經驗,設計的好壞受人為因素影響很大,且方案因人而異。本文提出了基於耦合度的分布過程解決方案,並在此基礎上實現了一個分布的自動生成工具。一、 分布問題當我們根據系統的需求信息來設計基於三層Client/Server模型的MIS系統的時候,一個很重要的工作就是需要確定MIS系統由多少個客戶端、應用程式伺服器和資料庫伺服器組成,用戶、功能和數據是如何分布在客戶端、應用程式伺服器和資料庫伺服器上的。對於一個MIS系統來說,我們都可以將它抽象分解為用戶集 U={u1,u2,..,ul}、功能集F={f1,f2,..,fm}和數據集T={t1,t2,..,tn}。用戶通過調用功能集中的一些功能模組,來存取數據集中的數據表。我們可以用圖1說明它們之間的關係:本文所要討論的分布問題包括用戶分布、功能分布和數據分布。用戶分布指的是根據系統的需求,決定如何在客戶端各個平台上分配用戶,即每個客戶端允許哪些用戶使用。功能分布也稱處理分布、事務分布、邏輯分布,指的是如何在應用程式伺服器各個平台上分配功能,即決定哪些功能適合在哪些平台上完成。數據分布的粒度大小可以是資料庫、數據表、行、列等,我們這裡討論的數據分布邏輯單元是數據表,數據分布指的是如何在資料庫伺服器各個平台上分配數據,即如何在伺服器上組織這些數據。二、耦合度的計算在分散式MIS系統中,之所以有不同的客戶端、應用程式伺服器和資料庫伺服器,是因為用戶之間、功能之間和數據之間也存在著一種類似的不同「吸引力」。我們將這種「吸引力」取名為耦合度。我們將兩個用戶分在同一個客戶端的可能性稱之為用戶耦合度,兩個功能分在同一個應用程式伺服器的可能性稱之為功能耦合度,兩個數據分在同一個資料庫伺服器的可能性稱之為數據表耦合度。這裡討論耦合度,是因為耦合度是分散式MIS系統網路節點劃分的依據。耦合度是不同種因素的函式。耦合度=f用戶耦合度 用戶之間所屬關係、距離和特殊要求等因素都可能影響用戶耦合度大小。企業的部門和職務之間的所屬關係構成一棵部門職務關係樹或森林,葉結點為用戶。直接同屬一個部門的兩個用戶肯定比間接同屬一個部門的兩個用戶分在同一個客戶端的可能性要大。我們將兩個用戶到它們最近共同祖先的最大距離定義為兩個用戶之間的疏遠度,當兩個用戶分屬於兩棵關係樹時,它們的疏遠度為¥ 。如圖2所示的部門職務關係樹中,用戶u1和u4之間的疏遠度為2,用戶u1和u3之間的疏遠度為3 。疏遠度越大其耦合度越小,我們給不同的疏遠度以不同的權值,這樣就可以折算為耦合度值。兩個用戶相距400米以內肯定比兩個用戶相距1公里以上分在同一個客戶端可能性要大。兩個用戶相距越近,其耦合度越大,用戶相距遠近給予不同的權值,以折算為耦合度值。針對企業的一些特殊要求,我們用程度詞來說明兩個用戶分在同一個客戶端的可能性,常見的程度詞如必須、儘可能、不可能、不能等等,我們給不同的程度詞以不同的權值,以折算為耦合度值。功能耦合度 很明顯,調用功能1的所有用戶和調用功能2的所有用戶之間的關係越緊密,這兩個功能分在同一應用程式伺服器的可能性就越大。這種用戶調用功能的關係對功能耦合度影響較大,但其它因素也影響功能耦合度大小。數據耦合度 功能存取數據的關係對數據耦合度影響較大。其它影響數據耦合度大小的因素包括資料庫系統的特殊要求、MIS系統要求等。三、 分布過程用戶、功能和數據分布主要是確立Client/Server系統結構。我們這裡主要討論基於耦合度的用戶、功能和數據劃分過程,用戶、功能和數據耦合度是我們進行網路節點劃分的依據。用戶、功能、數據分布需要解決兩個問題:1)MIS系統由多少個網路節點組成。2)用戶、功能、數據是如何在這些網路節點上分配的。這兩個問題的解決又是統一的,即如何進行網路節點的劃分。下面我們以用戶分布為例,來說明分布過程的具體步驟。設企業的用戶集合U={u1,u2,…um},Lu為客戶端分組劃分的用戶耦合度下限。我們的目標是找出一個最小個數客戶端集合C={C1, C2, C3,…, Ck},客戶端C1, C2, C3,…, Ckí U,滿足 C1,+C2+ C3+…+Ck =U。任意Ci∈ C,Cj∈C,i≠j 有Ci∩Cj=φ。若RF>=Lu,則用戶ui,uj 就在同一客戶端。具體步驟如下:第一步,計算用戶之間耦合度。這裡RFd 、RFc 、RFs 分別表示用戶ui和uj之間由於距離、所屬關係、特殊要求等因素影響的耦合度。RF= RFd +RFc +RFs +…第二步,求用戶二元關係Ru。Ru={<ui, uj > | " ui, uj ? U 且 RF3 Lu }第三步,求Ru的等價關係Ru挕?Ru? t第四步,客戶端劃分C。C=U/ Ru?/P>分布是一個權衡的過程,不存在唯一正確的方案。必須兼顧目標與限制,綜合考慮所有方面的因素。四、分布的自動生成工具我們設計和實現了一個MIS系統輔助開發環境NDTool,這是一個基於耦合度和領域知識的用戶、功能和數據分布的自動生成工具。該系統設計過程貫穿了我們所提出的思想和方法。ECSL是一個企業概念結構描述語言,主要用於獲取最終用戶所提供的企業的需求信息。採用中文的類自然語言形式,面向最終用戶。DKDL是一個領域知識描述語言,主要用於獲取領域專家在MIS系統開發上所積累的經驗,並將所得到的領域知識存放於領域知識庫中。該語言面向領域軟體專家。領域知識庫用於存放領域知識。由DKDL獲取的領域專家的開發經驗,經過分析、組織,所得到的結果保存在領域知識庫中。我們提供一組領域知識庫的操作接口,用於領域知識庫的存取和維護工作。MADL是一個分散式MIS系統體系結構描述語言,主要用於描述MIS系統中的用戶、數據和功能的分布情況。它是NDTool系統最後生成的結果。該語言面向軟體開發人員。NDTool系統的工作流程。首先,將領域軟體專家所掌握的領域知識,描述成DKDL文本,經過DKDL編譯器的編譯,並調用領域知識庫的接口將所分析的結果存入領域知識庫中。當需要開發MIS系統時,企業最終用戶將他的需求信息用ECSL語言描述出來。通過ECSL編譯器進行編譯,參考領域知識庫的有關領域知識,計算用戶、功能和數據耦合度,再根據耦合度進行網路節點的劃分,最後將結果用MADL語言描述出來。提供給開發人員進行數據模型和模組設計。五、 結束語本文圍繞基於耦合度的Client/Server結構應用程式的分布過程及其自動生成工具的實現進行了討論。分布問題具有一個不確定性的特點,同時分布將耗費開發者大量的精力。如何合理地設計分布構造方法以及設計分布的自動生成工具是Client/Server系統開發過程中一個重要問題。參考文獻:[1] 陸汝鈐,金芝,萬榮林,夏幼明 基於領域知識的需求信息獲取軟體學報,Vol.7,No. 3,1996[2] 趙洪彪,周立柱 Client/Server結構系統中的處理分布計算機科學,Vol. 24,No.5,1997[3] 張左梁 C/S套用系統設計的新概念和新技術計算機科學,Vol.24,No.1,1997

推薦文章

熱門文章

基於耦合度的分布問題研究@名言佳句大全