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

學識都 人氣:2.99W
基於耦合度的分佈問題研究
基於耦合度的分佈問題研究 中共廣州市委辦公廳自動化中心 汪勝 廣州工程總承包集團有限公司 時亞弘

【摘要】 本文主要討論分佈式應用系統中基於耦合度的用户分佈、功能分佈和數據分佈問題。

【關鍵詞】用户分佈,功能分佈,數據分佈,耦合度,領域知識,自動構造

隨着Client/Server結構應用系統複雜和擴大,其數據、功能和用户的分佈問題變得日益突出。合理有效地設計MIS系統模型是MIS系統能否有效發揮效率的關鍵。通常處理這些問題都是軟件開發人員根據其以往的開發經驗,設計的好壞受人為因素影響很大,且方案因人而異。本文提出了基於耦合度的分佈過程解決方案,並在此基礎上實現了一個分佈的自動生成工具。

一、 分佈問題

當我們根據系統的需求信息來設計基於三層Client/Server模型的MIS系統的時候,一個很重要的工作就是需要確定MIS系統由多少個客户端、應用程序服務器和數據庫服務器組成,用户、功能和數據是如何分佈在客户端、應用程序服務器和數據庫服務器上的。

對於一個MIS系統來説,我們都可以將它抽象分解為用户集U={u1,u2,..,ul}、功能集F={f1,f2,..,fm}和數據集T={t1,t2,..,tn}。用户通過調用功能集中的一些功能模塊,來存取數據集中的數據表。我們可以用圖1説明它們之間的關係:

本文所要討論的分佈問題包括用户分佈(User Distribution)、功能分佈(Function Distribution)和數據分佈(Data Distribution)。用户分佈指的是根據系統的需求,決定如何在客户端各個平台上分配用户,即每個客户端允許哪些用户使用。功能分佈也稱處理(process)分佈、事務(business)分佈、邏輯(logic)分佈,指的是如何在應用程序服務器各個平台上分配功能,即決定哪些功能適合在哪些平台上完成。數據分佈的粒度大小可以是數據庫、數據表、行、列等,我們這裏討論的數據分佈邏輯單元是數據表(以下簡稱數據),數據分佈指的是如何在數據庫服務器各個平台上分配數據,即如何在服務器上組織這些數據。

二、耦合度的計算

在分佈式MIS系統中,之所以有不同的客户端、應用程序服務器和數據庫服務器,是因為用户之間、功能之間和數據之間也存在着一種類似的不同“吸引力”。我們將這種“吸引力”取名為耦合度(Coupling Degree)。我們將兩個用户分在同一個客户端的可能性稱之為用户耦合度,兩個功能分在同一個應用程序服務器的可能性稱之為功能耦合度,兩個數據分在同一個數據庫服務器的可能性稱之為數據表耦合度。這裏討論耦合度,是因為耦合度是分佈式MIS系統網絡節點劃分的依據。耦合度是不同種因素的函數。

耦合度=f(因素1,因素2,…,因素n)

用户耦合度 用户之間所屬關係、距離和特殊要求等因素都可能影響用户耦合度大小。企業的部門和職務之間的所屬關係構成一棵部門職務關係樹或森林,葉結點為用户。直接同屬一個部門的兩個用户肯定比間接同屬一個部門的兩個用户分在同一個客户端的可能性要大。我們將兩個用户到它們最近共同祖先的最大距離定義為兩個用户之間的疏遠度,當兩個用户分屬於兩棵關係樹時,它們的疏遠度為¥ 。如圖2所示的部門職務關係樹中,用户u1(職務1)和u4(職務3)之間的疏遠度為2,用户u1和u3(部門6)之間的疏遠度為3 。疏遠度越大其耦合度越小,我們給不同的疏遠度以不同的權值,這樣就可以折算為耦合度值。

兩個用户相距400米以內肯定比兩個用户相距1公里以上分在同一個客户端可能性要大。兩個用户相距越近,其耦合度越大,用户相距遠近給予不同的權值,以折算為耦合度值。針對企業的一些特殊要求,我們用程度詞來説明兩個用户分在同一個客户端的.可能性,常見的程度詞如必須、儘可能、不可能、不能等等,我們給不同的程度詞以不同的權值,以折算為耦合度值。

功能耦合度 很明顯,調用功能1的所有用户和調用功能2的所有用户之間的關係越緊密,這兩個功能分在同一應用程序服務器的可能性就越大。這種用户調用功能的關係對功能耦合度影響較大,但其它因素也影響功能耦合度大小。