《軟件體系結(jié)構(gòu)》課件 06-事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格_第1頁(yè)
《軟件體系結(jié)構(gòu)》課件 06-事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格_第2頁(yè)
《軟件體系結(jié)構(gòu)》課件 06-事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格_第3頁(yè)
《軟件體系結(jié)構(gòu)》課件 06-事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格_第4頁(yè)
《軟件體系結(jié)構(gòu)》課件 06-事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件體系結(jié)構(gòu)—事件系統(tǒng)軟件體系結(jié)構(gòu)課程組本節(jié)內(nèi)容事件1事件系統(tǒng)22事件系統(tǒng)調(diào)度機(jī)制3事件事件騎手接單商家接單43億年度用戶日訂單2400萬(wàn)+日活60萬(wàn)+300億收入1600+合作伙伴360萬(wàn)商家ISV代運(yùn)營(yíng)B2B共享廚房RMS平臺(tái)服務(wù)用戶服務(wù)騎手服務(wù)商家勞動(dòng)密集型產(chǎn)業(yè)的背后蘊(yùn)藏著大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)、人工智能等高新技術(shù)。美團(tuán)實(shí)時(shí)智能配送系統(tǒng)是全球最大規(guī)模、高復(fù)雜度的多人多點(diǎn)實(shí)時(shí)智能配送調(diào)度系統(tǒng)。用戶下單

騎手搶單訂單配送。。。HOW?事件事件系統(tǒng)體系結(jié)構(gòu)風(fēng)格“外賣經(jīng)濟(jì)體”:通過移動(dòng)互聯(lián)網(wǎng)的結(jié)合與加持,外賣這一業(yè)態(tài)已經(jīng)形成了包括商家、用戶、騎手、生態(tài)伙伴在內(nèi)的完整經(jīng)濟(jì)體,在推動(dòng)行業(yè)變革以及促進(jìn)就業(yè)等社會(huì)效益上發(fā)揮著越來越大的作用。騎手:在美團(tuán)外賣帶動(dòng)就業(yè)的270萬(wàn)騎手中,77%來自農(nóng)村。有67萬(wàn)騎手來自全國(guó)94%的貧困縣。有超4成的騎手在工作之余,通過看書、報(bào)名培訓(xùn)等進(jìn)行學(xué)習(xí)提升。2018年,騎手社交網(wǎng)站的三個(gè)關(guān)鍵詞為“堅(jiān)持”、“奮斗”、“成長(zhǎng)”。用戶:我國(guó)已有45.4%的網(wǎng)民使用過網(wǎng)絡(luò)外賣服務(wù),網(wǎng)絡(luò)外賣用戶規(guī)模高達(dá)3.6億。國(guó)家信息中心報(bào)告顯示,2018年,我國(guó)在線外賣收入約4712億元。平臺(tái):商戶、用戶和騎手通過外賣平臺(tái)獲得了價(jià)值,推動(dòng)平臺(tái)快速發(fā)展。外賣平臺(tái)作為連接用戶、商戶、騎手的樞紐,有責(zé)任去助力這個(gè)經(jīng)濟(jì)體中各個(gè)群體的發(fā)展。5事件事件Event(事件)能夠激活對(duì)象功能的動(dòng)作,事件騎手接單商家接單7數(shù)據(jù)流批處理管道-過濾器虛擬機(jī)解釋器基于規(guī)則的系統(tǒng)調(diào)用-返回主程序-子過程OO分層以數(shù)據(jù)為中心倉(cāng)庫(kù)黑板獨(dú)立構(gòu)件事件系統(tǒng)隱式調(diào)用顯式調(diào)用進(jìn)程通信事件系統(tǒng)-Taxonomy

of

