- 相關(guān)推薦
基于耦合度的分布問題研究
【摘要】
本文主要討論分布式應(yīng)用系統(tǒng)中基于耦合度的用戶分布、功能分布和數(shù)據(jù)分布問題!娟P(guān)鍵詞】用戶分布,功能分布,數(shù)據(jù)分布,耦合度,領(lǐng)域知識,自動構(gòu)造
隨著client/server結(jié)構(gòu)應(yīng)用系統(tǒng)復(fù)雜和擴大,其數(shù)據(jù)、功能和用戶的分布問題變得日益突出。合理有效地設(shè)計mis系統(tǒng)模型是mis系統(tǒng)能否有效發(fā)揮效率的關(guān)鍵。通常處理這些問題都是軟件開發(fā)人員根據(jù)其以往的開發(fā)經(jīng)驗,設(shè)計的好壞受人為因素影響很大,且方案因人而異。本文提出了基于耦合度的分布過程解決方案,并在此基礎(chǔ)上實現(xiàn)了一個分布的自動生成工具。一、
分布問題當(dāng)我們根據(jù)系統(tǒng)的需求信息來設(shè)計基于三層client/server模型的mis系統(tǒng)的時候,一個很重要的工作就是需要確定mis系統(tǒng)由多少個客戶端、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器組成,用戶、功能和數(shù)據(jù)是如何分布在客戶端、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器上的。對于一個mis系統(tǒng)來說,我們都可以將它抽象分解為用戶集
u={u1,u2,..,ul}、功能集f={f1,f2,..,fm}和數(shù)據(jù)集t={t1,t2,..,tn}。用戶通過調(diào)用功能集中的一些功能模塊,來存取數(shù)據(jù)集中的數(shù)據(jù)表。我們可以用圖1說明它們之間的關(guān)系:本文所要討論的分布問題包括用戶分布(user
distribution)、功能分布(function
distribution)和數(shù)據(jù)分布(data
distribution)。用戶分布指的是根據(jù)系統(tǒng)的需求,決定如何在客戶端各個平臺上分配用戶,即每個客戶端允許哪些用戶使用。功能分布也稱處理(process)分布、事務(wù)(business)分布、邏輯(logic)分布,指的是如何在應(yīng)用程序服務(wù)器各個平臺上分配功能,即決定哪些功能適合在哪些平臺上完成。數(shù)據(jù)分布的粒度大小可以是數(shù)據(jù)庫、數(shù)據(jù)表、行、列等,我們這里討論的數(shù)據(jù)分布邏輯單元是數(shù)據(jù)表(以下簡稱數(shù)據(jù)),數(shù)據(jù)分布指的是如何在數(shù)據(jù)庫服務(wù)器各個平臺上分配數(shù)據(jù),即如何在服務(wù)器上組織這些數(shù)據(jù)。二、耦合度的計算在分布式mis系統(tǒng)中,之所以有不同的客戶端、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器,是因為用戶之間、功能之間和數(shù)據(jù)之間也存在著一種類似的不同“吸引力”。我們將這種“吸引力”取名為耦合度(coupling
degree)。我們將兩個用戶分在同一個客戶端的可能性稱之為用戶耦合度,兩個功能分在同一個應(yīng)用程序服務(wù)器的可能性稱之為功能耦合度,兩個數(shù)據(jù)分在同一個數(shù)據(jù)庫服務(wù)器的可能性稱之為數(shù)據(jù)表耦合度。這里討論耦合度,是因為耦合度是分布式mis系統(tǒng)網(wǎng)絡(luò)節(jié)點劃分的依據(jù)。耦合度是不同種因素的函數(shù)。耦合度=f(因素1,因素2,…,因素n)用戶耦合度
用戶之間所屬關(guān)系、距離和特殊要求等因素都可能影響用戶耦合度大小。企業(yè)的部門和職務(wù)之間的所屬關(guān)系構(gòu)成一棵部門職務(wù)關(guān)系樹或森林,葉結(jié)點為用戶。直接同屬一個部門的兩個用戶肯定比間接同屬一個部門的兩個用戶分在同一個客戶端的可能性要大。我們將兩個用戶到它們最近共同祖先的最大距離定義為兩個用戶之間的疏遠(yuǎn)度,當(dāng)兩個用戶分屬于兩棵關(guān)系樹時,它們的疏遠(yuǎn)度為¥
。如圖2所示的部門職務(wù)關(guān)系樹中,用戶u1(職務(wù)1)和u4(職務(wù)3)之間的疏遠(yuǎn)度為2,用戶u1和u3(部門6)之間的疏遠(yuǎn)度為3
。疏遠(yuǎn)度越大其耦合度越小,我們給不同的疏遠(yuǎn)度以不同的權(quán)值,這樣就可以折算為耦合度值。兩個用戶相距400米以內(nèi)肯定比兩個用戶相距1公里以上分在同一個客戶端可能性要大。兩個用戶相距越近,其耦合度越大,用戶相距遠(yuǎn)近給予不同的權(quán)值,以折算為耦合度值。針對企業(yè)的一些特殊要求,我們用程度詞來說明兩個用戶分在同一個客戶端的可能性,常見的程度詞如必須、盡可能、不可能、不能等等,我們給不同的程度詞以不同的權(quán)值,以折算為耦合度值。功能耦合度
很明顯,調(diào)用功能1的所有用戶和調(diào)用功能2的所有用戶之間的關(guān)系越緊密,這兩個功能分在同一應(yīng)用程序服務(wù)器的可能性就越大。這種用戶調(diào)用功能的關(guān)系對功能耦合度影響較大,但其它因素也影響功能耦合度大小。數(shù)據(jù)耦合度
功能存取數(shù)據(jù)的關(guān)系對數(shù)據(jù)耦合度影響較大。其它影響數(shù)據(jù)耦合度大小的因素包括數(shù)據(jù)庫系統(tǒng)的特殊要求、mis系統(tǒng)要求等。三、
分布過程用戶、功能和數(shù)據(jù)分布主要是確立client/server系統(tǒng)結(jié)構(gòu)。我們這里主要討論基于耦合度的用戶、功能和數(shù)據(jù)劃分過程,用戶、功能和數(shù)據(jù)耦合度是我們進行網(wǎng)絡(luò)節(jié)點劃分的依據(jù)。用戶、功能、數(shù)據(jù)分布需要解決兩個問題:1)mis系統(tǒng)由多少個網(wǎng)絡(luò)節(jié)點組成。2)用戶、功能、數(shù)據(jù)是如何在這些網(wǎng)絡(luò)節(jié)點上分配的。這兩個問題的解決又是統(tǒng)一的,即如何進行網(wǎng)絡(luò)節(jié)點的劃分。下面我們以用戶分布為例,來說明分布過程的具體步驟。設(shè)企業(yè)的用戶集合u={u1,u2,…um},lu為客戶端分組劃分的用戶耦合度下限。我們的目標(biāo)是找出一個最小個數(shù)客戶端集合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之間由于距離、所屬關(guān)系、特殊要求等因素影響的耦合度。rf(ui,uj)=
rfd
(ui,uj)
+rfc
(ui,uj)
+rfs
(ui,uj)+…第二步,求用戶二元關(guān)系ru。ru={
|
"
ui,
uj
?
u
且
rf(ui,
uj)3
lu
}第三步,求ru的等價關(guān)系ru挕?ru?
t(ru)第四步,客戶端劃分c。c=u/
ru?/p>分布是一個權(quán)衡的過程,不存在唯一正確的方案。必須兼顧目標(biāo)與限制,綜合考慮所有方面的因素。四、分布的自動生成工具我們設(shè)計和實現(xiàn)了一個mis系統(tǒng)輔助開發(fā)環(huán)境ndtool(node
distributed
tool),這是一個基于耦合度和領(lǐng)域知識的用戶、功能和數(shù)據(jù)分布的自動生成工具。該系統(tǒng)設(shè)計過程貫穿了我們所提出的思想和方法。ecsl(enterprise
concept
structure
description
language)是一個企業(yè)概念結(jié)構(gòu)描述語言,主要用于獲取最終用戶所提供的企業(yè)的需求信息。采用中文的類自然語言形式,面向最終用戶。dkdl(domain
knowledgedescription
language)是一個領(lǐng)域知識描述語言,主要用于獲取領(lǐng)域?qū)<以趍is系統(tǒng)開發(fā)上所積累的經(jīng)驗,并將所得到的領(lǐng)域知識存放于領(lǐng)域知識庫中。該語言面向領(lǐng)域軟件專家。領(lǐng)域知識庫用于存放領(lǐng)域知識。由dkdl獲取的領(lǐng)域?qū)<业拈_發(fā)經(jīng)驗,經(jīng)過分析、組織,所得到的結(jié)果保存在領(lǐng)域知識庫中。我們提供一組領(lǐng)域知識庫的操作接口,用于領(lǐng)域知識庫的存取和維護工作。madl(mis
system
architecture
description
language)是一個分布式mis系統(tǒng)體系結(jié)構(gòu)描述語言,主要用于描述mis系統(tǒng)中的用戶、數(shù)據(jù)和功能的分布情況。它是ndtool系統(tǒng)最后生成的結(jié)果。該語言面向軟件開發(fā)人員。ndtool系統(tǒng)的工作流程。首先,將領(lǐng)域軟件專家所掌握的領(lǐng)域知識,描述成dkdl文本,經(jīng)過dkdl編譯器的編譯,并調(diào)用領(lǐng)域知識庫的接口將所分析的結(jié)果存入領(lǐng)域知識庫中。當(dāng)需要開發(fā)mis系統(tǒng)時,企業(yè)最終用戶將他的需求信息用ecsl語言描述出來。通過ecsl編譯器進行編譯,參考領(lǐng)域知識庫的有關(guān)領(lǐng)域知識,計算用戶、功能和數(shù)據(jù)耦合度,再根據(jù)耦合度進行網(wǎng)絡(luò)節(jié)點的劃分,最后將結(jié)果用madl語言描述出來。提供給開發(fā)人員進行數(shù)據(jù)模型和模塊設(shè)計。五、
結(jié)束語本文圍繞基于耦合度的client/server結(jié)構(gòu)應(yīng)用程序的分布過程及其自動生成工具的實現(xiàn)進行了討論。分布問題具有一個不確定性的特點,同時分布將耗費開發(fā)者大量的精力。如何合理地設(shè)計分布構(gòu)造方法以及設(shè)計分布的自動生成工具是client/server系統(tǒng)開發(fā)過程中一個重要問題。參考文獻:[1]
陸汝鈐,金芝,萬榮林,夏幼明
基于領(lǐng)域知識的需求信息獲取軟件學(xué)報,vol.7,no.
3,1996[2]
趙洪彪,周立柱
client/server結(jié)構(gòu)系統(tǒng)中的處理分布計算機科學(xué),vol.
24,no.5,1997[3]
張左梁
c/s應(yīng)用系統(tǒng)設(shè)計的新概念和新技術(shù)計算機科學(xué),vol.24,no.1,1997
【基于耦合度的分布問題研究】相關(guān)文章:
基于遙感分析的艾比湖流域植被分布研究04-30
基于次大值標(biāo)桿的秘書問題研究04-29
基于GRNN網(wǎng)絡(luò)模型的土壤重金屬空間分布的研究04-25
基于分布式層次模型的診斷技術(shù)研究與應(yīng)用04-30
基于GIS技術(shù)的浙江省酸雨區(qū)分布研究04-30
基于R樹的分布式并行空間索引機制研究04-26
基于RGI的浮空器任務(wù)規(guī)劃問題研究05-03