當前位置:概念範文網>畢業論文>畢業設計>

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

畢業設計 閱讀(1.17W)

【摘要】 本文主要討論分散式應用系統中基於耦合度的使用者分佈、功能分佈和資料分佈問題。【關鍵詞】使用者分佈,功能分佈,資料分佈,耦合度,領域知識,自動構造  隨著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的所有使用者之間的關係越緊密,這兩個功能分在同一應用程式伺服器的可能性就越大。這種使用者呼叫功能的關係對功能耦合度影響較大,但其它因素也影響功能耦合度大小。資料耦合度 功能存取資料的關係對資料耦合度影響較大。其它影響資料耦合度大小的因素包括資料庫系統的特殊要求、MIS系統要求等。三、 分佈過程使用者、功能和資料分佈主要是確立Client/Server系統結構。我們這裡主要討論基於耦合度的使用者、功能和資料劃分過程,使用者、功能和資料耦合度是我們進行網路節點劃分的依據。使用者、功能、資料分佈需要解決兩個問題:1)MIS系統由多少個網路節點組成。2)使用者、功能、資料是如何在這些網路節點上分配的。這兩個問題的解決又是統一的,即如何進行網路節點的劃分。下面我們以使用者分佈為例,來說明分佈過程的具體步驟。設企業的使用者集合U={u1,u2,…um},Lu為客戶端分組劃分的使用者耦合度下限。我們的目標是找出一個最小個數客戶端集合C={C1, C2, C3,…, Ck},客戶端C1, C2, C3,…, Ckí U,滿足(1) C1,+C2+ C3+…+Ck =U。(2)任意Ci∈ C,Cj∈C,i≠j 有Ci∩Cj=φ。(3)若RF(ui,uj)>=Lu,則使用者ui,uj 就在同一客戶端。具體步驟如下:第一步,計算使用者之間耦合度。這裡RFd (ui,uj) 、RFc (ui,uj) 、RFs (ui,uj)分別表示使用者ui和uj之間由於距離、所屬關係、特殊要求等因素影響的耦合度。RF(ui,uj)= RFd (ui,uj) +RFc (ui,uj) +RFs (ui,uj)+…第二步,求使用者二元關係Ru。Ru={<ui, uj > | " ui, uj ? U 且 RF(ui, uj)3 Lu }第三步,求Ru的等價關係Ru挕?Ru? t(Ru)第四步,客戶端劃分C。C=U/ Ru?/P>分佈是一個權衡的過程,不存在唯一正確的方案。必須兼顧目標與限制,綜合考慮所有方面的因素。四、分佈的自動生成工具我們設計和實現了一個MIS系統輔助開發環境NDTool(Node Distributed Tool),這是一個基於耦合度和領域知識的使用者、功能和資料分佈的自動生成工具。該系統設計過程貫穿了我們所提出的思想和方法。ECSL(Enterprise Concept Structure description Language)是一個企業概念結構描述語言,主要用於獲取終端使用者所提供的企業的需求資訊。採用中文的類自然語言形式,面向終端使用者。DKDL(Domain KnowledgeDescription Language)是一個領域知識描述語言,主要用於獲取領域專家在MIS系統開發上所積累的經驗,並將所得到的領域知識存放於領域知識庫中。該語言面向領域軟體專家。領域知識庫用於存放領域知識。由DKDL獲取的領域專家的開發經驗,經過分析、組織,所得到的結果儲存在領域知識庫中。我們提供一組領域知識庫的操作介面,用於領域知識庫的存取和維護工作。MADL(MIS System Architecture Description Language)是一個分散式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

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