軟件體系結(jié)構(gòu)第四次課課件_第1頁(yè)
軟件體系結(jié)構(gòu)第四次課課件_第2頁(yè)
軟件體系結(jié)構(gòu)第四次課課件_第3頁(yè)
軟件體系結(jié)構(gòu)第四次課課件_第4頁(yè)
軟件體系結(jié)構(gòu)第四次課課件_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

上次課重點(diǎn)軟件體系結(jié)構(gòu)的5種模型(簡(jiǎn)答)。2.什么是(4+1)視圖模型,理解其含義。3.構(gòu)件、連接件、配置、端口與角色及其互相關(guān)系。4.軟件體系結(jié)構(gòu)生命周期模型,理解其含義。5.功能需求與非功能需求。

課程內(nèi)容

軟件體系結(jié)構(gòu)概論

軟件體系結(jié)構(gòu)建模

軟件體系結(jié)構(gòu)風(fēng)格

軟件體系結(jié)構(gòu)描述

動(dòng)態(tài)軟件體系結(jié)構(gòu)

Web服務(wù)體系結(jié)構(gòu)

基于體系結(jié)構(gòu)的軟件開發(fā)

軟件體系結(jié)構(gòu)的分析與測(cè)試

軟件體系結(jié)構(gòu)評(píng)估

軟件產(chǎn)品線體系結(jié)構(gòu)

定義第3章軟件體系結(jié)構(gòu)風(fēng)格3.1軟件體系結(jié)構(gòu)風(fēng)格概述為什么要研究軟件體系結(jié)構(gòu)風(fēng)格?

討論體系結(jié)構(gòu)風(fēng)格時(shí)要回答的問題第3章軟件體系結(jié)構(gòu)風(fēng)格3.1軟件體系結(jié)構(gòu)風(fēng)格概述◎構(gòu)件和連接件的類型是什么?◎可容許的結(jié)構(gòu)模式是什么?◎基本的計(jì)算模型是什么?◎風(fēng)格的基本不變性是什么?◎其使用的常見例子是什么?◎使用此風(fēng)格的優(yōu)缺點(diǎn)是什么?◎其常見的特例是什么?

經(jīng)典的體系結(jié)構(gòu)風(fēng)格

要求:能夠列舉出幾種經(jīng)典的軟件體系結(jié)構(gòu)風(fēng)格第3章軟件體系結(jié)構(gòu)風(fēng)格3.1軟件體系結(jié)構(gòu)風(fēng)格概述◎數(shù)據(jù)流風(fēng)格:批處理序列;管道/過濾器。◎調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)?!颡?dú)立構(gòu)件風(fēng)格:進(jìn)程通訊;事件系統(tǒng)?!蛱摂M機(jī)風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)?!騻}(cāng)庫(kù)風(fēng)格:數(shù)據(jù)庫(kù)系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。

管道和過濾器

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格每個(gè)構(gòu)件都有一組輸入和輸出,構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個(gè)過程通常通過對(duì)輸入流的變換及增量計(jì)算來完成,所以在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了。這里的構(gòu)件被稱為過濾器,這種風(fēng)格的連接件就象是數(shù)據(jù)流傳輸?shù)墓艿溃瑢⒁粋€(gè)過濾器的輸出傳到另一過濾器的輸入。

管道和過濾器風(fēng)格的優(yōu)點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎使得軟構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點(diǎn);◎允許設(shè)計(jì)者將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過濾器的行為的簡(jiǎn)單合成;◎支持軟件重用。只要提供適合在兩個(gè)過濾器之間傳送的數(shù)據(jù),任何兩個(gè)過濾器都可被連接起來;◎系統(tǒng)維護(hù)和增強(qiáng)系統(tǒng)性能簡(jiǎn)單。新的過濾器可以添加到現(xiàn)有系統(tǒng)中來;舊的可以被改進(jìn)的過濾器替換掉;◎允許對(duì)一些如吞吐量、死鎖等屬性的分析;◎支持并行執(zhí)行。每個(gè)過濾器是作為一個(gè)單獨(dú)的任務(wù)完成,因此可與其它任務(wù)并行執(zhí)行。

管道和過濾器的缺點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎通常導(dǎo)致進(jìn)程成為批處理的結(jié)構(gòu)。這是因?yàn)殡m然過濾器可增量式地處理數(shù)據(jù),但它們是獨(dú)立的,所以設(shè)計(jì)者必須將每個(gè)過濾器看成一個(gè)完整的從輸入到輸出的轉(zhuǎn)換;◎不適合處理交互的應(yīng)用。當(dāng)需要增量地顯示改變時(shí),這個(gè)問題尤為嚴(yán)重;◎因?yàn)樵跀?shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個(gè)過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。