styles主要特點(diǎn)事件的觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些事件影響,相互保持獨(dú)立。不能假定構(gòu)件的處理順序,甚至不知道哪些過程會(huì)被調(diào)用。各個(gè)構(gòu)件之間彼此之間無(wú)連接關(guān)系,各自獨(dú)立存在,通過對(duì)事件的發(fā)布和注冊(cè)實(shí)現(xiàn)關(guān)聯(lián)。8事件系統(tǒng)-隱式調(diào)用特點(diǎn)描述分離的交互事件發(fā)布者并不會(huì)意識(shí)到事件訂閱者的存在。一對(duì)多通信采用發(fā)布/訂閱消息傳遞,一個(gè)特定事件可以影響多個(gè)訂閱者?;谑录挠|發(fā)器由事件觸發(fā)過程調(diào)用。異步支持異步操作。事件系統(tǒng)-基本結(jié)構(gòu)與工作原理(1/2)Inanimplicit-invocation-stylesystems,aneventimplicitlycausestheinvocationofproceduresinothermodules.Acomponent(EventSource)canannonce(orbroadcast)oneormoreevents.一個(gè)組件可以廣播一些事件。Othercomponents(EventHandlers)inthesystemcanregisteraninterestinaneventbyassociatingaprocedurewithit.系統(tǒng)中的其它構(gòu)件可以注冊(cè)自己感興趣的事件,并將自己的某個(gè)過程與相應(yīng)的事件進(jìn)行關(guān)聯(lián)。Whentheeventisannouncedthesystem(EventManager)itselfinvokesalloftheproceduresthathavebeenregisteredfortheevent.當(dāng)一個(gè)事件被發(fā)布,系統(tǒng)自動(dòng)調(diào)用在該事件中注冊(cè)的所有過程。10事件系統(tǒng)-基本結(jié)構(gòu)與工作原理(2/2)事件源事件處理器事件管理器Componentsofeventsystems:objectsorprocesseswhoseinterfacesprovideboth:acollectionofprocedures(過程或函數(shù),充當(dāng)事件源或事件處理器的角色)asetofevents(事件)事件系統(tǒng)-基本構(gòu)件Connectorsofeventsystems:event-procedurebindingsProceduresareregisteredwithevents(過程<事件處理器>向特定的事件進(jìn)行注冊(cè))Componentscommunicatebyannouncingeventsat“appropriate”times(構(gòu)件<事件源>發(fā)布事件)whenaneventisannouncedtheassociatedproceduresare(implicitly)invoked(當(dāng)某些事件被發(fā)布時(shí),向其注冊(cè)的過程被隱式調(diào)用)Orderofinvocationisnon-deterministic(調(diào)用的次序是不確定的)事件系統(tǒng)-連接機(jī)制(1/2)Insometreatments,connectorsareevent-eventbindings(在某些情況下,一個(gè)事件也可能觸發(fā)其他事件,形成事件鏈).Event1Event2Event3Procedure2Procedure1事件系統(tǒng)-連接機(jī)制(2/2)遇到斷點(diǎn),編輯器將源代碼滾動(dòng)到斷點(diǎn)處,變量監(jiān)測(cè)器則更新當(dāng)前變量值并顯示出來。How?事件系統(tǒng)-應(yīng)用實(shí)例1(1/2)Example:調(diào)試器中的斷點(diǎn)處理?

Event

Source:debugger(調(diào)試器)Event

Handler:editorandvariablemonitor(編輯器與變量監(jiān)視器)Event

Manager:IDE(集成開發(fā)環(huán)境)事件系統(tǒng)-應(yīng)用實(shí)例1(2/2)How?編輯器與變量監(jiān)視器向調(diào)試器注冊(cè),接收“斷點(diǎn)事件”;遇到斷點(diǎn),調(diào)試器發(fā)布事件,從而觸發(fā)“編輯器”與“變量監(jiān)測(cè)器”編輯器將源代碼滾動(dòng)到斷點(diǎn)處;變量監(jiān)測(cè)器則更新當(dāng)前變量值并顯示出來。16訂單用戶騎手商家事件源事件處理器事件處理器事件管理器:美團(tuán)平臺(tái)事件系統(tǒng)-應(yīng)用實(shí)例2(1/1)TwostrategiesEventManagerwithoutacentraldispatchermodule(無(wú)獨(dú)立調(diào)度派譴模塊的事件管理器)EventManagerwithseparateddispatchermodule(帶有獨(dú)立派譴模塊的事件管理器)事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)當(dāng)事件發(fā)生時(shí),已向此事件注冊(cè)過的過程被激發(fā)并執(zhí)行。事件將以何種方式派遣到已注冊(cè)的過程?過程將如何執(zhí)行?ThismoduleisusuallycalledObservable/Observer

(被觀察者/觀察者).Eachmoduleallowsothermodulestodeclareinterestineventsthattheyaresending.(每一個(gè)模塊都允許其他模塊向自己所能發(fā)送的某些消息表明興趣)Wheneveramodulesendsanevent,itsendsthateventtoexactlythosemodulesthatregisteredinterestinthatevent.(當(dāng)某一模塊發(fā)出某一事件時(shí),它自動(dòng)將這些事件發(fā)布給那些曾經(jīng)向自己注冊(cè)過此事件的模塊)事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)無(wú)獨(dú)立調(diào)度模塊的事件系統(tǒng)被觀察者/觀察者模式ObservableObserverObserverObserverObservable/ObservermoduleRegisterEventSendevent事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)被觀察者觀察者注冊(cè)事件發(fā)送事件事件派遣模塊?Thedispatchermoduleisresponsibleforreceivingallincomingeventsanddispatchingthemtoothermodulesinthesystem.事件派遣模塊是負(fù)責(zé)接收到來的事件并派遣它們到其它模塊。事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)有獨(dú)立事件派遣模塊的事件系統(tǒng)怎樣派遣?全廣播式(Allbroadcasting):派遣模塊將事件廣播到所有的模塊,但只有感興趣的模塊才去取出事件并觸發(fā)自身的行為;選擇廣播式(Selectedbroadcasting):派遣模塊將事件送到那些已經(jīng)注冊(cè)的模塊中。dispatcherModule1Module2Module3我對(duì)此事件感興趣,觸發(fā)我的行為我對(duì)此事件不感興趣,不觸發(fā)我的行為我們都得到了事件全廣播式:無(wú)目的廣播,接受者自行決定是否加以處理或者簡(jiǎn)單拋棄事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)派遣器模塊發(fā)送事件dispatcherModule1Module2Module3publisherSendeventSubscribePublishevent我沒訂閱!我得不到事件消息選擇廣播式:事件只發(fā)送給特定模塊事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)事件發(fā)布者發(fā)布事件派遣器Module4subscribersubscribersubscriber模塊發(fā)送事件訂閱事件我訂閱了!我得到了事件消息事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)選擇廣播式的兩種策略:基于事件被執(zhí)行的方式Point-to-Point(messagequeue)(點(diǎn)對(duì)點(diǎn)模式:基于消息隊(duì)列)Publish-Subscribe(發(fā)布-訂閱模式)事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)系統(tǒng)配置一個(gè)隊(duì)列管理器,并定義一個(gè)命名的消息隊(duì)列某個(gè)應(yīng)用向消息隊(duì)列注冊(cè),以監(jiān)聽并處理被放置在隊(duì)列里的事件其他的應(yīng)用連接到該隊(duì)列并向其中發(fā)布事件隊(duì)列管理器存儲(chǔ)這些消息,直到接收端的應(yīng)用連接到隊(duì)列,取回這些消息并加以處理消息只能夠被唯一的消費(fèi)者所消費(fèi),消費(fèi)之后即從隊(duì)列中刪除事件系統(tǒng)派遣機(jī)制-調(diào)度機(jī)制(1/2)事件在發(fā)送給訂閱者之后,并不會(huì)馬上從topic中刪除,topic會(huì)在事件過期之后自動(dòng)將其刪除。一個(gè)事件可以被多個(gè)訂閱者消費(fèi)某個(gè)應(yīng)用向topic注冊(cè),以監(jiān)聽并處理被放置在topic里的事件其他的應(yīng)用向相應(yīng)的topic里發(fā)布事件EventSystems(事件系統(tǒng))Selectedbroadcasting(選擇性廣播)Allbroadcasting(全廣播)Point-to-Point(Queue-based)點(diǎn)對(duì)點(diǎn)(基于隊(duì)列)Publish-Subscribe(發(fā)布-訂閱)EventManagerwithseparateddispatchermodule(有獨(dú)立的事件派遣模塊)EventManagerwithoutseparateddispatchermodule(無(wú)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論