版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.1軟件體系結(jié)構(gòu)描述方法4.2軟件體系結(jié)構(gòu)描述語(yǔ)言4.3
典型的軟件體系結(jié)構(gòu)描述語(yǔ)言4.4
可擴(kuò)展標(biāo)記語(yǔ)言4.5
基于XML的軟件體系結(jié)構(gòu)描述語(yǔ)言4.6使用“4+1”模型描述軟件體系結(jié)構(gòu)4.7使用UML描述軟件體系結(jié)構(gòu)4.8本章小結(jié)本章內(nèi)容在目前通用的軟件開(kāi)發(fā)方法中,對(duì)軟件體系結(jié)構(gòu)的描述通常采用非形式化的圖和文本,它們不能描述系統(tǒng)構(gòu)件之間的接口,也難于進(jìn)行形式化分析和模擬,并且缺乏相應(yīng)的支持工具幫助設(shè)計(jì)師完成設(shè)計(jì)工作,也不能分析其一致性和完整性等特性。因此,形式化的、規(guī)范化的體系結(jié)構(gòu)描述對(duì)于體系結(jié)構(gòu)的設(shè)計(jì)和理解都是非常重要的。第4章軟件體系結(jié)構(gòu)描述
描述方法的種類(lèi)
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎
圖形表達(dá)工具◎
模塊內(nèi)連接語(yǔ)言◎
基于軟構(gòu)件的系統(tǒng)描述語(yǔ)言◎
軟件體系結(jié)構(gòu)描述語(yǔ)言
對(duì)于軟件體系結(jié)構(gòu)的描述和表達(dá),一種簡(jiǎn)潔易懂且使用廣泛的方法是采用由矩形框和有向線(xiàn)段組合而成的圖形表達(dá)工具。在這種方法中,矩形框代表抽象構(gòu)件,框內(nèi)標(biāo)注的文字為抽象構(gòu)件的名稱(chēng),有向線(xiàn)段代表輔助各構(gòu)件進(jìn)行通信、控制或關(guān)聯(lián)的連接件。第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法
圖形表達(dá)工具
5.1
生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)生產(chǎn)是指廠商對(duì)各種生產(chǎn)要素加以組合制成產(chǎn)品的行為。生產(chǎn)要素就是生產(chǎn)過(guò)程中所使用的各種資源,主要包括勞動(dòng)、資本、土地和企業(yè)家才能。5.1生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)勞動(dòng)是指勞動(dòng)者所提供的各種服務(wù)資本是指生產(chǎn)過(guò)程中使用的資金土地是指在生產(chǎn)過(guò)程中所使用的自然資源企業(yè)家才能是指企業(yè)家對(duì)整個(gè)生產(chǎn)過(guò)程的管理和組織工作
企業(yè)家主要根據(jù)市場(chǎng)預(yù)測(cè),合理地配置各生產(chǎn)要素來(lái)從事生產(chǎn)經(jīng)營(yíng)活動(dòng),以追求企業(yè)的利潤(rùn)最大化。5.1.1
生產(chǎn)函數(shù)
生產(chǎn)函數(shù)是指一定時(shí)期內(nèi)生產(chǎn)要素的數(shù)量與某種組合與其所能產(chǎn)出的最大產(chǎn)量之間存在的函數(shù)關(guān)系。生產(chǎn)函數(shù)的表達(dá)式如式5.1所示。式5.1中的y表示總產(chǎn)出量,L,K,N,E分別表示投入到生產(chǎn)中的勞動(dòng)、資本、土地、企業(yè)家才能的數(shù)量。1.生產(chǎn)函數(shù)的定義5.1.1生產(chǎn)函數(shù)
考慮到土地的固定性,變化較小,企業(yè)家才能難以估算故生產(chǎn)函數(shù)通常被簡(jiǎn)化為式5.2。式5.2表明,在已知?jiǎng)趧?dòng)和資本數(shù)量的組合情況時(shí),可以推算出產(chǎn)品的最大產(chǎn)量。1.生產(chǎn)函數(shù)的定義5.1.1生產(chǎn)函數(shù)2.生產(chǎn)函數(shù)的特征特征①資本與勞動(dòng)力的邊際產(chǎn)出總是為正值,勞動(dòng)力(或者資本)投入量不變的情況下,資本(或者勞動(dòng)力)的增加將引起產(chǎn)出的增加②邊際產(chǎn)量遞減特性。當(dāng)其他生產(chǎn)要素固定不變時(shí),隨著某一要素投入量的增加,其邊際產(chǎn)量將逐漸減少③生產(chǎn)函數(shù)具有非負(fù)性,總產(chǎn)出必須是正值,且總產(chǎn)量是生產(chǎn)要素組合的結(jié)果,單一要素的投入是不能獲得產(chǎn)出的5.1.1生產(chǎn)函數(shù)3.規(guī)模報(bào)酬規(guī)模報(bào)酬又稱(chēng)為規(guī)模經(jīng)濟(jì),主要研究所有要素都同比例增加時(shí),產(chǎn)量時(shí)如何發(fā)生變化的。
通常在規(guī)模較小時(shí),增加投入可以促進(jìn)規(guī)模報(bào)酬遞增,而當(dāng)規(guī)模達(dá)到一定程度時(shí),則會(huì)出現(xiàn)規(guī)模報(bào)酬遞減的情況。5.1.1
生產(chǎn)函數(shù)
3.規(guī)模報(bào)酬5.1.1
生產(chǎn)函數(shù)分別對(duì)公示5.3中的L與K求偏導(dǎo)數(shù)則有:式5.4中,
表示勞動(dòng)力對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,勞動(dòng)力增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比;
表示資本對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,資本增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比。3.規(guī)模報(bào)酬5.1.1
生產(chǎn)函數(shù)
5.1.2軟件生產(chǎn)函數(shù)
5.1.2軟件生產(chǎn)函數(shù)
5.1.2軟件生產(chǎn)函數(shù)
軟件生產(chǎn)率是指軟件開(kāi)發(fā)的效率,是衡量軟件開(kāi)發(fā)水平的一個(gè)重要因素。影響軟件生產(chǎn)率的因素眾多,主要有技術(shù)因素、管理因素以及文化因素。5.1.2軟件生產(chǎn)函數(shù)強(qiáng)調(diào)對(duì)企業(yè)研發(fā)人員個(gè)人職業(yè)能力的綜合評(píng)估。為了提升個(gè)人對(duì)軟件企業(yè)的貢獻(xiàn),有必要從專(zhuān)業(yè)、技能、經(jīng)驗(yàn)、學(xué)歷以及年齡等多方面進(jìn)行考量。軟件技術(shù)領(lǐng)域最好根據(jù)研發(fā)人員所擅長(zhǎng)的技術(shù)能力來(lái)劃分不同的專(zhuān)業(yè)技術(shù)組。培養(yǎng)研發(fā)人員對(duì)新技術(shù)的學(xué)習(xí)掌握,并創(chuàng)新應(yīng)用。提高軟件生產(chǎn)率的主要舉措有:技術(shù)方面5.1.2軟件生產(chǎn)函數(shù)建立良好的人才激勵(lì)機(jī)制,通過(guò)物質(zhì)、精神獎(jiǎng)勵(lì)以及職務(wù)晉升制度提高研發(fā)人員的工作熱情。建立科學(xué)、合理的研發(fā)人員梯隊(duì)制度,明確劃分管理與技術(shù)領(lǐng)域人才。依據(jù)軟件企業(yè)所處的市場(chǎng)環(huán)境及企業(yè)自身發(fā)展的要求適時(shí)變革管理。用以應(yīng)對(duì)不斷變化的IT市場(chǎng),進(jìn)而增強(qiáng)軟件企業(yè)的核心競(jìng)爭(zhēng)力。提高軟件生產(chǎn)率的主要舉措有:管理方面5.1.2軟件生產(chǎn)函數(shù)建立良好的企業(yè)學(xué)習(xí)氛圍。通過(guò)研發(fā)人員個(gè)人知識(shí)的學(xué)習(xí)、交流及其共享來(lái)形成群體效應(yīng),提升整個(gè)企業(yè)的知識(shí)資源。注重軟件工程項(xiàng)目團(tuán)隊(duì)建設(shè),加強(qiáng)團(tuán)隊(duì)合作精神,提高團(tuán)隊(duì)溝通能力。提高軟件生產(chǎn)率的主要舉措有:文化方面
圖形表達(dá)工具
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法目前,這種圖形表達(dá)工具在軟件設(shè)計(jì)中占據(jù)著主導(dǎo)地位。盡管由于在術(shù)語(yǔ)和表達(dá)語(yǔ)義上存在著一些不規(guī)范和不精確,使得以矩形框與線(xiàn)段為基礎(chǔ)的傳統(tǒng)圖形表達(dá)方法在不同系統(tǒng)和不同文檔之間有著許多不一致甚至矛盾,但該方法仍然以其簡(jiǎn)潔易用的特點(diǎn)在實(shí)際的設(shè)計(jì)和開(kāi)發(fā)工作中被廣泛使用。第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法
圖形表達(dá)工具
模塊內(nèi)連接語(yǔ)言
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎采用將一種或幾種傳統(tǒng)程序設(shè)計(jì)語(yǔ)言的模塊連接起來(lái)的模塊內(nèi)連接語(yǔ)言(MIL)。由于程序設(shè)計(jì)語(yǔ)言和模塊內(nèi)連接語(yǔ)言具有嚴(yán)格的語(yǔ)義基礎(chǔ),因此它們能支持對(duì)較大的軟件單元進(jìn)行描述。◎MIL方式對(duì)模塊化的程序設(shè)計(jì)和分段編譯等程序設(shè)計(jì)與開(kāi)發(fā)技術(shù)確實(shí)發(fā)揮了很大的作用。但是由于這些語(yǔ)言處理和描述的軟件設(shè)計(jì)開(kāi)發(fā)層次過(guò)于依賴(lài)程序設(shè)計(jì)語(yǔ)言,因此限制了它們處理和描述比程序設(shè)計(jì)語(yǔ)言元素更為抽象的高層次軟件體系結(jié)構(gòu)元素的能力。
基于軟構(gòu)件的系統(tǒng)描述語(yǔ)言
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎基于軟構(gòu)件的系統(tǒng)描述語(yǔ)言將軟件系統(tǒng)描述成一種是由許多以特定形式相互作用的特殊軟件實(shí)體構(gòu)造組成的組織或系統(tǒng)?!蜻@種表達(dá)和描述方式雖然也是較好的一種以構(gòu)件為單位的軟件系統(tǒng)描述方法,但是他們所面向和針對(duì)的系統(tǒng)元素仍然是一些層次較低的以程序設(shè)計(jì)為基礎(chǔ)的通信協(xié)作軟件實(shí)體單元,而且這些語(yǔ)言所描述和表達(dá)的系統(tǒng)一般而言都是面向特定應(yīng)用的特殊系統(tǒng),這些特性使得基于軟構(gòu)件的系統(tǒng)描述仍然不是十分適合軟件體系結(jié)構(gòu)的描述和表達(dá)。
軟件體系結(jié)構(gòu)描述語(yǔ)言
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法◎軟件體系結(jié)構(gòu)的第四種描述和表達(dá)方法是參照傳統(tǒng)程序設(shè)計(jì)語(yǔ)言的設(shè)計(jì)和開(kāi)發(fā)經(jīng)驗(yàn),重新設(shè)計(jì)、開(kāi)發(fā)和使用針對(duì)軟件體系結(jié)構(gòu)特點(diǎn)的專(zhuān)門(mén)的軟件體系結(jié)構(gòu)描述語(yǔ)言?!蛴捎贏DL是在吸收了傳統(tǒng)程序設(shè)計(jì)中的語(yǔ)義嚴(yán)格精確的特點(diǎn)基礎(chǔ)上,針對(duì)軟件體系結(jié)構(gòu)的整體性和抽象性特點(diǎn),定義和確定適合于軟件體系結(jié)構(gòu)表達(dá)與描述的有關(guān)抽象元素,因此,ADL是當(dāng)前軟件開(kāi)發(fā)和設(shè)計(jì)方法學(xué)中一種發(fā)展很快的軟件體系結(jié)構(gòu)描述方法,目前,已經(jīng)有幾十種常見(jiàn)的ADL。
軟件體系結(jié)構(gòu)描述框架標(biāo)準(zhǔn)IEEEP1471
第4章軟件體系結(jié)構(gòu)描述鑒于體系結(jié)構(gòu)描述的概念與實(shí)踐的不統(tǒng)一,IEEE于1995年8月成立了體系結(jié)構(gòu)工作組,綜合體系結(jié)構(gòu)描述研究成果,并參考業(yè)界的體系結(jié)構(gòu)描述的實(shí)踐,負(fù)責(zé)起草了體系結(jié)構(gòu)描述框架標(biāo)準(zhǔn),即
IEEEP1471,并于2000年9月21日通過(guò)IEEE-SA標(biāo)準(zhǔn)委員會(huì)評(píng)審。4.1軟件體系結(jié)構(gòu)描述方法
IEEEP1471
第4章軟件體系結(jié)構(gòu)描述◎IEEEP1471適用于軟件密集的系統(tǒng),其目標(biāo)在于:便于體系結(jié)構(gòu)的表達(dá)與交流,并通過(guò)體系結(jié)構(gòu)要素及其實(shí)踐標(biāo)準(zhǔn)化,奠定質(zhì)量與成本的基礎(chǔ)?!騃EEEP1471詳細(xì)介紹了一套體系結(jié)構(gòu)描述的概念框架,并給出建立框架的思路。但在如何描述以及具體的描述技術(shù)等方面缺乏更進(jìn)一步的指導(dǎo)。4.1軟件體系結(jié)構(gòu)描述方法
Rational
第4章軟件體系結(jié)構(gòu)描述◎在IEEEP1471推薦的體系結(jié)構(gòu)描述的概念框架基礎(chǔ)上,
Rational起草了可重用的軟件資產(chǎn)規(guī)格說(shuō)明,專(zhuān)門(mén)討論了體系結(jié)構(gòu)描述的規(guī)格說(shuō)明,提出了一套易于重用的體系結(jié)構(gòu)描述規(guī)范?!?/p>
可重用的體系結(jié)構(gòu)描述框架建議,基于RUP(RationalUnifiedProcess)、采用UML模型描述軟件的體系結(jié)構(gòu),認(rèn)為體系結(jié)構(gòu)描述的關(guān)鍵是定義視點(diǎn)、視圖以及建模元素之間的映射關(guān)系。4.1軟件體系結(jié)構(gòu)描述方法它從四個(gè)視點(diǎn)出發(fā)描述體系結(jié)構(gòu),即需求視點(diǎn)、設(shè)計(jì)視點(diǎn)、實(shí)現(xiàn)視點(diǎn)和測(cè)試視點(diǎn)。并在此基礎(chǔ)上提出了七個(gè)體系結(jié)構(gòu)視圖,即用例視圖、域視圖、非功能需求視圖、邏輯視圖、實(shí)現(xiàn)視圖、過(guò)程視圖和部署視圖。然后,從系統(tǒng)建模的角度考慮多個(gè)視圖之間的映射關(guān)系,并建議了這些視圖的表示和視圖之間的映射關(guān)系的表示。
Rational
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法
◎與IEEEP1471相比,該建議標(biāo)準(zhǔn)的體系結(jié)構(gòu)描述方案涉及面比較窄,所注重的層次比較低,因而更具體。由于將體系結(jié)構(gòu)的描述限于UML和RUP,具有一定的局限性,但該建議標(biāo)準(zhǔn)結(jié)合了業(yè)界已經(jīng)廣泛采用的建模語(yǔ)言和開(kāi)發(fā)過(guò)程,因而易于推廣,可以有效實(shí)現(xiàn)在跨組織之間重用體系結(jié)構(gòu)描述結(jié)果。
Rational
第4章軟件體系結(jié)構(gòu)描述4.1軟件體系結(jié)構(gòu)描述方法第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言軟件體系結(jié)構(gòu)描述語(yǔ)言是一種形式化語(yǔ)言,它在底層語(yǔ)義模型的支持下,為軟件系統(tǒng)的概念體系結(jié)構(gòu)建模提供具體語(yǔ)法和概念框架?;诘讓诱Z(yǔ)義的工具為體系結(jié)構(gòu)的表示、分析、演化、細(xì)化、設(shè)計(jì)過(guò)程等提供支持。其三個(gè)基本元素如下:(1)構(gòu)件:計(jì)算或數(shù)據(jù)存儲(chǔ)單元。(2)連接件:用于構(gòu)件之間交互建模的體系結(jié)構(gòu)構(gòu)造塊及其支配這些交互的規(guī)則。(3)體系結(jié)構(gòu)配置:描述體系結(jié)構(gòu)的構(gòu)件與連接件的連接圖。
主要的體系結(jié)構(gòu)描述語(yǔ)言有Aesop、MetaH、C2、Rapide、SADL、UniCon和Wright等,盡管它們都描述軟件體系結(jié)構(gòu),卻有不同的特點(diǎn):(1)Aesop支持體系結(jié)構(gòu)風(fēng)格的應(yīng)用;(2)MetaH為設(shè)計(jì)者提供了關(guān)于實(shí)時(shí)電子控制軟件系統(tǒng)的設(shè)計(jì)指導(dǎo);(3)C2支持基于消息傳遞風(fēng)格的用戶(hù)界面系統(tǒng)的描述;(4)Rapide支持體系結(jié)構(gòu)設(shè)計(jì)的模擬并提供了分析模擬結(jié)果的工具;(5)SADL提供了關(guān)于體系結(jié)構(gòu)加細(xì)的形式化基礎(chǔ);(6)UniCon支持異構(gòu)的構(gòu)件和連接件類(lèi)型并提供了關(guān)于體系結(jié)構(gòu)的高層編譯器;(7)Wright支持體系結(jié)構(gòu)構(gòu)件之間交互的說(shuō)明和分析。表4-3各種ADL簡(jiǎn)況ADL研發(fā)組織負(fù)責(zé)人ACMECarnegieMellon大學(xué)DavidGarlanAesopCarnegieMellon大學(xué)DavidGarlanC2SouthernCalifornia大學(xué)MedvidovicDarwin英國(guó)ImperialCollegeJeffKramer和JeffMageeMetaHHoneywell公司技術(shù)中心SteveVestalRapideStanford大學(xué)DavidLuchhamSADLSRIMarkMoriconiUniConCarnegieMellon大學(xué)MaryShawWeaves美國(guó)Aerospace公司GorlickWrightCarnegieMellon大學(xué)DavidGarlan這些ADL強(qiáng)調(diào)了體系結(jié)構(gòu)不同的側(cè)面,對(duì)體系結(jié)構(gòu)的研究和應(yīng)用起到了重要的作用,但也有負(fù)面的影響。每一種ADL都以獨(dú)立的形式存在,描述語(yǔ)法不同且互不兼容,同時(shí)又有許多共同的特征,這使設(shè)計(jì)人員很難選擇一種合適的ADL;大部分ADL都是領(lǐng)域相關(guān)的,不利于對(duì)不同領(lǐng)域的體系結(jié)構(gòu)進(jìn)行分析;一些ADL在某些方面大同小異,有很多冗余的部分。第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言◎構(gòu)造能力:ADL能夠使用較小的獨(dú)立體系結(jié)構(gòu)元素來(lái)建造大型軟件系統(tǒng);◎抽象能力:ADL使得軟件體系結(jié)構(gòu)中的構(gòu)件和連接件描述可以只關(guān)注它們的抽象特性,而不管其具體的實(shí)現(xiàn)細(xì)節(jié);◎重用能力:ADL使得組成軟件系統(tǒng)的構(gòu)件、連接件甚至是軟件體系結(jié)構(gòu)都成為軟件系統(tǒng)開(kāi)發(fā)和設(shè)計(jì)的可重用部件;
ADL與其他語(yǔ)言的比較(1)
第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言◎組合能力:ADL使得其描述的每一系統(tǒng)元素都有其自己的局部結(jié)構(gòu),這種描述局部結(jié)構(gòu)的特點(diǎn)使得ADL支持軟件系統(tǒng)的動(dòng)態(tài)變化組合;◎異構(gòu)能力:ADL允許多個(gè)不同的體系結(jié)構(gòu)描述關(guān)聯(lián)存在;◎分析和推理能力:ADL允許對(duì)其描述的體系結(jié)構(gòu)進(jìn)行多種不同的性能和功能上的多種推理分析。
ADL與其他語(yǔ)言的比較(2)第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言
典型元素含義比較
第4章軟件體系結(jié)構(gòu)描述4.2軟件體系結(jié)構(gòu)描述語(yǔ)言
常見(jiàn)的軟件體系結(jié)構(gòu)元素
UniCon是一種圍繞著構(gòu)件和連接件這兩個(gè)基本概念組織的體系結(jié)構(gòu)描述語(yǔ)言。具體地說(shuō),UniCon及其支持工具的主要目的有:①提供對(duì)大量構(gòu)件和連接件的統(tǒng)一的訪問(wèn)。②區(qū)分不同類(lèi)型的構(gòu)件和連接件以便對(duì)體系結(jié)構(gòu)配置進(jìn)行檢查。③支持不同的表示方式和不同開(kāi)發(fā)人員的分析工具。④支持對(duì)現(xiàn)有構(gòu)件的使用。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon為了達(dá)到目標(biāo)①,UniCon提供了一組預(yù)先定義的構(gòu)件和連接件類(lèi)型,體系結(jié)構(gòu)的開(kāi)發(fā)者從中選擇合適的構(gòu)件或連接件。對(duì)于②,UniCon區(qū)分所有類(lèi)型的構(gòu)件和連接件的交互點(diǎn),并對(duì)它們的組合方式進(jìn)行限制。根據(jù)這些限制,UniCon工具可以對(duì)組合失配進(jìn)行檢查。對(duì)于③,特性列表的方法已經(jīng)被ACME和USC開(kāi)發(fā)的ArchitectureCaptureTool所采納。對(duì)于已有的構(gòu)件,通過(guò)利用UniCon的術(shù)語(yǔ)對(duì)其接口重新定義的方式,使得它們可以被UniCon使用。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon在UniCon中,定義構(gòu)件的語(yǔ)法如下:<component>:==COMPONENT<identifier><interface><component_implementation>END<identifier>
可見(jiàn),構(gòu)件的定義主要包括兩方面的內(nèi)容,即接口和實(shí)現(xiàn)。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniConUniCon中定義接口的語(yǔ)法如下:
<interface>:==INTERFACEISTYPE<component_type><property_list><player_list><component_type>:==Module|Computation|SharedData|SeqFile|Filter|Process|General第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon接口包括3方面的信息:構(gòu)件類(lèi)型、屬性和參與者定義。構(gòu)件類(lèi)型:表達(dá)了設(shè)計(jì)者所認(rèn)為的構(gòu)件所承擔(dān)的功能種類(lèi)。構(gòu)件類(lèi)型對(duì)參與者的數(shù)目、類(lèi)型等做出了約束。屬性:屬性列表用于對(duì)構(gòu)件進(jìn)行補(bǔ)充說(shuō)明。在定義構(gòu)件接口時(shí),諸如運(yùn)行某個(gè)進(jìn)程的處理器的名字,或在運(yùn)行環(huán)境中進(jìn)程的優(yōu)先級(jí),都用屬性說(shuō)明。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon參與者:它起到類(lèi)似掛鉤的作用,構(gòu)件通過(guò)它與其他構(gòu)件實(shí)現(xiàn)交互。在連接件把構(gòu)件組織成系統(tǒng)時(shí),實(shí)際上是參與者被關(guān)聯(lián)了起來(lái)。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon構(gòu)件的實(shí)現(xiàn)有兩種方式:原始的方式和合成的方式。原始的實(shí)現(xiàn)方式由一個(gè)指向源文檔的指針構(gòu)成,該文檔使用UniCon之外的語(yǔ)言,構(gòu)件的實(shí)現(xiàn)包含在此源文檔中。此源文檔可以是某種程序設(shè)計(jì)語(yǔ)言編寫(xiě)的源代碼,或obj文件,或二進(jìn)制形式的可執(zhí)行代碼,或一段Unix下的Shell腳本等。合成的實(shí)現(xiàn)方式是對(duì)構(gòu)件和連接件配置的一種描述,這些構(gòu)件和連接件也是用UniCon定義的。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniConUniCon中定義構(gòu)件實(shí)現(xiàn)的語(yǔ)法如下:<component_implementation>:==<primitive_implementation>|<composite_implementation><primitive_implementation>:==IMPLEMENTATIONIS<property_list><variant_list>ENDIMPLEMENTATION<composite_implementation>:==IMPLEMENTATIONIS<property_list><composite_statement_list>ENDIMPLEMENTATION第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon軟件系統(tǒng)中,構(gòu)件與構(gòu)件之間的交互有著不同的特點(diǎn)。按照這些特點(diǎn),可以把構(gòu)件間的交互分為不同的類(lèi)型。這種不同類(lèi)型的交互在連接件上的反映,就是不同的連接件類(lèi)型。UniCon中定義連接件的語(yǔ)法如下;
<connector>:==CONNECTOR<identifier><protocol><connector_implementation>END<identifier>第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon連接件的定義主要包括兩方面的內(nèi)容:即協(xié)議和實(shí)現(xiàn)。連接件用協(xié)議來(lái)定義。協(xié)議定義了多個(gè)構(gòu)件之間所允許的交互,并為這些交互提供保障。它也包括3方面的信息:連接件類(lèi)型、屬性和角色定義。連接件通過(guò)角色在構(gòu)件之間進(jìn)行中介。當(dāng)系統(tǒng)中的構(gòu)件和連接件有交互時(shí),構(gòu)件的參與者和連接件的角色被關(guān)聯(lián)起來(lái)。角色定義了連接件對(duì)參與者的需求和職責(zé)。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniConUniCon中定義協(xié)議的語(yǔ)法如下:
<protocol>:==PROTOCOLISTYPE<connector_type><property_list><role_list>ENDPROTOCOL<connector_type>:==DataAccess|FileIO|Pipe|PLBundler|ProcedureCall|RemoteProcCall|RTScheduler
第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon連接件的實(shí)現(xiàn)方式是UniCon語(yǔ)言?xún)?nèi)建的。UniCon工具集提供了專(zhuān)門(mén)的實(shí)現(xiàn)方式。UniCon中定義連接件實(shí)現(xiàn)的語(yǔ)法如下:<connector_implementation>:==IMPLEMENTATIONISBUILTINENDIMPLEMENTATION第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
UniCon第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言◎C2和其提供的設(shè)計(jì)環(huán)境(Argo)支持采用基于時(shí)間的風(fēng)格來(lái)描述用戶(hù)界面系統(tǒng),并支持使用可替換、可重用的構(gòu)件開(kāi)發(fā)GUI的體系結(jié)構(gòu)?!蛟贑2中,連接件負(fù)責(zé)構(gòu)件之間消息的傳遞,而構(gòu)件維持狀態(tài)、執(zhí)行操作并通過(guò)兩個(gè)名字分別為“top”和“bottom”的端口和其它的構(gòu)件交換信息?!蛎總€(gè)接口包含一種可發(fā)送的消息和一組可接收的消息。構(gòu)件之間的消息要么是請(qǐng)求其它構(gòu)件執(zhí)行某個(gè)操作的請(qǐng)求消息,要么是通知其他構(gòu)件自身執(zhí)行了某個(gè)操作或狀態(tài)發(fā)生改變的通知消息。
C2概述(1)第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言◎構(gòu)件之間的消息交換不能直接進(jìn)行,而只能通過(guò)連接件來(lái)完成。每個(gè)構(gòu)件接口最多只能和一個(gè)連接件相連,而連接件可以和任意數(shù)目的構(gòu)件或連接件相連?!蛘?qǐng)求消息只能向上層傳送,而通知消息只能向下層傳送?!蛲ㄖ⒌膫鬟f只對(duì)應(yīng)于構(gòu)件內(nèi)部的操作,而和接收消息的構(gòu)件的需求無(wú)關(guān)。◎C2對(duì)構(gòu)件和連接件的實(shí)現(xiàn)語(yǔ)言、實(shí)現(xiàn)構(gòu)件的線(xiàn)程控制、構(gòu)件的部署以及連接件使用的通訊協(xié)議等都不加限制。
C2概述(2)第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)構(gòu)件的描述
第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)構(gòu)件接口的描述
interface_requests::={request;}|null;
interface_notifications::={notification;}|null;
request::=message_name(request_parameters)
request_parameters::=[tocomponent_name][parameter_list]
notification::=message_name[parameter_list]component_message_interface::=top_domain_interfacebottom_domain_interface
top_domain_interface::=top_domainisoutinterface_requestsininterface_notifications
bottom_domain_interface::=bottom_domainisoutinterface_notificationsininterface_requests第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格系統(tǒng)包含了三種功能構(gòu)件,分別是一個(gè)Meeting-Initiator、若干個(gè)Attendee和Important-Attendee,三個(gè)連接件(MainConn、AttConn和ImportantAttConn)用來(lái)在構(gòu)件之間傳遞消息,某些消息可由MeetingInitiator同時(shí)發(fā)送給Attendee和ImportantAttendee,但還有某些消息只能傳遞給ImportantAttendee。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格因?yàn)橐粋€(gè)C2構(gòu)件在top、bottom端分別只有一個(gè)通信端口,且所有消息路由功能都與連接件相關(guān),所以MainConn必須保證其top端的AttConn和ImportantAttConn分別只接收那些與它們相連的構(gòu)件有關(guān)的消息。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格MeetingInitiator構(gòu)件通過(guò)發(fā)送會(huì)議請(qǐng)求信息給Attendee和ImprotantAttendee來(lái)進(jìn)行系統(tǒng)初始化。Attendee和ImportantAttendee構(gòu)件可以發(fā)送消息給MeetingInitiator,告訴MeetingInitiator自己喜歡的會(huì)議日期、地點(diǎn)等信息。但不能向MeetingInitiator遞交請(qǐng)求,因?yàn)樵贑2體系結(jié)構(gòu)中,它們處在MeetingInitiator的top端。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)MeetgingInitiator構(gòu)件的描述(1)
componentMeetingInitiatorisinterfacetop_domainisoutGetPrefSet();
GetExclSet();
GetEquipReqts();
GetLocPrefs();
RemoveExclSet();
RequestWithdrawal(toAttendee);
RequestWithdrawal(toImportantAttendee);
AddPrefDates();
MarkMtg(d:date;l:lov_type);第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)MeetgingInitiator構(gòu)件的描述(2)
inPrefSet(p:date_mg);
ExclSet(e:data_mg);
EquipReqts(eq:equip_type);
LocPref(l:loc_type);
behaviorstartupalways_generateGetPrefSet,GetExclSet,GetEquipReqts,
GetLocPrefs;
received_messagesPrefSetmay_generateRemoveExclSetxor
RequestWithdrawalxorMarkMtg;
received_messagesExclSetmay_generateAddPrefDatesxorRemoveExclSet
xorRequestWithdrawalxorMarkMtg;
received_messagesEquipReqtsmay_generateAddPrefDatesxor
RemoveExclSetxorRequestWithdrawalxorMarkMtg;
received_messagesLocPrefalways_generatenull;endMeetingInitiator;
Attendee和ImportantAttendee構(gòu)件接收來(lái)自MeetingInitiator構(gòu)件的會(huì)議安排請(qǐng)求,把自己的有關(guān)信息發(fā)送給MeetingInitiator。這兩種構(gòu)件只能通過(guò)其bottom端與體系結(jié)構(gòu)中的其他元素進(jìn)行通信。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)Attendee構(gòu)件的描述(1)
componentAttendeeisinterfacebottom_domainisoutPrefSet(p:date_mg);
ExclSet(e:date_mg);
EquipReqts(eq:equip_type);
inGetPrefSet();
GetExclSet();
GetEquipReqts();
RemoveExclSet();
RequestWithdrawal();
AddPrefDates();
MarkMtg(d:date;l:loc_type);第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)Attendee構(gòu)件的描述(2)behaviorreceived_messagesGetPrefSetalways_generatePrefSet;received_messagesAddPrefDatesalways_generatePrefSet;received_messagesGetExclSetalways_generateExclSet;received_messagesGetEqipReqtsalways_generateEqipReqts;received_messagesRemoveExclSetalways_generateExclSet;received_messagesReuestWithdrawalalways_generatenull;received_messagesMarkMtgalways_generatenull;endAttendee;
ImportantAttendee構(gòu)件是Attendee構(gòu)件的一個(gè)特例,它具有Attendee構(gòu)件的一切功能,并且還增加了自己特定的功能(可以指定會(huì)議地點(diǎn)),因此ImportantAttendee可以作為Atendee的一個(gè)子類(lèi)型,保留了Attendee的接口和行為。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
會(huì)議安排系統(tǒng)的C2風(fēng)格第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)ImportantAttendee構(gòu)件的描述componentImportantAttendeeissubtypeAttendee(inandbeh)interfacebottom_domainisoutLocPrefs(l:loc_type);
ExclSet(e:date_mg);
EquipReqts(eq:equip_type);
inGetLocPrefs();
behaviorreceived_messagesGetLocPrefsalways_generateLocPrefs;endImportantAttendee;
第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)體系結(jié)構(gòu)的描述architectureMeetingScheduleris
conceptual_componentsAttendee;ImportantAttendee;MeetingInitiator;
connectorsconnectorMainConnismessage_filterno_filtering;
connectorAttConnismessage_filterno_filtering;
connectorImportantAttConnismessage_filterno_filtering;
architectural_topologyconnectorAttConnconnectionstop_portsAttendee;bottom_portsMainConn;connectorImportantAttConnconnectionstop_portsImportantAttendee;bottom_portsMainConn;connectorMainConnconnectionstop_portsAttConn;ImportantAttConn;bottom_portsMeetingInitiator;endMeetingScheduler;
第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
C2對(duì)會(huì)議安排系統(tǒng)的描述
systemMeetingScheduler_1isarchitectureMeetingSchedulerwithAttendeeinstanceAtt_1,Att_2,Att_3;
ImportantAttendeeinstanceImpAtt_1,ImpAtt_2;
MeetingInitiatorinstanceMtgInit_1;endMeetingScheduler_1;
ACME是由美國(guó)卡耐基梅隆大學(xué)的Garlan等人創(chuàng)建的一門(mén)體系結(jié)構(gòu)描述語(yǔ)言,其最初目的是為了創(chuàng)建一門(mén)簡(jiǎn)單的、具有一般性的ADL,該ADL能用來(lái)為體系結(jié)構(gòu)設(shè)計(jì)工具轉(zhuǎn)換形式,和/或?yàn)殚_(kāi)發(fā)新的設(shè)計(jì)和分析工具提供基礎(chǔ)。嚴(yán)格說(shuō)來(lái),ACME并不是一種真正意義上的ADL,而是一種體系結(jié)構(gòu)變換語(yǔ)言,它提供了一種在不同ADL的體系結(jié)構(gòu)規(guī)范描述之間實(shí)現(xiàn)變換的機(jī)制,可以把它作為體系結(jié)構(gòu)設(shè)計(jì)工具的通用交換格式。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言ACME提供了描述體系結(jié)構(gòu)的結(jié)構(gòu)特性的方法,此外還提供了一種開(kāi)放式的語(yǔ)義框架,使得可以在結(jié)構(gòu)特性上標(biāo)注一些ADL相關(guān)的屬性。這種方法使得ACME既能表示大多數(shù)ADL都能描述的公共的結(jié)構(gòu)信息,又能使用注解來(lái)表示與特定的ADL相關(guān)的信息。有了這種公共而又靈活的表示方法,再加上ADL之間關(guān)于屬性的語(yǔ)義轉(zhuǎn)換工具,就能順利地實(shí)現(xiàn)ADL之間的變換,從而使ADL之間能夠?qū)崿F(xiàn)分析方法和工具的共享。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言ACME支持從四個(gè)不同的方面對(duì)軟件體系結(jié)構(gòu)進(jìn)行描述,分別是結(jié)構(gòu)、屬性、約束、類(lèi)型和風(fēng)格。1、結(jié)構(gòu)在ACME中定義了七種體系結(jié)構(gòu)實(shí)體,分別是構(gòu)件、連接件、系統(tǒng)、端口、角色、表述和表述映射。其中前五種如圖4-3所示。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言圖4-3ACME描述的元素用ACME描述一個(gè)簡(jiǎn)單的C/S體系結(jié)構(gòu)。其中client構(gòu)件只有一個(gè)sendRequest端口,server也只有一個(gè)receiveRequest端口,連接件rpc有兩個(gè)角色,分別為caller和callee。該系統(tǒng)的布局由構(gòu)件端口和連接件角色綁定的attachments定義,其中client的請(qǐng)求端口綁定到rpc的caller角色,server的請(qǐng)求處理端口綁定到rpc的callee端口。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言Systemsimple_CS={ComponentClient={PortsendRequest}ComponentServer={PortreceiveRequest;}Connectorrpc={Roles{caller,callee}}Attachments{Client.sendRequesttorpc.caller;Server.receiveRequesttorpc.callee}}第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言ACME支持體系結(jié)構(gòu)的分級(jí)描述,特別是每個(gè)構(gòu)件或連接件都能用一個(gè)或多個(gè)更詳細(xì)、更低層的描述來(lái)表示。在ACME中每一個(gè)這樣的描述被稱(chēng)為一個(gè)表述。通過(guò)使用多個(gè)表述,ACME能表達(dá)體系結(jié)構(gòu)實(shí)體的多種視圖。如圖4-4所示。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言當(dāng)某個(gè)構(gòu)件或連接件有體系結(jié)構(gòu)表述,那就需要有一種手段來(lái)指出,在這個(gè)表述的系統(tǒng)內(nèi)部和此表述所代表的構(gòu)件或連接件的外部接口之間,存在何種相關(guān)性。表述映射定義了這種相關(guān)性。在最簡(jiǎn)單的例子中,構(gòu)件的表述映射僅提供內(nèi)部端口和外部端口之間的聯(lián)系,連接件的表述映射僅提供內(nèi)部角色和外部角色之間的聯(lián)系。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言圖4-5帶有表述的C/S結(jié)構(gòu)2、屬性
ACME定義的七類(lèi)體系結(jié)構(gòu)實(shí)體足以定義一個(gè)體系結(jié)構(gòu)的組織,但為了記錄體系結(jié)構(gòu)的非結(jié)構(gòu)屬性,以及為說(shuō)明輔助信息提供開(kāi)放型需求,ACME支持使用任意的屬性列表對(duì)體系結(jié)構(gòu)的結(jié)構(gòu)進(jìn)行注釋。每個(gè)屬性有名稱(chēng)、可選類(lèi)型和值。ACME定義的七類(lèi)設(shè)計(jì)元素都可以用屬性列表進(jìn)行注釋。屬性可用來(lái)記錄于體系結(jié)構(gòu)相關(guān)分析和設(shè)計(jì)的細(xì)節(jié)。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言3、設(shè)計(jì)約束設(shè)計(jì)約束是體系結(jié)構(gòu)描述的關(guān)鍵成分,它們決定體系結(jié)構(gòu)設(shè)計(jì)是如何演化的。設(shè)計(jì)約束可以當(dāng)做一種特殊的屬性,但因?yàn)樵隗w系結(jié)構(gòu)中,設(shè)計(jì)約束起著核心作用,所以,ACME提供了特定的語(yǔ)法來(lái)描述設(shè)計(jì)約束。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言ACME使用基于一階謂詞邏輯的約束語(yǔ)言來(lái)描述設(shè)計(jì)約束,在體系結(jié)構(gòu)規(guī)格說(shuō)明中,約束被當(dāng)作謂詞。例如,有決定兩個(gè)構(gòu)件是否有連接的謂詞,有決定一個(gè)構(gòu)件是否有特殊的屬性的謂詞等。約束可以與ACME描述中的任何設(shè)計(jì)元素相關(guān)聯(lián),約束的范圍取決于關(guān)聯(lián)。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言表4-4設(shè)計(jì)約束描述的例子設(shè)計(jì)約束說(shuō)明Connected(comp1,comp2)如果構(gòu)件comp1與comp2之間至少有一個(gè)連接件,則取True,否則取FalseReachable(comp1,comp2)如果構(gòu)件Comp2處在Connected(comp1,*)上,則取True,否則取FalseHasProperty(elt,propName)如果元素elt有一個(gè)屬性,取名為ProNameHasType(elt,typeName)如果元素elt有一個(gè)類(lèi)型,取名為T(mén)ypeNameSystemName.Connectors連接件的集合在系統(tǒng)SystemName中ConnectorName.Roles角色的集合在連接件ConnectorName中
例如,下面語(yǔ)句的約束與一個(gè)系統(tǒng)相關(guān)聯(lián):
connected(client,server)
如果名字為client的構(gòu)件與名字為server的構(gòu)件直接由一個(gè)連接件連接,則該約束取True。又如,約束
forallconn:connectorinsystemInstance.Connectors@size(conn.roles)=2
當(dāng)系統(tǒng)中的所有連接件都是二元連接件時(shí)取True。約束可以定義合法屬性值的范圍,例如:
Self.throughputRate>=3095
約束也可以表明兩個(gè)屬性之間的關(guān)系,例如:
comp.totalLatency=(comp.readLatency+cessingLatency+comp.writeLatency)第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言約束可以通過(guò)兩種方式附加到設(shè)計(jì)元素,分別是invariant和heuristic,其中invariant約束當(dāng)作是不可違反的規(guī)則看待,heuristic約束當(dāng)作應(yīng)該遵守的規(guī)則看待。對(duì)invariant約束的違反會(huì)使體系結(jié)構(gòu)規(guī)格說(shuō)明無(wú)效,而對(duì)heuristic約束的違反會(huì)當(dāng)作一個(gè)警告處理。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言
下例說(shuō)明了如何在ACME中使用約束。其中invariant約束描述合法緩沖的大小范圍,heuristic約束描述了期望的速度最大值。
SystemmessagePathSystem={…ConnectorMessagepath={Roles{source;sink;}PropertyexpectedThroughput:float=512;Invariant(queueBufferSize>=512)and(queueBufferSize<=4096);HeuristicexpectedThroughput<=(queueBufferSize/2);}}第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言類(lèi)型和風(fēng)格體系結(jié)構(gòu)描述的一個(gè)重要能力就是能夠定義系統(tǒng)的風(fēng)格或族。風(fēng)格允許我們定義領(lǐng)域特定或應(yīng)用特定的設(shè)計(jì)詞匯,以及如何使用這些詞匯的約束。在ACME中,定義風(fēng)格的基本構(gòu)造塊是一個(gè)類(lèi)型系統(tǒng),設(shè)計(jì)師可以定義三種類(lèi)型,分別是屬性類(lèi)型、結(jié)構(gòu)類(lèi)型和風(fēng)格。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言結(jié)構(gòu)類(lèi)型結(jié)構(gòu)類(lèi)型使定義構(gòu)件、連接件、端口和角色的類(lèi)型變得可能,每一個(gè)這樣的類(lèi)型提供了一個(gè)類(lèi)型名稱(chēng)和一個(gè)所需要的子結(jié)構(gòu)、屬性和約束的列表。表4-22是一個(gè)Client構(gòu)件類(lèi)型的描述例子。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言下面是一個(gè)client構(gòu)件類(lèi)型的描述例子。類(lèi)型定義指明了任何構(gòu)件如果是類(lèi)型client的任何一個(gè)實(shí)例,則必須至少有一個(gè)端口稱(chēng)作Request和一個(gè)浮點(diǎn)型的屬性稱(chēng)作request-rate。而且與類(lèi)型關(guān)聯(lián)的invariant約束要求每個(gè)client都不得超過(guò)五個(gè)端口,構(gòu)件的請(qǐng)求個(gè)數(shù)必須大于0。最后,還有一個(gè)heuristic約束,要求請(qǐng)求的個(gè)數(shù)應(yīng)該要少于100。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言ComponentTypeClient={PortRequest={Propertyprotocol:CSProtocolT};PropertyRequest-rate:Float;Invariantsize(self.Ports)<=5;Invariantrequest-rate>=0;Heuristicrequest-rate<100;}第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言風(fēng)格在ACME中,風(fēng)格被稱(chēng)為族,如同結(jié)構(gòu)類(lèi)型代表一組結(jié)構(gòu)元素一樣,族代表一組系統(tǒng)。在ACME中,可通過(guò)指定三件事情來(lái)定義一個(gè)族,分別是一組屬性和結(jié)構(gòu)元素、一組約束、默認(rèn)結(jié)構(gòu)。屬性類(lèi)型和結(jié)構(gòu)類(lèi)型為族提供了設(shè)計(jì)詞匯,約束決定了如何使用這些類(lèi)型的實(shí)例,默認(rèn)結(jié)構(gòu)描述了必須出現(xiàn)在族中任何系統(tǒng)中的實(shí)例的最小集合。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言下例是一個(gè)定義管道-過(guò)濾器族和使用該族的一個(gè)系統(tǒng)的實(shí)例。在這個(gè)族中,定義了兩個(gè)構(gòu)件類(lèi)型,一個(gè)連接件類(lèi)型和一個(gè)屬性類(lèi)型。該族唯一的invariant約束指定了所有連接件必須使用管道,沒(méi)有默認(rèn)的結(jié)構(gòu)。系統(tǒng)simplePF作為族的一個(gè)實(shí)例來(lái)定義,這種定義允許系統(tǒng)使用族的任何類(lèi)型,且必須滿(mǎn)足族的所有invariant約束。第4章軟件體系結(jié)構(gòu)描述4.3典型軟件體系結(jié)構(gòu)描述語(yǔ)言第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言軟件體系結(jié)構(gòu)描述語(yǔ)言ADL是一種形式化語(yǔ)言,它在底層語(yǔ)義模型的支持下,為軟件的概念體系結(jié)構(gòu)建模提供了具體語(yǔ)法和框架。雖然ADL在描述軟件體系結(jié)構(gòu)時(shí),具有精確、完全的特點(diǎn),但也導(dǎo)致專(zhuān)業(yè)術(shù)語(yǔ)過(guò)多,語(yǔ)義理論過(guò)于復(fù)雜等問(wèn)題,使其不利于向產(chǎn)業(yè)界推廣。而XML(extensiblemarkuplanguage,可擴(kuò)展標(biāo)記語(yǔ)言)簡(jiǎn)單和易于實(shí)現(xiàn),并且由于XML在工業(yè)界廣泛使用,因此,若能用XML來(lái)表示軟件體系結(jié)構(gòu),必能極大推廣軟件體系結(jié)構(gòu)領(lǐng)域的研究成果在軟件產(chǎn)業(yè)界的應(yīng)用。XML的發(fā)展與HTML(hypertextmarkuplanguage,超文本標(biāo)記語(yǔ)言)一樣,XML是從所有標(biāo)記語(yǔ)言的元語(yǔ)SGML(standardgeneralizedmarkuplanguage,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)那里派生出來(lái)的。SGML是一種元語(yǔ)言,也可以成為一個(gè)定義諸如HTML等標(biāo)記語(yǔ)言的系統(tǒng)。XML也是一種元語(yǔ)言,一個(gè)定義Web應(yīng)用的SGML子集。和SGML一樣,也可以用XML來(lái)定義種種不同的標(biāo)記語(yǔ)言以滿(mǎn)足不同應(yīng)用的需要。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
XML語(yǔ)言簡(jiǎn)介
SGML、HTML是XML的先驅(qū)。SGML是國(guó)際上定義電子文件結(jié)構(gòu)和內(nèi)容描述的標(biāo)準(zhǔn),是一種非常復(fù)雜的文檔結(jié)構(gòu),主要用于大量高度結(jié)構(gòu)化數(shù)據(jù)的場(chǎng)合和其他各種工業(yè)領(lǐng)域,利于分類(lèi)和索引。同XML相比,SGML定義的功能很強(qiáng)大,缺點(diǎn)是它不適用于Web數(shù)據(jù)描述,而且SGML軟件價(jià)格非常昂貴。HTML的優(yōu)點(diǎn)是比較適合Web頁(yè)面的開(kāi)發(fā),但它的缺點(diǎn)是標(biāo)記相對(duì)少,只有固定的一些標(biāo)記集,不能支持特定領(lǐng)域的標(biāo)記語(yǔ)言,如對(duì)數(shù)學(xué)、化學(xué)、音樂(lè)等領(lǐng)域的表示支持較少,開(kāi)發(fā)者很難在Web頁(yè)面上表示數(shù)學(xué)公式、化學(xué)分子式和樂(lè)譜。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言鑒于SGML語(yǔ)言的復(fù)雜性和HTML語(yǔ)言的局限性,人們希望創(chuàng)建一種自己的標(biāo)記符和標(biāo)記符語(yǔ)言,并使之成為自描述性的語(yǔ)言,以便想標(biāo)記什么,怎么標(biāo)記都可以隨心所欲。這種標(biāo)記符語(yǔ)言首先應(yīng)該沒(méi)有SGML語(yǔ)言的復(fù)雜性,其次應(yīng)該具有SGML語(yǔ)言基本的創(chuàng)建標(biāo)記的功能,同時(shí)還應(yīng)該具有HTML語(yǔ)言的表現(xiàn)能力,即SGML語(yǔ)言的簡(jiǎn)化版本或者說(shuō)是其子集。XML語(yǔ)言應(yīng)運(yùn)而生。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言XML由XML工作組(原SGML編輯審查委員會(huì))開(kāi)發(fā),大小只有SGML的五分之一,它之所以被稱(chēng)為ExtensibleMarkupLanguage,是因?yàn)樗幌馠TML那樣有一個(gè)固定的格式,XML用戶(hù)可以自己創(chuàng)建標(biāo)記或使用其他人創(chuàng)建的標(biāo)記來(lái)描述元素的內(nèi)容。簡(jiǎn)單地說(shuō),XML就是標(biāo)記數(shù)據(jù)的一種方式,使得數(shù)據(jù)能夠自我描述。由于網(wǎng)絡(luò)應(yīng)用的飛速發(fā)展,XML發(fā)展非常迅猛,XML的應(yīng)用軟件也飛速發(fā)展。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言XML使用一種可自我描述的簡(jiǎn)單的語(yǔ)法,下面對(duì)XML的語(yǔ)法作簡(jiǎn)單介紹。(1)一個(gè)XML文檔的例子
<?xmlversion="1.0"encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don'tforgetmethisweekend!</body></note>第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言此文檔中的第一行定義了XML的版本和文檔中使用的字符編碼。在這個(gè)例子中,遵守的是XML1.0規(guī)范,并使用了ISO-8859-1字符集。接下來(lái)的一行描述了文檔的根元素(就像是在說(shuō):“本文檔是一個(gè)便簽”):
<note>
接下來(lái)的4行描述了根元素的4個(gè)子元素(to,from,heading,以及body):最后的一行定義了根元素的結(jié)尾:
</note>
可以看到,這個(gè)XML文檔包含了一個(gè)由Jani留給Tove的便簽。由這個(gè)例子可以看出XML具有較好的自我描述特性。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(2)所有元素都須有關(guān)閉標(biāo)簽當(dāng)使用XML時(shí),省略關(guān)閉標(biāo)簽是非法的。在HTML中,某些元素不一定要有關(guān)閉標(biāo)簽。在HTML中下面的代碼是合法的:
<p>Thisisaparagraph<p>Thisisanotherparagraph
在XML中,所有的元素都要有關(guān)閉標(biāo)簽:
<p>Thisisaparagraph</p><p>Thisisanotherparagraph</p>
注釋?zhuān)阂苍S你已經(jīng)從上面的例子中注意到XML聲明沒(méi)有關(guān)閉標(biāo)簽。這不是錯(cuò)誤。聲明不屬于XML本身的組成部分。它不是XML元素,也不需要關(guān)閉標(biāo)簽。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(3)XML標(biāo)簽對(duì)大小寫(xiě)敏感和HTML不同,XML標(biāo)簽對(duì)大小寫(xiě)敏感。在XML中,標(biāo)簽<Letter>和標(biāo)簽<letter>是不同的。所以必須使用相同的大小寫(xiě)打開(kāi)并關(guān)閉標(biāo)簽:
<Message>這是錯(cuò)誤的。</message><message>這是正確的。</message>第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(4)XML必須被正確地嵌套不正確的標(biāo)簽嵌套對(duì)XML是沒(méi)有意義的。在HTML中,某些元素可以不正確地彼此嵌套在一起,就像這樣:
<b><i>Thistextisboldanditalic</b></i>
在XML中,所有的元素必須正確地彼此嵌套,就像這樣:
<b><i>Thistextisboldanditalic</i></b>第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(5)XML文檔必須有根元素所有的XML必須包含可定義根元素的單一標(biāo)簽對(duì)。所有其它的元素都必須處于這個(gè)根元素內(nèi)部。所有的元素均可擁有子元素。子元素必須被正確地嵌套于它們的父元素內(nèi)部:
<root><child><subchild>.....</subchild></child></root>第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(6)XML的屬性值須加引號(hào)在XML中,省略屬性值兩旁的引號(hào)是非法的。與HTML類(lèi)似,XML也可擁有屬性(名稱(chēng)/值的對(duì))。在XML中,XML的屬性值須加引號(hào)。請(qǐng)研究下面的兩個(gè)XML文檔。第一個(gè)是錯(cuò)誤的,第二個(gè)是正確的。
<?xmlversion="1.0"encoding="ISO-8859-1"?><notedate=12/11/2002><to>Tove</to><from>Jani</from></note>第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言<?xmlversion="1.0"encoding="ISO-8859-1"?><notedate="12/11/2002"><to>Tove</to><from>Jani</from></note>
在第一個(gè)文檔中,日期屬性沒(méi)有加引號(hào)。這是正確的:date="12/11/2002"。這是錯(cuò)誤的:date=12/11/2002。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(7)在XML中,空格會(huì)被保留。在XML中,空格不會(huì)被截掉。這與HTML不同。在HTML中,像這樣的一個(gè)句子:
HellomynameisTove,
會(huì)顯示為這樣:
HellomynameisTove,
這是由于HTML會(huì)把多個(gè)連續(xù)的空格字符裁減為一個(gè)。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言
(8)XML中的注釋在XML中書(shū)寫(xiě)注釋的語(yǔ)法與HTML的語(yǔ)法類(lèi)似:
<!--Thisisacomment-->
(9)XML沒(méi)什么特殊之處
XML沒(méi)什么特殊之處。它只是一些純文本外加括在角形括號(hào)中的標(biāo)簽而已??商幚砑兾谋疚募能浖部梢蕴幚鞽ML。在一個(gè)簡(jiǎn)單的文本編輯器中,XML標(biāo)簽也可被顯示出來(lái),不會(huì)被特殊地對(duì)待。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言XML標(biāo)準(zhǔn)及應(yīng)用領(lǐng)域越來(lái)越多的規(guī)范對(duì)XML的支持,使得XML的功能日趨強(qiáng)大,不僅在Web世界,而且在整個(gè)軟件系統(tǒng)架構(gòu)過(guò)程中都發(fā)揮出巨大的作用。
XML存在多種標(biāo)準(zhǔn),除基本XML標(biāo)準(zhǔn)以外,其他標(biāo)準(zhǔn)定義了模式、樣式表、連接、Web服務(wù)、安全性等其它的重要項(xiàng)目。其主要包括XML規(guī)范、XML模式、文檔對(duì)象模型(DOM)、鏈接和引用、XSL、安全性標(biāo)準(zhǔn)等。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言XML被應(yīng)用到互聯(lián)網(wǎng)的各個(gè)方面。考察XML的應(yīng)用,可以大致將它們分成以下幾類(lèi):(1)設(shè)計(jì)置標(biāo)語(yǔ)言設(shè)計(jì)置標(biāo)語(yǔ)言是設(shè)計(jì)XML的初衷。XML設(shè)計(jì)的最初目的就是為了打破HTML語(yǔ)言的局限性,規(guī)范、有效、有層次地表示及顯示原HTML頁(yè)面所表示的內(nèi)容。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言(2)數(shù)據(jù)交換
XML除了能顯示數(shù)據(jù)之外,還能作為一種數(shù)據(jù)的存儲(chǔ)格式進(jìn)行數(shù)據(jù)交換和傳輸。因?yàn)閄ML可以定義自己的標(biāo)記,并給予這些標(biāo)記一定的意義,從而使XML文檔具有一定的格式,具有相同格式的文檔即可進(jìn)行數(shù)據(jù)交換。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言(3)Web服務(wù)
XML最主要的應(yīng)用就是構(gòu)建Web服務(wù)??梢詫eb服務(wù)看做一個(gè)接受客戶(hù)請(qǐng)求的黑盒子,它可以執(zhí)行特定的任務(wù),并返回該任務(wù)結(jié)果。例如,常用的搜索引擎本質(zhì)上就是一種Web服務(wù),它的工作原理是:用戶(hù)提交一個(gè)搜索表達(dá)式,它就編譯出一系列匹配的站點(diǎn),然后將其返回瀏覽器。此外,Web服務(wù)還應(yīng)用于集成不同的數(shù)據(jù)源、本地計(jì)算、數(shù)據(jù)的多種顯示、支持Web應(yīng)用的互操作和集成等。第4章軟件體系結(jié)構(gòu)描述4.4可擴(kuò)展標(biāo)記語(yǔ)言分布式計(jì)算的發(fā)展90年代以來(lái),計(jì)算技術(shù)逐步進(jìn)入以網(wǎng)絡(luò)為中心的時(shí)期,用戶(hù)迫切希望在網(wǎng)絡(luò)上建立更為豐富的分布式應(yīng)用;不僅實(shí)現(xiàn)數(shù)據(jù)共享,而且支持知識(shí)共享和各類(lèi)計(jì)算資源的共享,能夠?qū)崿F(xiàn)包括整個(gè)企業(yè)在內(nèi)的各個(gè)層次的協(xié)同工作。分布計(jì)算技術(shù)是指在網(wǎng)絡(luò)計(jì)算平臺(tái)上開(kāi)發(fā)、部署、管理和維護(hù)以資源共享和協(xié)同工作為主要應(yīng)用目標(biāo)的分布式應(yīng)用系統(tǒng)。第3章軟件體系結(jié)構(gòu)風(fēng)格
分布式計(jì)算的三個(gè)發(fā)展階段:(1)面向過(guò)程的分布計(jì)算技術(shù)(2)分布對(duì)象技術(shù):是90年代初開(kāi)始出現(xiàn)的以面向?qū)ο蠹夹g(shù)為主要特征的第二代分布計(jì)算技術(shù)。90年代初CORBA1.0標(biāo)準(zhǔn)的頒布,揭開(kāi)了分布式對(duì)象計(jì)算的序幕。(3)Web服務(wù):是一種面向服務(wù)的體系結(jié)構(gòu)。第3章軟件體系結(jié)構(gòu)風(fēng)格分布式對(duì)象技術(shù)的主要思想是:在分布式系統(tǒng)中引入一種分布的、互操作的對(duì)象機(jī)制,并且把分布網(wǎng)絡(luò)上可用的所有資源看作公共可存取的對(duì)象集合,使得不同的對(duì)象可以集成在一起,每個(gè)軟件組件都是自主的,有其獨(dú)立的功能,只能通過(guò)接口與外界通信,因此用戶(hù)只需根據(jù)外特性維護(hù)與升級(jí)。第3章軟件體系結(jié)構(gòu)風(fēng)格分布對(duì)象存在于網(wǎng)絡(luò)的任何地方,可被遠(yuǎn)程客戶(hù)應(yīng)用以方法調(diào)用的形式訪問(wèn)。分布對(duì)象使用的程序設(shè)計(jì)語(yǔ)言和編譯器對(duì)客戶(hù)對(duì)象透明,分布對(duì)象在網(wǎng)絡(luò)中的具體位置以及運(yùn)行的操作系統(tǒng)應(yīng)對(duì)客戶(hù)應(yīng)用透明。同時(shí)分布對(duì)象具有動(dòng)態(tài)性,可以在網(wǎng)絡(luò)上到處移動(dòng)。第3章軟件體系結(jié)構(gòu)風(fēng)格分布對(duì)象技術(shù)成為建立應(yīng)用框架和軟件構(gòu)件的核心技術(shù),在開(kāi)發(fā)大型分布式應(yīng)用系統(tǒng)中表現(xiàn)出強(qiáng)大的生命力,并形成了三項(xiàng)具有代表性的主流技術(shù),即OMG的CORBA、微軟的DNA和Sun公司的J2EE。CORBA:CommonObjectRequestBrokerArchitecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)DNA:DistributedInternetApplicationArchitecture,分布式網(wǎng)絡(luò)應(yīng)用程序體系結(jié)構(gòu),它綜合了微軟先后提出的OLE、COM/DCOM/COM+等技術(shù)。J2EE:Java2PlatformEnterpriseEdition,Java2平臺(tái)企業(yè)版第3章軟件體系結(jié)構(gòu)風(fēng)格分布對(duì)象技術(shù)應(yīng)用起來(lái)比較復(fù)雜,因?yàn)檫@種軟件通常都比較龐大,涉及到網(wǎng)絡(luò)、對(duì)象技術(shù)等多種技術(shù),系統(tǒng)開(kāi)發(fā)比較困難。分布式系統(tǒng)通常采用基于構(gòu)件的軟件工程方法進(jìn)行開(kāi)發(fā)或集成,只有特殊需求的構(gòu)件才需要新開(kāi)發(fā),與其他構(gòu)件在集成框架下集成為一個(gè)整體。分布對(duì)象技術(shù)在比較大型的網(wǎng)絡(luò)系統(tǒng)中應(yīng)用較多,如銀行業(yè)、交通、電信等行業(yè)。Oracle、Sybase和Lotus等國(guó)外軟件產(chǎn)商均在其主流產(chǎn)品中支持CORBA、EJB和DNA技術(shù)以支持企業(yè)級(jí)應(yīng)用和Web應(yīng)用,這些產(chǎn)品在企業(yè)ERP和電子商務(wù)中均得到大量的應(yīng)用。第3章軟件體系結(jié)構(gòu)風(fēng)格Web服務(wù)(WebServices)是一種較新的面向服務(wù)的體系結(jié)構(gòu),其中定義了一組標(biāo)準(zhǔn)協(xié)議,用于接口定義、方法調(diào)用、基于Internet的構(gòu)件注冊(cè)以及各種應(yīng)用的實(shí)現(xiàn)。SOA:Service-OrientedArchitecture,是一種較新的體系結(jié)構(gòu)。在這種新的體系結(jié)構(gòu)中,所有功能都定義為獨(dú)立的服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,可以以定義好的順序調(diào)用這些服務(wù)來(lái)形成業(yè)務(wù)流程。第3章軟件體系結(jié)構(gòu)風(fēng)格同傳統(tǒng)的分布式模型相比,Web服務(wù)體系結(jié)構(gòu)的主要優(yōu)勢(shì)在于:①協(xié)議的通用性
Web服務(wù)利用標(biāo)準(zhǔn)的Internet協(xié)議(如HTTP、SMTP等),解決的是面向Web的分布式計(jì)算;而CORBA、DCOM、RMI使用私有的協(xié)議,只能解決企業(yè)內(nèi)部的對(duì)等實(shí)體間的分布式計(jì)算。第3章軟件體系結(jié)構(gòu)風(fēng)格②完全的平臺(tái)、語(yǔ)言獨(dú)立性
Web服務(wù)進(jìn)行了更高程度的抽象,只要遵守Web服務(wù)的接口即可進(jìn)行服務(wù)的請(qǐng)求與調(diào)用。而CORBA、DNA、J2EE等模型要求在對(duì)等體系結(jié)構(gòu)間才能進(jìn)行通信。如CORBA需要每個(gè)連接點(diǎn)都使用ORB(ObjectRequestBroker,對(duì)象請(qǐng)求代理),DNA需要每個(gè)連接點(diǎn)都使用Windows平臺(tái),J2EE需要每個(gè)連接點(diǎn)都使用Java,否則雙方是不能通信的。第3章軟件體系結(jié)構(gòu)風(fēng)格在電子商務(wù)市場(chǎng)中,要求所有的參與者都采用同一個(gè)基于某種語(yǔ)言和平臺(tái)的模型是不現(xiàn)實(shí)的。而Web服務(wù)結(jié)合了面向構(gòu)件方法和Web技術(shù)的優(yōu)勢(shì),利用標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議和XML數(shù)據(jù)格式進(jìn)行通信,具有良好的普適性和靈活性,在Internet這個(gè)巨大的虛擬環(huán)境中,任何支持這些標(biāo)準(zhǔn)的系統(tǒng)都可以被動(dòng)態(tài)定位以及與網(wǎng)絡(luò)上的其他Web服務(wù)交互,任何客戶(hù)都可以調(diào)用任何服務(wù)而無(wú)論它們處在何處,突破了傳統(tǒng)的分布式計(jì)算模型在通信、應(yīng)用范圍等方面的限制,允許企業(yè)和個(gè)人快速、廉價(jià)建立和部署全球性應(yīng)用。第3章軟件體系結(jié)構(gòu)風(fēng)格現(xiàn)在已經(jīng)有幾十種ADL,但沒(méi)有一種通用的ADL。XML的另一個(gè)重要的應(yīng)用就是用作ADL。因?yàn)閄ML有能力描述非文檔信息模型,并且XML標(biāo)準(zhǔn)已經(jīng)迅速且廣泛地在全球展開(kāi),許多大公司紛紛表示要對(duì)XML進(jìn)行支持,所以希望XML有能力和潛力消除各種ADL無(wú)法統(tǒng)一的局面,使現(xiàn)在及將來(lái)的應(yīng)用可以操作、查找、表現(xiàn)、存儲(chǔ)這些XML模型,并且在軟件環(huán)境和軟件工具經(jīng)常變換的情況下仍然保持可用性和重用性。第4章軟件體系結(jié)構(gòu)描述4.5基于XML的軟件體系結(jié)構(gòu)描述語(yǔ)言由于XML在體系結(jié)構(gòu)描述上的許多優(yōu)點(diǎn),研究者們已經(jīng)開(kāi)發(fā)出了不同的基于XML的體系結(jié)構(gòu)描述語(yǔ)言,如XADL2.0、XBA、XCOBA、ABC/ADL等。XADL2.0XADL2.0在所有的ADLs中具有很多獨(dú)特的性質(zhì)。首先,XADL2.0在結(jié)構(gòu)上具有很好的擴(kuò)展性;其次,XADL2.0作為一個(gè)模型化的語(yǔ)言而建立,它并不是為了描述某一模型而建立的單一語(yǔ)言,而是一個(gè)對(duì)模型描述的集合。XADL2.0的所有模型是由各種XMLSchemas構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力業(yè)投資報(bào)告范文
- 2025年江蘇貨運(yùn)從業(yè)資格試題答案解析
- 個(gè)人實(shí)踐報(bào)告范文
- 倉(cāng)庫(kù)需求調(diào)研報(bào)告范文
- 《保險(xiǎn)公司早會(huì)模板》課件
- 2025年天津貨運(yùn)駕駛證科目一理論考試
- 《政府預(yù)算編制基礎(chǔ)》課件
- 人工智能對(duì)智能手機(jī)發(fā)展的影響
- 保險(xiǎn)市場(chǎng)教學(xué)課件
- 2025貨樣買(mǎi)賣(mài)合同格式
- 公司電梯安全總監(jiān)、電梯安全員崗位職責(zé)
- 大宗氣二次配施工方案
- 室內(nèi)采暖管道安裝施工工藝標(biāo)準(zhǔn)
- 冀少版小學(xué)六年級(jí)音樂(lè)上冊(cè)教案
- 江蘇省人民醫(yī)院改建一臺(tái)γ刀放射治療項(xiàng)目環(huán)評(píng)報(bào)告
- 研究開(kāi)發(fā)費(fèi)用自查報(bào)告
- 國(guó)有土地上房屋裝修備案申請(qǐng)表
- 生態(tài)文明思想研討發(fā)言
- 放射醫(yī)學(xué)(副高)高級(jí)職稱(chēng)試題庫(kù)及答案
- 職業(yè)暴露處理記錄表
- 電大信息技術(shù)應(yīng)用終結(jié)性作業(yè)
評(píng)論
0/150
提交評(píng)論