數(shù)據(jù)抽象和面向?qū)ο蠼M織

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格這種風(fēng)格建立在數(shù)據(jù)抽象和面向?qū)ο蟮幕A(chǔ)上,數(shù)據(jù)的表示方法和它們的相應(yīng)操作封裝在一個(gè)抽象數(shù)據(jù)類型或?qū)ο笾?。這種風(fēng)格的構(gòu)件是對(duì)象,或者說是抽象數(shù)據(jù)類型的實(shí)例。對(duì)象是一種被稱作管理者的構(gòu)件,因?yàn)樗?fù)責(zé)保持資源的完整性。對(duì)象是通過函數(shù)和過程的調(diào)用來交互的。

面向?qū)ο笙到y(tǒng)的優(yōu)點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎因?yàn)閷?duì)象對(duì)其它對(duì)象隱藏它的表示,所以可以改變一個(gè)對(duì)象的表示,而不影響其它的對(duì)象;◎設(shè)計(jì)者可將一些數(shù)據(jù)存取操作的問題分解成一些交互的代理程序的集合。

面向?qū)ο笙到y(tǒng)的缺點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎?yàn)榱耸挂粋€(gè)對(duì)象和另一個(gè)對(duì)象通過過程調(diào)用等進(jìn)行交互,必須知道對(duì)象的標(biāo)識(shí)。只要一個(gè)對(duì)象的標(biāo)識(shí)改變了,就必須修改所有其他明確調(diào)用它的對(duì)象;◎必須修改所有顯式調(diào)用它的其它對(duì)象,并消除由此帶來的一些副作用。例如,如果A使用了對(duì)象B,C也使用了對(duì)象B,那么,C對(duì)B的使用所造成的對(duì)A的影響可能是料想不到的。

基于事件的隱式調(diào)用

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(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)用。這種風(fēng)格的構(gòu)件是一些模塊,模塊既可以是一些過程,又可以是一些事件的集合。過程可以用通用的方式調(diào)用,也可以在系統(tǒng)事件中注冊(cè)一些過程,當(dāng)發(fā)生這些事件時(shí),過程被調(diào)用。這種風(fēng)格的主要特點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用,因此,許多隱式調(diào)用的系統(tǒng)也包含顯式調(diào)用作為構(gòu)件交互的補(bǔ)充形式。

基于事件的隱式調(diào)用的缺點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎構(gòu)件放棄了對(duì)系統(tǒng)計(jì)算的控制。一個(gè)構(gòu)件觸發(fā)一個(gè)事件時(shí),不能確定其它構(gòu)件是否會(huì)響應(yīng)它。而且即使它知道事件注冊(cè)了哪些構(gòu)件的構(gòu)成,它也不能保證這些過程被調(diào)用的順序?!?數(shù)據(jù)交換的問題。有時(shí)數(shù)據(jù)可被一個(gè)事件傳遞,但另一些情況下,基于事件的系統(tǒng)必須依靠一個(gè)共享的倉(cāng)庫(kù)進(jìn)行交互。在這些情況下,全局性能和資源管理便成了問題?!蚣热贿^程的語(yǔ)義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理存在問題。

分層系統(tǒng)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格

層次系統(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ì)相鄰層間交互的約束。這種風(fēng)格支持基于可增加抽象層的設(shè)計(jì)。允許將一個(gè)復(fù)雜問題分解成一個(gè)增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影響兩層,同時(shí)只要給相鄰層提供相同的接口,允許每層用不同的方法實(shí)現(xiàn),同樣為軟件重用提供了強(qiáng)大的支持。

分層系統(tǒng)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格

分層系統(tǒng)的缺點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎并不是每個(gè)系統(tǒng)都可以很容易地劃分為分層的模式,甚至即使一個(gè)系統(tǒng)的邏輯結(jié)構(gòu)是層次化的,出于對(duì)系統(tǒng)性能的考慮,系統(tǒng)設(shè)計(jì)師不得不把一些低級(jí)或高級(jí)的功能綜合起來;◎很難找到一個(gè)合適的、正確的層次抽象方法。

倉(cāng)庫(kù)系統(tǒng)及知識(shí)庫(kù)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格在倉(cāng)庫(kù)風(fēng)格中,有兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)說明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行,倉(cāng)庫(kù)與外構(gòu)件間的相互作用在系統(tǒng)中會(huì)有大的變化??刂圃瓌t的選取產(chǎn)生兩個(gè)主要的子類。若輸入流中某類時(shí)間觸發(fā)進(jìn)程執(zhí)行的選擇,則倉(cāng)庫(kù)是一傳統(tǒng)型數(shù)據(jù)庫(kù);另一方面,若中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則倉(cāng)庫(kù)是一黑板系統(tǒng)。

倉(cāng)庫(kù)系統(tǒng)及知識(shí)庫(kù)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格

C2風(fēng)格

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格

C2風(fēng)格的特點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格◎系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起;◎所有構(gòu)件之間的通訊是通過以連接件為中介的異步消息交換機(jī)制來實(shí)現(xiàn)的;◎構(gòu)件相對(duì)獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。

產(chǎn)生背景第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格◎在集中式計(jì)算技術(shù)時(shí)代廣泛使用的是大型機(jī)/小型機(jī)計(jì)算模型。它是通過一臺(tái)物理上與宿主機(jī)相連接的非智能終端來實(shí)現(xiàn)宿主機(jī)上的應(yīng)用程序。

◎20世紀(jì)80年代以后,集中式結(jié)構(gòu)逐漸被以PC機(jī)為主的微機(jī)網(wǎng)絡(luò)所取代。個(gè)人計(jì)算機(jī)和工作站的采用,永遠(yuǎn)改變了協(xié)作計(jì)算模型,從而導(dǎo)致了分散的個(gè)人計(jì)算模型的產(chǎn)生。

體系結(jié)構(gòu)第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格

任務(wù)分配第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格◎服務(wù)器(1)數(shù)據(jù)庫(kù)安全性的要求;(2)數(shù)據(jù)庫(kù)訪問并發(fā)性的控制;(3)數(shù)據(jù)庫(kù)前端的客戶應(yīng)用程序的全局?jǐn)?shù)據(jù)完整性規(guī)則;(4)數(shù)據(jù)庫(kù)的備份與恢復(fù)。

任務(wù)分配第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格◎客戶應(yīng)用程序(1)提供用戶與數(shù)據(jù)庫(kù)交互的界面;(2)向數(shù)據(jù)庫(kù)服務(wù)器提交用戶請(qǐng)求并接收來自數(shù)據(jù)庫(kù)服務(wù)器的信息;(3)利用客戶應(yīng)用程序?qū)Υ嬖谟诳蛻舳说臄?shù)據(jù)執(zhí)行應(yīng)用邏輯要求。

處理流程第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格

優(yōu)點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格◎

C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡(jiǎn)單,易于人們理解和接受?!蛳到y(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運(yùn)行在不同的計(jì)算機(jī)上,系統(tǒng)中每臺(tái)服務(wù)器都可以適合各構(gòu)件的要求,這對(duì)于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對(duì)系統(tǒng)進(jìn)行擴(kuò)充和縮小?!蛟贑/S體系結(jié)構(gòu)中,系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫(kù)服務(wù)器的開發(fā)則集中于數(shù)據(jù)的管理,不必在每一個(gè)新的應(yīng)用程序中都要對(duì)一個(gè)DBMS進(jìn)行編碼。將大的應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,以節(jié)約大量費(fèi)用。

缺點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.3客戶/服務(wù)器風(fēng)格◎開發(fā)成本較高◎客戶端程序設(shè)計(jì)復(fù)雜◎信息內(nèi)容和形式單一◎用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用◎軟件移植困難◎軟件維護(hù)和升級(jí)困難◎新技術(shù)不能輕易應(yīng)用

體系結(jié)構(gòu)第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格

處理流程第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格

物理結(jié)構(gòu)第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格

應(yīng)用實(shí)例第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格自學(xué)

優(yōu)點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格◎允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對(duì)獨(dú)立性,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。◎允許更靈活有效地選用相應(yīng)的平臺(tái)和硬件系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺(tái)和各個(gè)組成部分可以具有良好的可升級(jí)性和開放性。◎應(yīng)用的各層可以并行開發(fā),可以選擇各自最適合的開發(fā)語(yǔ)言?!蚶霉δ軐佑行У馗綦x開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫(kù)工具或黑客手段去非法地訪問數(shù)據(jù)層,為嚴(yán)格的安全管理奠定了堅(jiān)實(shí)的基礎(chǔ)。

要注意的問題第3章軟件體系結(jié)構(gòu)風(fēng)格3.4三層客戶/服務(wù)器風(fēng)格◎三層C/S結(jié)構(gòu)各層間的通信效率若不高,即使分配給各層的硬件能力很強(qiáng),其作為整體來說也達(dá)不到所要求的性能?!蛟O(shè)計(jì)時(shí)必須慎重考慮三層間的通信方法、通信頻度及數(shù)據(jù)量。這和提高各層的獨(dú)立性一樣是三層C/S結(jié)構(gòu)的關(guān)鍵問題。

基本概念第3章軟件體系結(jié)構(gòu)風(fēng)格3.5瀏覽器/服務(wù)器風(fēng)格◎?yàn)g覽器/服務(wù)器(B/S)風(fēng)格就是上述三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器?!駼/S體系結(jié)構(gòu)主要是利用不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語(yǔ)言,用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜的專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本。從某種程度上來說,B/S結(jié)構(gòu)是一種全新的軟件體系結(jié)構(gòu)。

體系結(jié)構(gòu)第3章軟件體系結(jié)構(gòu)風(fēng)格3.5瀏覽器/服務(wù)器風(fēng)格

優(yōu)點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.5瀏覽器/服務(wù)器風(fēng)格◎基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝、修改和維護(hù)全在服務(wù)器端解決。用戶在使用系統(tǒng)時(shí),僅僅需要一個(gè)瀏覽器就可運(yùn)行全部的模塊,真正達(dá)到了“零客戶端”的功能,很容易在運(yùn)行時(shí)自動(dòng)升級(jí)?!駼/S體系結(jié)構(gòu)還提供了異種機(jī)、異種網(wǎng)、異種應(yīng)用服務(wù)的聯(lián)機(jī)、聯(lián)網(wǎng)、統(tǒng)一服務(wù)的最現(xiàn)實(shí)的開放性基礎(chǔ)。

缺點(diǎn)第3章軟件體系結(jié)構(gòu)風(fēng)格3.5瀏覽器/服務(wù)器風(fēng)格◎B/S體系結(jié)構(gòu)缺乏對(duì)動(dòng)態(tài)頁(yè)面的支持能力,沒有集成有效的數(shù)據(jù)庫(kù)處理功能?!駼/S體系結(jié)構(gòu)的系統(tǒng)擴(kuò)展能力差,安全性難以控制?!虿捎肂/S體系結(jié)構(gòu)的應(yīng)用系統(tǒng),在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)地低于C/S體系結(jié)構(gòu)。◎B/S體系結(jié)構(gòu)的數(shù)據(jù)提交一般以頁(yè)面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理(OLTP)應(yīng)用。

對(duì)象管理結(jié)構(gòu)第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

CORBA技術(shù)規(guī)范

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎接口定義語(yǔ)言(IDL)◎接口池(IR)◎動(dòng)態(tài)調(diào)用接口(DII)◎?qū)ο筮m配器(OA)

CORBA技術(shù)規(guī)范

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎接口定義語(yǔ)言CORBA利用IDL統(tǒng)一地描述服務(wù)器對(duì)象(向調(diào)用者提供服務(wù)的對(duì)象)的接口。IDL本身也是面向?qū)ο蟮?。它雖然不是編程語(yǔ)言,但它為客戶對(duì)象(發(fā)出服務(wù)請(qǐng)求的對(duì)象)提供了語(yǔ)言的獨(dú)立性,因?yàn)榭蛻魧?duì)象只需了解服務(wù)器對(duì)象的IDL接口,不必知道其編程語(yǔ)言。IDL語(yǔ)言是CORBA規(guī)范中定義的一種中性語(yǔ)言,它用來描述對(duì)象的接口,而不涉及對(duì)象的具體實(shí)現(xiàn)。

在CORBA中定義了IDL語(yǔ)言到C、C++、SmallTalk和Java語(yǔ)言的映射。

CORBA技術(shù)規(guī)范

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎接口池CORBA的接口池包括了分布計(jì)算環(huán)境中所有可用的服務(wù)器對(duì)象的接口表示。它使動(dòng)態(tài)搜索可用服務(wù)器的接口、動(dòng)態(tài)構(gòu)造請(qǐng)求及參數(shù)成為可能。

CORBA技術(shù)規(guī)范

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎動(dòng)態(tài)調(diào)用接口CORBA的動(dòng)態(tài)調(diào)用接口提供了一些標(biāo)準(zhǔn)函數(shù)以供客戶對(duì)象動(dòng)態(tài)創(chuàng)建請(qǐng)求、動(dòng)態(tài)構(gòu)造請(qǐng)求參數(shù)??蛻魧?duì)象將動(dòng)態(tài)調(diào)用接口與接口池配合使用可實(shí)現(xiàn)服務(wù)器對(duì)象接口的動(dòng)態(tài)搜索、請(qǐng)求及參數(shù)的動(dòng)態(tài)構(gòu)造與動(dòng)態(tài)發(fā)送。當(dāng)然,只要客戶對(duì)象在編譯之前能夠確定服務(wù)器對(duì)象的IDL接口,CORBA也允許客戶對(duì)象使用靜態(tài)調(diào)用機(jī)制。顯然,靜態(tài)機(jī)制的靈活性雖不及動(dòng)態(tài)機(jī)制,但執(zhí)行效率卻勝過動(dòng)態(tài)機(jī)制。

CORBA技術(shù)規(guī)范

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎動(dòng)態(tài)調(diào)用接口

在CORBA中,對(duì)象適配器用于屏蔽ORB內(nèi)核的實(shí)現(xiàn)細(xì)節(jié),為服務(wù)器對(duì)象的實(shí)現(xiàn)者提供抽象接口,以便他們使用ORB內(nèi)部的某些功能。這些功能包括服務(wù)器對(duì)象的登錄與激活、客戶請(qǐng)求的認(rèn)證等。

體系結(jié)構(gòu)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

特點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.6公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)

◎引入中間件作為事務(wù)代理,完成客戶機(jī)向服務(wù)對(duì)象方(Server)提出的業(yè)務(wù)請(qǐng)求?!?qū)崿F(xiàn)客戶與服務(wù)對(duì)象的完全分開,客戶不需要了解服務(wù)對(duì)象的實(shí)現(xiàn)過程以及具體位置?!蛱峁┸浛偩€機(jī)制,使得在任何環(huán)境下、采用任何語(yǔ)言開發(fā)的軟件只要符合接口規(guī)范的定義,均能夠集成到分布式系統(tǒng)中?!駽ORBA規(guī)范軟件系統(tǒng)采用面向?qū)ο蟮能浖?shí)現(xiàn)方法開發(fā)應(yīng)用系統(tǒng),實(shí)現(xiàn)對(duì)象內(nèi)部細(xì)節(jié)的完整封裝,保留對(duì)象方法的對(duì)外接口定義。

概念

第3章軟件體系結(jié)構(gòu)風(fēng)格3.7正交軟件體系結(jié)構(gòu)

正交軟件體系結(jié)構(gòu)由組織層和線索的構(gòu)件構(gòu)成。層是由一組具有相同抽象級(jí)別的構(gòu)件構(gòu)成。線索是子系統(tǒng)的特例,它是由完成不同層次功能的構(gòu)件組成(通過相互調(diào)用來關(guān)聯(lián)),每一條線索完成整個(gè)系統(tǒng)中相對(duì)獨(dú)立的一部分功能。每一條線索的實(shí)現(xiàn)與其他線索的實(shí)現(xiàn)無關(guān)或關(guān)聯(lián)很少,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。如果線索是相互獨(dú)立的,即不同線索中的構(gòu)件之間沒有相互調(diào)用,那么這個(gè)結(jié)構(gòu)就是完全正交的。

框架

第3章軟件體系結(jié)構(gòu)風(fēng)格3.7正交軟件體系結(jié)構(gòu)

特征

第3章軟件體系結(jié)構(gòu)風(fēng)格3.7正交軟件體系結(jié)構(gòu)

◎正交軟件體系結(jié)構(gòu)由完成不同功能的n(n>1)個(gè)線索(子系統(tǒng))組成;◎系統(tǒng)具有m(m>1)個(gè)不同抽象級(jí)別的層;

◎線索之間是相互獨(dú)立的(正交的);

◎系統(tǒng)有一個(gè)公共驅(qū)動(dòng)層(一般為最高層)和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)。

實(shí)例

第3章軟件體系結(jié)構(gòu)風(fēng)格3.7正交軟件體系結(jié)構(gòu)

自學(xué)

優(yōu)點(diǎn)

第3章軟件體系結(jié)構(gòu)風(fēng)格3.7正交軟件體系結(jié)構(gòu)

◎結(jié)構(gòu)清晰,易于理解。由于線索功能相互獨(dú)立,不進(jìn)行互相調(diào)用,結(jié)構(gòu)簡(jiǎn)單、清晰,構(gòu)件在結(jié)構(gòu)圖中的位置已經(jīng)說明它所實(shí)現(xiàn)的是哪一級(jí)抽象,擔(dān)負(fù)的是什么功能。◎易修改,可維護(hù)性強(qiáng)。由于線索之間是相互獨(dú)立的,所以對(duì)一個(gè)線索的修改不會(huì)影響到其他線索。系統(tǒng)功能的增加或減少,只需相應(yīng)的增刪線索構(gòu)件族,而不影響整個(gè)正交體系結(jié)構(gòu),因此能方便地實(shí)現(xiàn)結(jié)構(gòu)調(diào)整?!蚩梢浦残詮?qiáng),重用粒度大。因?yàn)檎唤Y(jié)構(gòu)可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論