?? 200603131358465.html
字號(hào):
<P> 基于事件的隱式調(diào)用風(fēng)格的思想是構(gòu)件不直接調(diào)用一個(gè)過程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件。系統(tǒng)中的其它構(gòu)件中的過程在一個(gè)或多個(gè)事件中注冊(cè),當(dāng)一個(gè)事件被觸發(fā),系統(tǒng)自動(dòng)調(diào)用在這個(gè)事件中注冊(cè)的所有過程,這樣,一個(gè)事件的觸發(fā)就導(dǎo)致了另一模塊中的過程的調(diào)用。</P>
<P> 從體系結(jié)構(gòu)上說,這種風(fēng)格的構(gòu)件是一些模塊,這些模塊既可以是一些過程,又可以是一些事件的集合。過程可以用通用的方式調(diào)用,也可以在系統(tǒng)事件中注冊(cè)一些過程,當(dāng)發(fā)生這些事件時(shí),過程被調(diào)用。 </P>
<P> 基于事件的隱式調(diào)用風(fēng)格的主要特點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用,因此,許多隱式調(diào)用的系統(tǒng)也包含顯式調(diào)用作為構(gòu)件交互的補(bǔ)充形式。</P>
<P> 支持基于事件的隱式調(diào)用的應(yīng)用系統(tǒng)很多。例如,在編程環(huán)境中用于集成各種工具,在<a href="200603011033425.html" tppabs="http://www.itisedu.com/phrase/200603011033425.html" target="_new">數(shù)據(jù)庫管理系統(tǒng)</a>中確保數(shù)據(jù)的一致性約束,在用戶界面系統(tǒng)中管理數(shù)據(jù),以及在編輯器中支持語法檢查。例如在某系統(tǒng)中,編輯器和變量監(jiān)視器可以登記相應(yīng)Debugger的斷點(diǎn)事件。當(dāng)Debugger在斷點(diǎn)處停下時(shí),它聲明該事件,由系統(tǒng)自動(dòng)調(diào)用處理程序,如編輯程序可以卷屏到斷點(diǎn),變量監(jiān)視器刷新變量數(shù)值。而Debugger本身只聲明事件,并不關(guān)心哪些過程會(huì)啟動(dòng),也不關(guān)心這些過程做什么處理。</P>
<P> 隱式調(diào)用系統(tǒng)的主要優(yōu)點(diǎn)有:</P>
<P> (1)為軟件重用提供了強(qiáng)大的支持。當(dāng)需要將一個(gè)構(gòu)件加入現(xiàn)存系統(tǒng)中時(shí),只需將它注冊(cè)到系統(tǒng)的事件中。<BR> (2)為改進(jìn)系統(tǒng)帶來了方便。當(dāng)用一個(gè)構(gòu)件代替另一個(gè)構(gòu)件時(shí),不會(huì)影響到其它構(gòu)件的接口。<BR> 隱式調(diào)用系統(tǒng)的主要缺點(diǎn)有:<BR> (1)構(gòu)件放棄了對(duì)系統(tǒng)計(jì)算的控制。一個(gè)構(gòu)件觸發(fā)一個(gè)事件時(shí),不能確定其它構(gòu)件是否會(huì)響應(yīng)它。而且即使它知道事件注冊(cè)了哪些構(gòu)件的構(gòu)成,它也不能保證這些過程被 調(diào)用的順序。<BR> (2)數(shù)據(jù)交換的問題。有時(shí)數(shù)據(jù)可被一個(gè)事件傳遞,但另一些情況下,基于事件的系統(tǒng)必須依靠一個(gè)共享的倉庫進(jìn)行交互。在這些情況下,全局性能和資源管理便成了問題。<BR> (3)既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理存在問題。</P>
<P>5、層次系統(tǒng)風(fēng)格</P>
<P> 層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶。在一些層次系統(tǒng)中,除了一些精心挑選的輸出函數(shù)外,內(nèi)部的層只對(duì)相鄰的層可見。這樣的系統(tǒng)中構(gòu)件在一些層實(shí)現(xiàn)了虛擬機(jī)(在另一些層次系統(tǒng)中層是部分不透明的)。連接件通過決定層間如何交互的協(xié)議來定義,拓?fù)浼s束包括對(duì)相鄰層間交互的約束。 </P>
<P> 這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。這樣,允許將一個(gè)復(fù)雜問題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接口,允許每層用不同的方法實(shí)現(xiàn),同樣為軟件重用提供了強(qiáng)大的支持。</P>
<P> 圖6是層次系統(tǒng)風(fēng)格的示意圖。層次系統(tǒng)最廣泛的應(yīng)用是<a href="200604161254415.html" tppabs="http://www.itisedu.com/phrase/200604161254415.html" target="_new">分層</a>通信協(xié)議。在這一應(yīng)用領(lǐng)域中,每一層提供一個(gè)抽象的功能,作為上層通信的基礎(chǔ)。較低的層次定義低層的交互,最低層通常只定義硬件物理連接。 </P>
<P><IMG src="200631314640143.gif" tppabs="http://www.itisedu.com/manage/Upload/image/200631314640143.gif" border=0></P>
<P>圖6 層次系統(tǒng)風(fēng)格的體系結(jié)構(gòu)</P>
<P> 層次系統(tǒng)有許多可取的屬性:</P>
<P> (1)支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì),使設(shè)計(jì)者可以把一個(gè)復(fù)雜系統(tǒng)按遞增的步驟進(jìn)行分解;<BR> (2)支持功能增強(qiáng),因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换ィ虼斯δ艿母淖冏疃嘤绊懴噜彽纳舷聦樱?lt;BR> (3)支持重用。只要提供的服務(wù)接口定義不變,同一層的不同實(shí)現(xiàn)可以交換使用。這樣,就可以定義一組標(biāo)準(zhǔn)的接口,而允許各種不同的實(shí)現(xiàn)方法。<BR> 但是,層次系統(tǒng)也有其不足之處:<BR> (1)并不是每個(gè)系統(tǒng)都可以很容易地劃分為分層的模式,甚至即使一個(gè)系統(tǒng)的邏輯結(jié)構(gòu)是層次化的,出于對(duì)系統(tǒng)性能的考慮,系統(tǒng)設(shè)計(jì)師不得不把一些低級(jí)或高級(jí)的功能綜合起來;<BR> (2)很難找到一個(gè)合適的、正確的層次抽象方法。</P>
<P>6、倉庫風(fēng)格</P>
<P> 在倉庫風(fēng)格中,有兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)說明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行,倉庫與外構(gòu)件間的相互作用在系統(tǒng)中會(huì)有大的變化。</P>
<P> 控制原則的選取產(chǎn)生兩個(gè)主要的子類。若輸入流中某類時(shí)間觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是一傳統(tǒng)型數(shù)據(jù)庫;另一方面,若中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是一黑板系統(tǒng)。</P>
<P> 圖7是黑板系統(tǒng)的組成。黑板系統(tǒng)的傳統(tǒng)應(yīng)用是信號(hào)處理領(lǐng)域,如語音和<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603021030465.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603021030465.html'" tppabs="http://www.itisedu.com/phrase/200603021030465.html" target="_new">模式識(shí)別</a>。另一應(yīng)用是松耦合代理數(shù)據(jù)共享存取。 </P>
<P><IMG src="200631314654683.gif" tppabs="http://www.itisedu.com/manage/Upload/image/200631314654683.gif" border=0></P>
<P>圖7 黑板系統(tǒng)的組成</P>
<P> 我們從圖4中可以看出,黑板系統(tǒng)主要由三部分組成:</P>
<P> (1)知識(shí)源。知識(shí)源中包含獨(dú)立的、與應(yīng)用程序相關(guān)的知識(shí),知識(shí)源之間不直接進(jìn)行通訊,它們之間的交互只通過黑板來完成。<BR> (2)黑板數(shù)據(jù)結(jié)構(gòu)。黑板數(shù)據(jù)是按照與應(yīng)用程序相關(guān)的層次來組織的解決問題的數(shù)據(jù),知識(shí)源通過不斷地改變黑板數(shù)據(jù)來解決問題。<BR> (3)控制。控制完全由黑板的狀態(tài)驅(qū)動(dòng),黑板狀態(tài)的改變決定使用的特定知識(shí)。</P>
<P><STRONG>七、發(fā)展方向</STRONG></P>
<P>1 各種ADLs之間的信息互換</P>
<P> 現(xiàn)有的ADLs大多是與領(lǐng)域相關(guān)的,所以不利于對(duì)不同領(lǐng)域體系結(jié)構(gòu)的說明。但這些針對(duì)不同領(lǐng)域的ADLs在某些方面又大同小異,造成資源的冗余。其實(shí),大多數(shù)ADLs具有一系列的共同概念。如何用一種公共形式把各種語言綜合起來,使得能夠交換各種體系結(jié)構(gòu)描述信息,將是今后軟件體系結(jié)構(gòu)研究和實(shí)踐的重點(diǎn)之一。</P>
<P>2 設(shè)計(jì)工具和環(huán)境</P>
<P> 軟件體系結(jié)構(gòu)設(shè)計(jì)既然作為軟件工程的一部分,它的計(jì)算機(jī)輔助實(shí)現(xiàn)手段是相當(dāng)重要的。我們應(yīng)當(dāng)開發(fā)出一些<a href="200602282117345.html" tppabs="http://www.itisedu.com/phrase/200602282117345.html" target="_new">軟件工具</a>來實(shí)現(xiàn)體系結(jié)構(gòu)的描述和分析,開發(fā)階段轉(zhuǎn)換工具,以實(shí)現(xiàn)階段成果的自動(dòng)轉(zhuǎn)換,例如,把需求規(guī)格說明自動(dòng)轉(zhuǎn)換為構(gòu)件等。目前關(guān)于這方面的研究成果很少,特別是可以應(yīng)用到實(shí)際項(xiàng)目開發(fā)中的工具和環(huán)境就更少。</P>
<P>3 體系結(jié)構(gòu)再工程</P>
<P> 當(dāng)今軟件系統(tǒng)的規(guī)模變得越來越大,結(jié)構(gòu)也越來越復(fù)雜,同時(shí)從頭開始構(gòu)建的大系統(tǒng)數(shù)量在急劇地減少,因而很多遺留系統(tǒng)正在被逐步地利用。從遺留系統(tǒng)軟件代碼和系統(tǒng)中抽取結(jié)構(gòu)信息,經(jīng)過描述、統(tǒng)一、抽象、一般化與實(shí)例化等處理,可總結(jié)出系統(tǒng)的體系結(jié)構(gòu)。</P>
<P> 在這種情況下,軟件再工程變得越來越重要,因?yàn)樗峁┝艘粭l把遺留系統(tǒng)轉(zhuǎn)換為可進(jìn)化系統(tǒng)的現(xiàn)實(shí)可行的途徑,是一種可以改進(jìn)人們對(duì)軟件的理解和改進(jìn)軟件本身的活動(dòng)。這類研究的目的是為一些特定的應(yīng)用領(lǐng)域的軟件系統(tǒng)提供一些體系結(jié)構(gòu)框架,如控制系統(tǒng)、移動(dòng)<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603021227495.html \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603021227495.html'" tppabs="http://www.itisedu.com/phrase/200603021227495.html" target="_new">機(jī)器人</a>和用戶接口界面等。通過這些框架可以很方便地構(gòu)造一個(gè)新的軟件系統(tǒng)。 </P>
<P><BR></FONT> </P></div>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -