版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构—事件系统软件体系结构课程组本节内容事件1事件系统22事件系统调度机制3事件事件骑手接单商家接单43亿年度用户日订单2400万+日活60万+300亿收入1600+合作伙伴360万商家ISV代运营B2B共享厨房RMS平台服务用户服务骑手服务商家劳动密集型产业的背后蕴藏着大数据、云计算、物联网、人工智能等高新技术。美团实时智能配送系统是全球最大规模、高复杂度的多人多点实时智能配送调度系统。用户下单
骑手抢单订单配送。。。HOW?事件事件系统体系结构风格“外卖经济体”:通过移动互联网的结合与加持,外卖这一业态已经形成了包括商家、用户、骑手、生态伙伴在内的完整经济体,在推动行业变革以及促进就业等社会效益上发挥着越来越大的作用。骑手:在美团外卖带动就业的270万骑手中,77%来自农村。有67万骑手来自全国94%的贫困县。有超4成的骑手在工作之余,通过看书、报名培训等进行学习提升。2018年,骑手社交网站的三个关键词为“坚持”、“奋斗”、“成长”。用户:我国已有45.4%的网民使用过网络外卖服务,网络外卖用户规模高达3.6亿。国家信息中心报告显示,2018年,我国在线外卖收入约4712亿元。平台:商户、用户和骑手通过外卖平台获得了价值,推动平台快速发展。外卖平台作为连接用户、商户、骑手的枢纽,有责任去助力这个经济体中各个群体的发展。5事件事件Event(事件)能够激活对象功能的动作,事件骑手接单商家接单7数据流批处理管道-过滤器虚拟机解释器基于规则的系统调用-返回主程序-子过程OO分层以数据为中心仓库黑板独立构件事件系统隐式调用显式调用进程通信事件系统-Taxonomy
of
styles主要特点事件的触发者并不知道哪些构件会被这些事件影响,相互保持独立。不能假定构件的处理顺序,甚至不知道哪些过程会被调用。各个构件之间彼此之间无连接关系,各自独立存在,通过对事件的发布和注册实现关联。8事件系统-隐式调用特点描述分离的交互事件发布者并不会意识到事件订阅者的存在。一对多通信采用发布/订阅消息传递,一个特定事件可以影响多个订阅者。基于事件的触发器由事件触发过程调用。异步支持异步操作。事件系统-基本结构与工作原理(1/2)Inanimplicit-invocation-stylesystems,aneventimplicitlycausestheinvocationofproceduresinothermodules.Acomponent(EventSource)canannonce(orbroadcast)oneormoreevents.一个组件可以广播一些事件。Othercomponents(EventHandlers)inthesystemcanregisteraninterestinaneventbyassociatingaprocedurewithit.系统中的其它构件可以注册自己感兴趣的事件,并将自己的某个过程与相应的事件进行关联。Whentheeventisannouncedthesystem(EventManager)itselfinvokesalloftheproceduresthathavebeenregisteredfortheevent.当一个事件被发布,系统自动调用在该事件中注册的所有过程。10事件系统-基本结构与工作原理(2/2)事件源事件处理器事件管理器Componentsofeventsystems:objectsorprocesseswhoseinterfacesprovideboth:acollectionofprocedures(过程或函数,充当事件源或事件处理器的角色)asetofevents(事件)事件系统-基本构件Connectorsofeventsystems:event-procedurebindingsProceduresareregisteredwithevents(过程<事件处理器>向特定的事件进行注册)Componentscommunicatebyannouncingeventsat“appropriate”times(构件<事件源>发布事件)whenaneventisannouncedtheassociatedproceduresare(implicitly)invoked(当某些事件被发布时,向其注册的过程被隐式调用)Orderofinvocationisnon-deterministic(调用的次序是不确定的)事件系统-连接机制(1/2)Insometreatments,connectorsareevent-eventbindings(在某些情况下,一个事件也可能触发其他事件,形成事件链).Event1Event2Event3Procedure2Procedure1事件系统-连接机制(2/2)遇到断点,编辑器将源代码滚动到断点处,变量监测器则更新当前变量值并显示出来。How?事件系统-应用实例1(1/2)Example:调试器中的断点处理?
Event
Source:debugger(调试器)Event
Handler:editorandvariablemonitor(编辑器与变量监视器)Event
Manager:IDE(集成开发环境)事件系统-应用实例1(2/2)How?编辑器与变量监视器向调试器注册,接收“断点事件”;遇到断点,调试器发布事件,从而触发“编辑器”与“变量监测器”编辑器将源代码滚动到断点处;变量监测器则更新当前变量值并显示出来。16订单用户骑手商家事件源事件处理器事件处理器事件管理器:美团平台事件系统-应用实例2(1/1)TwostrategiesEventManagerwithoutacentraldispatchermodule(无独立调度派谴模块的事件管理器)EventManagerwithseparateddispatchermodule(带有独立派谴模块的事件管理器)事件系统派遣机制-调度机制(1/2)当事件发生时,已向此事件注册过的过程被激发并执行。事件将以何种方式派遣到已注册的过程?过程将如何执行?ThismoduleisusuallycalledObservable/Observer
(被观察者/观察者).Eachmoduleallowsothermodulestodeclareinterestineventsthattheyaresending.(每一个模块都允许其他模块向自己所能发送的某些消息表明兴趣)Wheneveramodulesendsanevent,itsendsthateventtoexactlythosemodulesthatregisteredinterestinthatevent.(当某一模块发出某一事件时,它自动将这些事件发布给那些曾经向自己注册过此事件的模块)事件系统派遣机制-调度机制(1/2)无独立调度模块的事件系统被观察者/观察者模式ObservableObserverObserverObserverObservable/ObservermoduleRegisterEventSendevent事件系统派遣机制-调度机制(1/2)被观察者观察者注册事件发送事件事件派遣模块?Thedispatchermoduleisresponsibleforreceivingallincomingeventsanddispatchingthemtoothermodulesinthesystem.事件派遣模块是负责接收到来的事件并派遣它们到其它模块。事件系统派遣机制-调度机制(1/2)有独立事件派遣模块的事件系统怎样派遣?全广播式(Allbroadcasting):派遣模块将事件广播到所有的模块,但只有感兴趣的模块才去取出事件并触发自身的行为;选择广播式(Selectedbroadcasting):派遣模块将事件送到那些已经注册的模块中。dispatcherModule1Module2Module3我对此事件感兴趣,触发我的行为我对此事件不感兴趣,不触发我的行为我们都得到了事件全广播式:无目的广播,接受者自行决定是否加以处理或者简单抛弃事件系统派遣机制-调度机制(1/2)派遣器模块发送事件dispatcherModule1Module2Module3publisherSendeventSubscribePublishevent我没订阅!我得不到事件消息选择广播式:事件只发送给特定模块事件系统派遣机制-调度机制(1/2)事件发布者发布事件派遣器Module4subscribersubscribersubscriber模块发送事件订阅事件我订阅了!我得到了事件消息事件系统派遣机制-调度机制(1/2)选择广播式的两种策略:基于事件被执行的方式Point-to-Point(messagequeue)(点对点模式:基于消息队列)Publish-Subscribe(发布-订阅模式)事件系统派遣机制-调度机制(1/2)系统配置一个队列管理器,并定义一个命名的消息队列某个应用向消息队列注册,以监听并处理被放置在队列里的事件其他的应用连接到该队列并向其中发布事件队列管理器存储这些消息,直到接收端的应用连接到队列,取回这些消息并加以处理消息只能够被唯一的消费者所消费,消费之后即从队列中删除事件系统派遣机制-调度机制(1/2)事件在发送给订阅者之后,并不会马上从topic中删除,topic会在事件过期之后自动将其删除。一个事件可以被多个订阅者消费某个应用向topic注册,以监听并处理被放置在topic里的事件其他的应用向相应的topic里发布事件EventSystems(事件系统)Selectedbroadcasting(选择性广播)Allbroadcasting(全广播)Point-to-Point(Queue-based)点对点(基于队列)Publish-Subscribe(发布-订阅)EventManagerwithseparateddispatchermodule(有独立的事件派遣模块)EventManagerwithoutseparateddispatchermodule(无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新乡医学院马克思主义基本原理概论期末考试笔试真题汇编
- 初中政治教师数字公民教育实践探索与校本研修体系构建研究教学研究课题报告
- 2025年曲阜远东职业技术学院马克思主义基本原理概论期末考试笔试题库
- 2025年上海第二工业大学马克思主义基本原理概论期末考试笔试真题汇编
- 2025年河南师范大学新联学院马克思主义基本原理概论期末考试笔试真题汇编
- 2024年安徽大学江淮学院马克思主义基本原理概论期末考试真题汇编
- 2025年重庆城市管理职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年天津市渤海化工职工学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年山东化工职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年江西行政管理干部学院马克思主义基本原理概论期末考试模拟试卷
- 《黄土原位测试规程》
- 冀教版(2024)三年级上册《称量物体》单元测试(含解析)
- 数学-湖南长郡中学、杭州二中、南师附中三校2025届高三4月联考试题+答案
- 医学三维可视化与虚拟现实技术:革新肝癌腹腔镜手术的探索与实践
- 统编版(2024)八年级上册历史新教材全册知识点复习提纲
- 水平定向钻施工技术应用与管理
- 风险金管理办法
- 校长在食堂从业人员培训会上的讲话
- (高清版)DBJ∕T 13-91-2025 《福建省房屋市政工程安全风险分级管控与隐患排查治理标准》
- 美育视域下先秦儒家乐教思想对舞蹈教育的当代价值研究
- 运输企业隐患排查奖惩制度
评论
0/150
提交评论