信息系統(tǒng)項(xiàng)目管理師與系統(tǒng)集成項(xiàng)目管理工程師考點(diǎn)考題梳理(8):軟件體系結(jié)構(gòu)與軟件中間件
考點(diǎn)梳理
軟件體系結(jié)構(gòu)定義
軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級(jí)抽象,并由構(gòu)成系統(tǒng)的元素的描述及元素的相互作用、元素集成的模式以及這些模式的約束組成。
典型體系結(jié)構(gòu)
管道/過(guò)濾器模式。
在管道,過(guò)濾器架構(gòu)模式中,每個(gè)構(gòu)件都有一組輸入,輸出,構(gòu)件讀取輸入的數(shù)據(jù)流,經(jīng)過(guò)內(nèi)部處理后,產(chǎn)生輸出數(shù)據(jù)流,該過(guò)程主要完成輸入流的變換及增量計(jì)算。通常,將這里的構(gòu)件稱為過(guò)濾器,其中的連接器就像是數(shù)據(jù)流傳輸?shù)墓艿?,將一個(gè)過(guò)濾器的輸出傳送到另一過(guò)濾器的輸入。管道,過(guò)濾器輸出的正確性并不依賴于過(guò)濾器進(jìn)行增量計(jì)算過(guò)程的順序。
管道/過(guò)濾器模式的優(yōu)點(diǎn):
1) 體現(xiàn)了各功能模塊的“黑盤”特性及高內(nèi)聚、低耦合的特點(diǎn)。
2) 可以將整個(gè)系統(tǒng)的輸入,輸出行為看成是多個(gè)過(guò)濾器行為的簡(jiǎn)單合成。
3) 支持軟件功能模塊的重用。
4) 便于系統(tǒng)維護(hù):新的過(guò)濾器可以添加到現(xiàn)有系統(tǒng)中來(lái),舊的可以由改進(jìn)的過(guò)濾器替換。
5) 支持某些特定的分析,如吞吐量計(jì)算、死鎖檢測(cè)等。
6) 支持并行操作,每個(gè)過(guò)濾器可以作為一個(gè)單獨(dú)的任務(wù)完成。
管道/過(guò)濾器模式的缺點(diǎn):
1) 通常導(dǎo)致系統(tǒng)處理過(guò)程的成批操作。
2) 需要設(shè)計(jì)者協(xié)調(diào)兩個(gè)相對(duì)獨(dú)立但又存在關(guān)系的數(shù)據(jù)流。
3) 可能需要每個(gè)過(guò)濾器自己完成數(shù)據(jù)解析和合成工作(如加密和解密),從而導(dǎo)
4) 致系統(tǒng)性能下降,并增加了過(guò)濾器具體實(shí)現(xiàn)的復(fù)雜性。
面向?qū)ο竽J?/span>
面向?qū)ο竽J降牡湫蛻?yīng)用是基于構(gòu)件的軟件開(kāi)發(fā)。
面向?qū)ο竽J降膬?yōu)點(diǎn):
1) 高度模塊化。
2) 封裝功能實(shí)現(xiàn)了數(shù)據(jù)隱藏。
3) 繼承性提供了一種實(shí)現(xiàn)代碼共享的手段。
4) 提供了系統(tǒng)的靈活性,便于維護(hù)及擴(kuò)充。
面向?qū)ο笙到y(tǒng)的缺點(diǎn)在于:對(duì)象之間的調(diào)用需要知道所調(diào)用對(duì)象的標(biāo)識(shí)。如果對(duì)象的標(biāo)識(shí)發(fā)生改變,就必須通知所有調(diào)用該對(duì)象的對(duì)象。否則系統(tǒng)將可能無(wú)法正常運(yùn)行。
事件驅(qū)動(dòng)模式
事件驅(qū)動(dòng)模式的主要特點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)受到事件的影響,且不能假定構(gòu)件的處理順序,甚至不知道會(huì)調(diào)用哪些過(guò)程,使用事件驅(qū)動(dòng)模式的典型系統(tǒng)包括各種圖形界面工具。
1) 事件驅(qū)動(dòng)模式的優(yōu)點(diǎn):
2) 支持軟件重用,容易實(shí)現(xiàn)并發(fā)處理。
3) 具有良好的可擴(kuò)展性,通過(guò)注冊(cè)可引入新的構(gòu)件,而不影響現(xiàn)有構(gòu)件。
4) 可以簡(jiǎn)化客戶代碼。
事件驅(qū)動(dòng)模式的缺點(diǎn):
1) 構(gòu)件削弱了自身對(duì)系統(tǒng)的控制能力。一個(gè)構(gòu)件觸及事件時(shí),并不能確定響應(yīng)該事件的其他構(gòu)件及各構(gòu)件的執(zhí)行順序。
2) 不能很好地解決數(shù)據(jù)交換問(wèn)題。
3) 使系統(tǒng)中各構(gòu)件的邏輯關(guān)系變得更加復(fù)雜。
分層模式
分層模式的典型應(yīng)用是分層通信協(xié)議,如ISO/OSI的七層網(wǎng)絡(luò)模型。
分層模式的優(yōu)點(diǎn):
1) 有助把復(fù)雜的問(wèn)題按功能分解,使整體設(shè)計(jì)更為清晰。
2) 支持系統(tǒng)設(shè)計(jì)的逐級(jí)抽象。
3) 具有較好的可擴(kuò)展性。
4) 支持復(fù)用。
分層模式的缺點(diǎn):
1) 并不是每個(gè)系統(tǒng)都可以很容易地劃分出層次來(lái);同時(shí),各層功能的劃分也沒(méi)有一個(gè)統(tǒng)一的、正確的抽象方法。
2) 層次的個(gè)數(shù)過(guò)多,系統(tǒng)性能可能會(huì)下降。
知識(shí)庫(kù)模式
知識(shí)庫(kù)模式采用兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)構(gòu)件說(shuō)明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存儲(chǔ)上執(zhí)行,中央數(shù)據(jù)構(gòu)件與獨(dú)立的外部構(gòu)件間的相互作用是系統(tǒng)中的主要問(wèn)題。
知識(shí)庫(kù)模式有兩種不同的控制策略:如果輸入流觸發(fā)進(jìn)程執(zhí)行韻選擇,則為基于傳統(tǒng)數(shù)據(jù)庫(kù)型的知識(shí)庫(kù)模式;如果中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則為基于黑板系統(tǒng)的知識(shí)庫(kù)模式。
客戶機(jī)/服務(wù)器模式(C/S模式)
C/S模式的優(yōu)點(diǎn):
1) 客戶機(jī)與服務(wù)器分離,允許網(wǎng)絡(luò)分布操作:二者的開(kāi)發(fā)也可分開(kāi)同時(shí)進(jìn)行。
2) 一個(gè)服務(wù)器可以服務(wù)于多個(gè)客戶機(jī)。
隨著企業(yè)規(guī)模的日益擴(kuò)大,軟件的復(fù)雜程度不斷提高,傳統(tǒng)的二層c/s模式的缺點(diǎn)日益突出:
1) 客戶機(jī)與服務(wù)器的通訊依賴于網(wǎng)絡(luò),可能成為整個(gè)系統(tǒng)運(yùn)作的瓶頸;客戶機(jī)的負(fù)荷過(guò)重,難以管理大量的客戶機(jī),系統(tǒng)的性能受到很大影響。
2) 如果服務(wù)器及其界面定義有改變,則客戶機(jī)也要做相應(yīng)改變。
3) 二層c/s模式采用單一服務(wù)器且以局域網(wǎng)為中心,難以擴(kuò)展至廣域網(wǎng)或Internet。
4) 數(shù)據(jù)安全性不好。客戶端程序可以直接訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,使數(shù)據(jù)庫(kù)的安全性受到威脅。
c/s模式適用于分布式系統(tǒng),得到了廣泛的應(yīng)用。為了解決as模式中客戶端的問(wèn)題,發(fā)展形成了瀏覽器和服務(wù)器( Browser/Server,B/S)模式;為了解決c/s模式中服務(wù)器端的問(wèn)題,發(fā)展形成了三層(多層)c/s模式,即多層應(yīng)用架構(gòu)。
軟件體系結(jié)構(gòu)設(shè)計(jì)方法
總體目標(biāo)可以概括如下:
1) 最大化復(fù)用:復(fù)用包括構(gòu)件的復(fù)用和設(shè)計(jì)模式的使用等多個(gè)方面。
2) 復(fù)雜問(wèn)題簡(jiǎn)單化:這也是中間件或多層技術(shù)的根本目標(biāo)。在設(shè)計(jì)過(guò)程中,如果需要多個(gè)類協(xié)調(diào)完成某些功能時(shí),應(yīng)能正確使用適當(dāng)?shù)脑O(shè)計(jì)模式。
3) 靈活的擴(kuò)展性:具備靈活的擴(kuò)展性使得用戶可以在架構(gòu)上進(jìn)行二次開(kāi)發(fā)或更加具體的開(kāi)發(fā)。
軟件體系結(jié)構(gòu)分析與評(píng)估
1) 軟件架構(gòu)設(shè)計(jì)需要考慮如下問(wèn)題:
2) 關(guān)系數(shù)據(jù)庫(kù)與對(duì)象數(shù)據(jù)庫(kù)的選擇問(wèn)題——應(yīng)盡量采用關(guān)系數(shù)據(jù)庫(kù)。
3) 用戶界面選擇使用HTML——HTML界面的開(kāi)發(fā)和維護(hù)比其他圖形界面應(yīng)用程序更容易。此外,HTML使用的HTTP (S)協(xié)議可以穿越防火墻,解決了Internet應(yīng)用中的一個(gè)重要問(wèn)題。
4) 靈活性和性能的考慮——在開(kāi)發(fā)系統(tǒng)之前,需要權(quán)衡獨(dú)立于廠商抽象定義所提供的靈活性和特定廠商產(chǎn)品帶來(lái)的性能。
5) 技術(shù)的選擇——選擇成熟的技術(shù)可以規(guī)避項(xiàng)目風(fēng)險(xiǎn)。掌握技術(shù)不僅需要理解技術(shù)是什么及如何運(yùn)用,還需要理解技術(shù)的適用范圍和局限性。
6) 聘請(qǐng)經(jīng)驗(yàn)豐富的架構(gòu)設(shè)計(jì)師:可以有效地保證項(xiàng)目的成功。
軟件中間件
中間件是位于硬件、操作系統(tǒng)等平臺(tái)和應(yīng)用之間的通用服務(wù),如下圖所示,這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議。不同的硬件及操作系統(tǒng)平臺(tái),可以有符合接口和協(xié)議規(guī)范的多種實(shí)現(xiàn)。
幾種主要的中間件
(1)數(shù)據(jù)庫(kù)訪問(wèn)中間件。數(shù)據(jù)庫(kù)訪問(wèn)中間件通過(guò)一個(gè)抽象層訪問(wèn)數(shù)據(jù)庫(kù),從而允許使用相同或相似的代碼訪問(wèn)不同的數(shù)據(jù)庫(kù)資源。典型的技術(shù)如Windows平臺(tái)的ODBC和Java平臺(tái)的JDBC等。
(2)遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)是一種廣泛使用的分布式應(yīng)用程序處理方法。一個(gè)應(yīng)用程序使用RPC來(lái)“遠(yuǎn)程”執(zhí)行一個(gè)位于不同地址空間內(nèi)的過(guò)程,從效果上看和執(zhí)行本地調(diào)用相同。
(3)面向消息中間件(Message-Oriented Middleware,MOM)利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并可基于數(shù)據(jù)通信進(jìn)行分布系統(tǒng)的集成。
(4)分布式對(duì)象中間件。隨著對(duì)象技術(shù)與分布式計(jì)算技術(shù)的發(fā)展,兩者相互結(jié)合形成了分布式對(duì)象技術(shù),并發(fā)展成為當(dāng)今軟件技術(shù)的主流方向。典型的產(chǎn)品如OMG的CORBA、Sun的RIVU/EJB、Microsoft的DCOM等。
(5)事務(wù)中間件,也稱事務(wù)處理監(jiān)控器(Transaction Processing Monitor,TPM)最早出現(xiàn)在大型機(jī)上,為其提供支持大規(guī)模事務(wù)處理的可靠運(yùn)行環(huán)境。隨事務(wù)處理監(jiān)控程序位于客戶和服務(wù)器之問(wèn),完成事務(wù)管理與協(xié)調(diào)、負(fù)載平衡、失效恢復(fù)等任務(wù),并提高系統(tǒng)的整體性能。典型產(chǎn)品如BEA的Tuxedo。隨著對(duì)象技術(shù)與事務(wù)技術(shù)的結(jié)合,近年還出現(xiàn)了一類新產(chǎn)品,即對(duì)象事務(wù)監(jiān)控器(Object Transaction Monitor,OTM),可以保證分布式對(duì)象的事務(wù)完整性,支持EJB的J2EE應(yīng)用服務(wù)器就屬于該類產(chǎn)品。
信息系統(tǒng)項(xiàng)目管理師、系統(tǒng)集成項(xiàng)目管理工程師真題考題舉例
用一系列軟件的修改來(lái)評(píng)價(jià)軟件體系結(jié)構(gòu)的易修改性,屬于基于( )的軟件體系結(jié)構(gòu)評(píng)估方式。
A、調(diào)查問(wèn)卷或檢查表
B、場(chǎng)景
C、度量
D、實(shí)際運(yùn)行
信管網(wǎng)答案與解析:http://m.xiexiliangjiufa.com/st/778268.html
下列描述中,( )不是軟件體系結(jié)構(gòu)研究的內(nèi)容。
A、軟件體系結(jié)構(gòu)描述語(yǔ)言及工具
B、軟件體系結(jié)構(gòu)分析、設(shè)計(jì)及驗(yàn)證
C、軟件開(kāi)發(fā)過(guò)程中應(yīng)遵守的政策和法規(guī)
D、特定領(lǐng)域的體系結(jié)構(gòu)
信管網(wǎng)答案與解析:http://m.xiexiliangjiufa.com/st/777268.html
小王在公司局域網(wǎng)中用Delphi 編寫了客戶端應(yīng)用程序,其后臺(tái)數(shù)據(jù)庫(kù)使用MS+SQL Server,應(yīng)用程序通過(guò)ODBC 連接到后臺(tái)數(shù)據(jù)庫(kù)。此處的ODBC 是( )。
A.中間件
B. WEB Service
C. COM 構(gòu)件
D. WEB 容器
信管網(wǎng)答案與解析:http://m.xiexiliangjiufa.com/st/1186409.html
中間件是位于硬件、操作系統(tǒng)等平臺(tái)和應(yīng)用之間的通用服務(wù)。( )位于客戶和服務(wù)器之間,負(fù)責(zé)負(fù)載均衡、失效恢復(fù)等任務(wù),以提高系統(tǒng)的整體性能。
A.數(shù)據(jù)庫(kù)訪問(wèn)中間件
B.面向消息中間件
C.分布式對(duì)象中間件
D.事務(wù)中間件
信管網(wǎng)答案與解析:http://m.xiexiliangjiufa.com/st/1176405.html
關(guān)于中間件特點(diǎn)的描述,( )是不正確的。
A.中間件可運(yùn)行于多種硬件和操作系統(tǒng)平臺(tái)上
B.跨越網(wǎng)絡(luò)、硬件、操作系統(tǒng)平臺(tái)的應(yīng)用或服務(wù)可通過(guò)中間件透明交互
C。中間件運(yùn)行于客戶機(jī)/服務(wù)器的操作系統(tǒng)內(nèi)核中,提高內(nèi)核運(yùn)行效率
D.中間件應(yīng)支持標(biāo)準(zhǔn)的協(xié)議和接口
信管網(wǎng)答案與解析:http://m.xiexiliangjiufa.com/st/878303.html
練習(xí)更多試題請(qǐng)登錄軟題庫(kù):www.ruantiku.com