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