當前位置:萬佳範文網 >

畢業論文 >畢業設計 >

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

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

【摘要】 本文主要討論分佈式應用系統中基於耦合度的用户分佈、功能分佈和數據分佈問題。【關鍵詞】用户分佈,功能分佈,數據分佈,耦合度,領域知識,自動構造  隨着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

基於耦合度的分佈問題研究
標籤: 耦合度 分佈
  • 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/biye/sheji/oxwepm.html
專題