logo

您所在位置网站首页 > 海量文档  > 电子工程/通信技术 > 光网络传输

《Erlang OTP》.docx 12页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
Erlang OTP 文档版本跟踪日期变更说明备注2014-12-21A outline, 1说明:A(新增)、M(修改)、D(删除) 0 Scope 围绕OTP设计原则,分别记录行为模式、监督树概念、应用、发布和部署,以及[3]中一个产品级缓存解决方案。 1 OTP Design Principles Erlang Doc: OTP Design Principles User's Guide OTP设计原则阐述的是如何以进程、模块和目录组织Erlang代码。 1.1 监督树(Supervision Trees) Erlang/OTP中监督树是一种进程组织模型,该模型的两个核心实体是:工作者(worker)和监督者(supervisor)。 工作者:执行计算类实际工作的进程; 监督者:监督工作者行为的进程,发生异常时可以重启工作者; 监督树:将代码按照工作者和监督者组织成层次结构,借此试图设计和实现高容错性的软件。 下面是一个监督树示例,正方形表示监督者,圆形表示工作者。 1.2 行为模式(Behaviours) 在监督树中,很多进程有着类似的结构,正式的说,它们的行为遵循类似的模式。例如,监督者之间的区别可能只是它们负责监督的工作者不同,工作者则表现出类似于server/client、有限状态机(finite state machine)或事件处理器(event handler)的基本行为。 Erlang/OTP给出的方案是将进程的代码分为两部分:一部分是通用的(由行为模块负责实现),另一部分是各进程的特殊处理部分(由回调(callback)模块负责实现)。 行为模块隶属于Erlang/OTP。标准的Erlang/OTP行为包括: gen_server 实现server/client中的server gen_fsm 实现有限状态机 gen_event 实现事件处理功能 supervisor 实现监督树中监督者 要实现监督者模式,只需要实现监督者行为模块导出的预先定义的一系列回调函数。有点类似于template method设计模式啊,更重要的是,Erlang/OTP负责管理诸如监督者进程与工作者进程通信、交互等复杂而枯燥的功能的代码实现、调试、产品级优化等等“脏活儿”,而我们只需要开开信息的关注于业务级的实现细节。 1.3 应用(Applications) 实现一些特定功能的组件在Erlang/OTP的词汇中被称为应用(applicaiton)。例如Mnesia、Debugger等。最小的Erlang/OTP系统由Kernel和STDLIB应用构成。 应用的概念适用于程序结构(进程)和目录结构(模块)。 最简单的一类应用不含任何进程,仅由函数模块构成,这类应用称为库应用(library application),例如STDLIB。 涉及进程的应用可以通过使用标准行为的监督树实现。 1.4 发布(Releases) 发布(release)是一个完整的系统,系统中包含Erlang/OTP应用和用户特定的应用。 如何在目标环境(target environment)中安装发布在系统原则的目标系统一节中阐述(见 Erlang Doc: System Principles User's Guide)。 1.5 发布处理(Release Handling) 发布处理的含义是在运行系统中如何在不同发布版本中升级/降级。 2 行为模式 如1.2节中所述,Erlang/OTP将通用的处理与随应用逻辑而变的特殊处理分开,提供产品级质量的通用处理实现,让用户专注于应用逻辑的处理。这些特殊的处理被纳入回调模块这个概念中,回调(callback)有着丰富的涵义,粗略的讲,回调是一段在基础设施/框架中预期会执行的代码,基础设施用户可以指定自定义的回调函数,但关于回调何时执行、在什么地方执行一般没有充分的控制权。 行为模式概念解析 [3]中指出,行为模式的涵义包括: (1) 行为模式接口(interface) 一组特定的函数和相关的调用规范(契约)。 (2) 行为模式实现(implementation) 导出了接口所需的全部函数的回调模块; 实现模块应该包含属性-behaviour(…).,编译器依据该属性检查模块是否导出了行为接口所需的所有函数。 (3) 行为模式容器(container) 容器是一个进程,执行的是库模块中的代码,会调用与行为模式实现相对应的回调模块来

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

“原创力文档”前称为“文档投稿赚钱网”,本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。原创力文档是网络服务平台方,若您的权利被侵害,侵权客服QQ:3005833200 电话:19940600175 欢迎举报,上传者QQ群:784321556