《Erlang OTP》.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Erlang OTP》.docx

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) 容器是一个进程,执行的是库模块中的代码,会调用与行为模式实现相对应的回调模块来

文档评论(0)

wfkm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档