軟件體系結(jié)構(gòu)模式CS_第1頁
軟件體系結(jié)構(gòu)模式CS_第2頁
軟件體系結(jié)構(gòu)模式CS_第3頁
軟件體系結(jié)構(gòu)模式CS_第4頁
軟件體系結(jié)構(gòu)模式CS_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

現(xiàn)代軟件工程

九.軟件體系結(jié)構(gòu)模式2中國傳媒大學(xué)計算機軟件學(xué)院研究生課程主講教師:扈文峰1.客戶機/服務(wù)器結(jié)構(gòu)(C/S)1.1客戶機/服務(wù)器概述一個軟件系統(tǒng)整體被分為兩個邏輯上分離的部分,每一部分充當(dāng)不同的角色、完成不同的功能。一般地,客戶機為完成特定工作向服務(wù)器發(fā)出請求,服務(wù)器的任務(wù)是處理客戶的請求并返回結(jié)果。常見的例子有:操作系統(tǒng)的內(nèi)核與外層之間、在通過網(wǎng)絡(luò)連接的物理上分離的計算機之間等,都屬于C/S結(jié)構(gòu)。隨著網(wǎng)絡(luò)特別是國際互聯(lián)網(wǎng)的發(fā)展,允許應(yīng)用程序分布在多臺計算機上共同完成統(tǒng)一任務(wù)的C/S結(jié)構(gòu)獲得了極大的應(yīng)用。由開始單純的“客戶界面/數(shù)據(jù)庫服務(wù)器”的兩層結(jié)構(gòu),逐漸分離出應(yīng)用邏輯服務(wù)器、WWW服務(wù)器等,形成更為復(fù)雜的多層C/S結(jié)構(gòu)。即使在兩個服務(wù)器的連接之間,也是一個充當(dāng)客戶機,一個充當(dāng)服務(wù)器。參見下圖??蛻艚缑鏀?shù)據(jù)服務(wù)器兩層C/S結(jié)構(gòu)客戶界面數(shù)據(jù)服務(wù)器應(yīng)用邏輯服務(wù)器三層C/S結(jié)構(gòu)客戶界面應(yīng)用邏輯服務(wù)器數(shù)據(jù)服務(wù)器WWW服務(wù)器四層C/S結(jié)構(gòu)1.2客戶機/服務(wù)器的結(jié)構(gòu)分析1.2.1客戶機/服務(wù)器的組成客戶機/服務(wù)器系統(tǒng)是兩個獨立的邏輯系統(tǒng)為完成特定任務(wù)而形成的單向協(xié)作關(guān)系。客戶機通常由以下部分組成:

◆用戶交互界面(可選);◆請求表達(dá);◆服務(wù)代理;◆通信。服務(wù)器通常由以下部分組成:

◆服務(wù)器接口;◆調(diào)度管理;◆事務(wù)處理計算;◆共享資源管理;◆通信。客戶機和服務(wù)器之間具有通訊連接機制,并遵循公共的通訊協(xié)議,包括:

◆請求的表達(dá);◆返回結(jié)果的表達(dá);◆連接關(guān)系和連接狀態(tài)的表達(dá)。1.2.2各個組成部分的責(zé)任◆客戶的用戶界面:負(fù)責(zé)接受用戶的輸入、提交用戶的操作請求、顯示操作請求返回的結(jié)果。◆請求表達(dá):把用戶的操作請求轉(zhuǎn)換為合乎通訊協(xié)議的表達(dá)形式?!舴?wù)代理:是服務(wù)器在客戶方的代理部件,客戶通過它提出請求、獲得返回信息、掌握服務(wù)器的工作狀態(tài)。

◆通信部件:負(fù)責(zé)建立和保持客戶與服務(wù)器之間的連接。

◆共享資源管理:是服務(wù)器內(nèi)部維持的內(nèi)部公共信息和其他資源,它為操作請求的實現(xiàn)提供信息的資源。

◆調(diào)度管理:根據(jù)客戶的請求和內(nèi)部的工作狀態(tài),管理刻畫請求,調(diào)配系統(tǒng)資源,快速高效地完成操作請求處理?!舴?wù)器接口:體現(xiàn)了服務(wù)器所能夠?qū)ν馓峁┑牟僮鞣?wù),是客戶與服務(wù)器連接的橋梁。

◆事務(wù)處理計算:負(fù)責(zé)完成接口所描述的各種計算和處理。1.2.3客戶機與服務(wù)器之間的通信如果客戶機和服務(wù)器都配置在同一臺計算機上,客戶機與服務(wù)器之間的通信連接可以通過消息、共享存儲區(qū)和信號量等方法實現(xiàn)。如果客戶機和服務(wù)器分布在不同計算機上,它們之間的通信就需要通過網(wǎng)絡(luò)了。網(wǎng)絡(luò)間的進(jìn)程通訊首先要解決的是“進(jìn)程標(biāo)識”!在同一臺機器上,不同的進(jìn)程可以用進(jìn)程號作為唯一標(biāo)識。但在網(wǎng)絡(luò)間,各個機器獨立分配的進(jìn)程號就不能作為不同進(jìn)程的區(qū)別標(biāo)識了。要在網(wǎng)絡(luò)的多臺機器上區(qū)別進(jìn)程,必須需要機器的網(wǎng)絡(luò)地址和端口(Port)號的參與。套接字(Socket)是兩個進(jìn)程連接的端點。每個套接字都有相應(yīng)的套結(jié)字地址,是由一個因特網(wǎng)地址和一個16位的整數(shù)端口組成,用“地址:端口”來表示。當(dāng)客戶發(fā)起一個連接請求時,客戶端套接字地址中的端口是由內(nèi)核自動分配的,稱為臨時端口。然而服務(wù)器套接字地址中的端口通常是某個知名的端口,是與服務(wù)對應(yīng)的。例如,Web服務(wù)器通常使用端口80,而電子郵件服務(wù)器使用端口25,等。所以網(wǎng)絡(luò)間進(jìn)程通信的全局唯一標(biāo)識需要用一個三元組:(協(xié)議,本地網(wǎng)絡(luò)地址,本地端口)這成為半相關(guān)。完整的網(wǎng)絡(luò)間進(jìn)程通信連接,由客戶機和服務(wù)器組成,需要一個稱為全相關(guān)的五元組來標(biāo)識:(協(xié)議,本地網(wǎng)絡(luò)地址,本地端口,遠(yuǎn)地網(wǎng)絡(luò)地址,遠(yuǎn)地端口號)以下以Unix中為例,說明客戶機/服務(wù)器通過使用網(wǎng)絡(luò)套接建立連接的時序關(guān)系:socket()bind()listen()accept()read()write()socket()connect()write()read()服務(wù)器客戶機等待服務(wù)請求處理服務(wù)請求建立連接服務(wù)請求服務(wù)響應(yīng)產(chǎn)生一個soket,標(biāo)志著一個進(jìn)程的產(chǎn)生將本地soket地址(包括本地網(wǎng)絡(luò)地址和本地端口)與創(chuàng)建的soket聯(lián)系起來,即將本地的soket地址賦予soket,以指定半相關(guān)。指示服務(wù)器進(jìn)入等待接受狀態(tài)這一對系統(tǒng)調(diào)用合作完成客戶機和服務(wù)器之間的通信連接以緩沖方式發(fā)送待傳送的信息以緩沖方式接受傳送來的信息1.3客戶機/服務(wù)器的連接1.3.1客戶機與服務(wù)器連接的特征客戶與服務(wù)器間的通信是通過定義的接口實現(xiàn)的。(2)客戶對服務(wù)器的請求時通過特定的詞法和語法形式表達(dá)的。(3)從客戶到服務(wù)器是以請求信息為主;從服務(wù)器到客戶時以返回信息和服務(wù)器狀態(tài)信息為主。(4)客戶的請求時在客戶端經(jīng)過打包后傳送給服務(wù)器的;

(5)在服務(wù)器端,對接受到的信息進(jìn)行解包分析,取出有效的信息,形成對請求的服務(wù)調(diào)用。1.3.2連接發(fā)生的檢測服務(wù)器不可能預(yù)測客戶端何時發(fā)生連接請求。顯然,服務(wù)器通過循環(huán)查詢的方式檢查連接的到來是不恰當(dāng)?shù)摹?yīng)該通過類似中斷請求的方式激發(fā)和控制連接??蛻魴C/服務(wù)器的連接是通過“進(jìn)程等待”和“網(wǎng)絡(luò)請求中斷”來完成的。在服務(wù)器端有一個守護(hù)進(jìn)程(Daemon),也稱為服務(wù)器進(jìn)程,它隨系統(tǒng)啟動而運行。當(dāng)沒有客戶請求時,守護(hù)進(jìn)程處于等待狀態(tài)。每當(dāng)有一個客戶請求到達(dá),服務(wù)器進(jìn)程立即響應(yīng)并產(chǎn)生資源分配和執(zhí)行處理,然后回到等待狀態(tài),接受下一個請求。1.3.3連接機制客戶和服務(wù)器之間的連接方式有兩種:同步和異步!◆遠(yuǎn)程過程調(diào)用:位于兩臺計算機上的兩個軟件部件必須通過良好定義的接口進(jìn)行通訊,這些接口可以是系統(tǒng)中的過程(函數(shù)),因而造成了可以調(diào)用其它機器上的函數(shù)的假象,這就是由“遠(yuǎn)程過程調(diào)用(RPC)”和其它機制實現(xiàn)的。

◆同步請求:客戶通過遠(yuǎn)程過程調(diào)用向服務(wù)器接口發(fā)出請求后,往往立即進(jìn)入等待返回結(jié)果狀態(tài),并且在未得到返回結(jié)果之前,客戶一直處于等待狀態(tài),不執(zhí)行任何自身的出程序邏輯?!舢惒秸埱螅嚎蛻舻恼埱笠坏┌l(fā)出并得到服務(wù)器的確認(rèn),客戶立即返回去執(zhí)行自身的其它程序邏輯,待到服務(wù)器完成請求的操作后,才把結(jié)果通知客戶。serverRequest()(3)………(4)………(5)respondClient()(2)客戶請求的異步響應(yīng)serverRequest()(6)………………………………(3)……(4)respondClient()(2)(5)客戶請求的同步響應(yīng)1.達(dá)3.陶4連接奸協(xié)議客戶罷和服袖務(wù)器盞之間姿傳送懲的只伴是字釀符信斑息。自該信蘆息的瓶意義棉需要愧進(jìn)行度分析宅處理狼,根懼據(jù)句汗法形巨式轉(zhuǎn)坑達(dá)特午定的琴含義蝦。例如慨,遠(yuǎn)宅程過紀(jì)程調(diào)尤用請瞞求,息如同申程序娘中函蜘數(shù)和腳過程易的聲夏明一艙樣,菜需要償提供送調(diào)用裳的名夫稱、胡執(zhí)行福方式斤、參胡數(shù)的臺個數(shù)短、順溫序、占類型餅、值魔以及頭返回燥的類后型。在更老廣泛稀范圍泉應(yīng)用屑的客鴿戶機扔和服嘩務(wù)器秧中,超需要璃采用由更為跪標(biāo)準(zhǔn)剖化的請表達(dá)緩。目弦前可繞使用看的至?xí)裆儆羞M(jìn)三類盆協(xié)議鉗。一若是在裕數(shù)據(jù)朱庫系漁統(tǒng)中茫得到石廣泛潛應(yīng)用育的SQ明L查詢愚語言這;二筆是遠(yuǎn)鴿程過羊程調(diào)巖用規(guī)傲范RP誘C/旬LP席C;三剩是根敗據(jù)應(yīng)桃用需步要設(shè)組計的蠻用戶借語言飾。1.還4客戶滴機/服務(wù)野器的鴨運行顯機制1.設(shè)4.崗1服務(wù)示器的勾任務(wù)煌調(diào)度服務(wù)膊器調(diào)剛度是磨解決折多客能戶和涉多請?zhí)笸鋾r執(zhí)祥行帶勉來的拴諸多恢問題烘的。作為方獨立撫工作蝦的服瞎務(wù)器傍,它廊必須仙做好材準(zhǔn)備獎,能廟夠同沸時接皂受和更處理亂多個假相同橡或者樸不同綿的請冬求。址如果危服務(wù)陰器已楚經(jīng)無求能力攔處理侍新的梢請求咐,它偷必須勸以一己定的原策略婚建立燭等待半隊列俗或者濟通知么客戶闖不能哄立即攀處理逆請求掛。目前皂基于衛(wèi)服務(wù)懶器的事應(yīng)用窯程序橋所使砌用的芹操作悟系統(tǒng)挨大多馳數(shù)是史多任扭務(wù)的棟。這巴樣,印服務(wù)約器利桂用多享進(jìn)程耳或者銜多線針程機棉制,梨可以友方便滅地建詢立起脊多客塞戶多術(shù)請求芒情況廊下的隔復(fù)雜訪調(diào)度題問題頌。存在雄兩類滲調(diào)度寇方式托:有衫等待梁隊列步和無咬等待凳隊列劑。無狹等待怎隊列芳方式鑰假設(shè)岡服務(wù)堤器的材進(jìn)程梳和線巧程資日源是適無限樸的,柱足夠渴為每祝一個少客戶呀請求廁建立歸其獨壺立的殊處理代進(jìn)程眉或線朽程。僑有等舊待隊栽列方皆式假中設(shè)服假務(wù)器瓣的可誘用進(jìn)賀程數(shù)日或線鋤程數(shù)撇是有某限的告,當(dāng)杜同時禁發(fā)生歡的客慢戶請發(fā)求超彩過此勸數(shù)目宰時,宋請求榴被放逝入等貧待隊盾列,意或由法服務(wù)牧器通喘知客建戶暫漫時不主能進(jìn)皮行處踩理。1.距4.規(guī)2進(jìn)程蘭方式奶調(diào)度在服翠務(wù)器席端建訂立一斯個歲吳系統(tǒng)膨啟動叼而運棋行的吧服務(wù)逼器主遭進(jìn)程份,它定含有息服務(wù)編器的汗對外奴接口爽以及黑從事蜘管理召的共商享數(shù)擋據(jù)和委操作訓(xùn)服務(wù)架。當(dāng)服沒有準(zhǔn)客戶纏請求員時主餃進(jìn)程娛處于宋等待月狀態(tài)使。每規(guī)當(dāng)有尖一個妨客戶聾請求蜂到達(dá)克,主暴進(jìn)程緣瑞立即拉產(chǎn)生兼一個寫字子杏進(jìn)程耳,然厚后回美到等驕待狀退態(tài),眨由子席進(jìn)程誘響應(yīng)麥請求盡,處授理完誰請求掠后撤唇銷子挪進(jìn)程睡。有時要將主魚進(jìn)程男稱為灘主服腐務(wù)器(M胖as頓te濟r),它統(tǒng)負(fù)責(zé)縫接受太請求抹并調(diào)判度響勺應(yīng)任旁務(wù)的濫子進(jìn)滾程;熄子進(jìn)太程稱株之為所從服腥務(wù)器(S齒la填ve深),它響只執(zhí)丸行特偉定的緩響應(yīng)邀任務(wù)將。進(jìn)程啟具有逝兩個匹特征氣:代座碼執(zhí)傲行和稿資源球所有茅權(quán)。堅是多在任務(wù)校系統(tǒng)澇中的蠟控制皆機制妻。但星是進(jìn)凝程會杏消耗殼大量引的計速算機馳資源摩,過艙度使餃用進(jìn)巧程會踏造成蔥資源些緊張后和效聚率低綱下。1.農(nóng)4.欺3線程貞調(diào)度柳方式在服童務(wù)器看端仍水要建垂立一俱個隨稼系統(tǒng)臥啟動赤而運墾行的世服務(wù)肥器進(jìn)凍程,嘆它含魄有服象務(wù)器軟的對駛外接許口以膚及從房誠事管嬌理的竄共享債數(shù)據(jù)聲和操污作服費務(wù)。釘當(dāng)沒僵有客乒戶請身求時隸主進(jìn)速程處袍于等卻待狀撐態(tài)。肉每當(dāng)驗有一筆個客紐奉戶請河求到吵達(dá),過主進(jìn)套程立魚即產(chǎn)圓生一篩個線坡程,娃然后述回到移等待毅狀態(tài)太,由絡(luò)線程鵲響應(yīng)治請求蹈,處睡理完程請求妄后撤節(jié)銷線略程。線程察可以峽看成程輕量行級的隆進(jìn)程機,它概是程夜序中早的一郵個函拾數(shù)的刑執(zhí)行饞。所志以線留程比屑進(jìn)程息所消刻耗的掘資源考要小帶得多揀,但牲同樣瓦可以爐產(chǎn)生衫并發(fā)費性,研處理里多個博請求蝕的發(fā)改生。飾所以翁采用最線程華的服采務(wù)器羞運行嘆效率罩和速愁度要報高于屢進(jìn)程上。1.顯4.條4線程顆池調(diào)棕度方察式線程狠的產(chǎn)蟻生和秀撤銷阿也占探用時印間和捕空間待。為寄此通丟常采籍用線批程池彎的工維作方爭式。這樣教,在果支持悶線程宅池的煉服務(wù)傳器中社,服駱務(wù)器療進(jìn)程劈燕除了按等待億請求越并分協(xié)配任包務(wù)外饒,還連管理垮一個連線程競數(shù)量華有限財?shù)木€慰程池支和一罪個請扣求隊舅列。店線程續(xù)池中拔的線腦程是伴在系躍統(tǒng)啟扛動時誘一次士性創(chuàng)病建的央,其狡中每蓄個線圖程執(zhí)僻行什耗么任頌務(wù)、屯為哪榆個客返戶請?zhí)乔蠓鼊?wù),旱是由形服務(wù)寧器進(jìn)跪程的吩主線鞭程管駐理的念。當(dāng)客臨戶請罵求到科來時所,主腔線程棍根據(jù)筐線程切資源嘆的負(fù)斗荷情嗎況,茫分配否一個狹空閑計的線乓程,隊指派些一個籌執(zhí)行鉤任務(wù)茄,使侍其運挽行以動響應(yīng)哪客戶屋請求村。響步應(yīng)結(jié)簡束后惕,線趴程變氏為閑銜置狀冊態(tài),鼻等待至新請齡求的懇到來虎和主梨線程優(yōu)的任繩務(wù)分涌配。蹈這其圣中,愉不發(fā)抹生線緣瑞程的創(chuàng)創(chuàng)建老和撤悲銷,磚只有摧線程尚狀態(tài)守的變處化。當(dāng)同忠時發(fā)李生請慚求的理數(shù)量硬超過租線程蠅池中久線程漁的數(shù)橡量時兔,請決求進(jìn)繁入等洗待隊巴列。2.實時顫控制灰系統(tǒng)2.附1實時笨控制拴系統(tǒng)松概述舉例椒:◆魔飛船抓發(fā)射策飛行念控制輛系統(tǒng)益;◆拍導(dǎo)彈摸攻擊默跟蹤裳系統(tǒng)沒;◆題病人樹監(jiān)護(hù)弱系統(tǒng)煌;◆慌工業(yè)研機器怪人?!舸赖鹊葮_@類崗系統(tǒng)能的共睬同特步點是挎:不億斷循速環(huán)執(zhí)水行對粉監(jiān)控給目標(biāo)奇的檢地測、浩計算朗和控菌制。改檢測艘器不駛斷地轟檢測酷環(huán)境至信息功的變異化,膠并把抽數(shù)據(jù)屯傳送瀉給控疏制器渣。計燥算器蟲在考僵慮目士標(biāo)設(shè)阿定和壁外來值干擾考的情悅況下紛,經(jīng)甩過快奏速地升計算尚得到平控制罷信息昂,并攀把它完交給層執(zhí)行坡器。柿執(zhí)行克器按張照控學(xué)制信恐息進(jìn)州行動罵作調(diào)縣整,磁以實注現(xiàn)系眠統(tǒng)設(shè)蓋定的羽目標(biāo)潤。參宜見下金圖。這個租系統(tǒng)燙的另吧外兩擇個特惹點是宴:整蔥個循炮環(huán)周尸期執(zhí)追行的當(dāng)實時捆性和乓計算劍的連爽續(xù)性鄉(xiāng)豐。實鴿時性泛要求裙系統(tǒng)樣各個躲環(huán)節(jié)窮執(zhí)行邁的速拒度要胡足夠醬高。寶連續(xù)李性要辯求各懂個部碰分能莖夠重漸復(fù)、營快速禮地運跟行,憑而始架終維任持系唐統(tǒng)工棕作的勒正確清。根據(jù)連目標(biāo)貞設(shè)定副的方浴式的紋不同筍,這屬類系塑統(tǒng)又巡壽分為跟蹤和穩(wěn)態(tài)銳控制兩種著。穩(wěn)態(tài)股控制傅的目磨標(biāo)是坐確認(rèn)煎不變?nèi)绲模卫缇壢饻囟劝慰刂普?。跟蹤香控制蔽的目徐?biāo)是桌隨著堤環(huán)境嗽而不剝斷發(fā)齡生變穿化的案,例幕如導(dǎo)之彈攻奇擊。計算魯器執(zhí)行權(quán)器被控殼對象設(shè)定脊目標(biāo)檢測講器2.挎2系統(tǒng)敬結(jié)構(gòu)系統(tǒng)碌的一頃般結(jié)要構(gòu)如艙下圖借,說紡明如柿下。檢測禿器1到n是系木統(tǒng)的躲輸入漲信息苦。這續(xù)些信喚息被壞采集宰器1到n以特外定的川工作驗方式遮傳送評到系寸統(tǒng)內(nèi)您

溫馨提示

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

最新文檔

評論

0/150

提交評論