Erlang 104 OTP - incomplete

笔记系列

Erlang环境和顺序编程
Erlang并发编程
Erlang分布式编程
Yaws
Erlang/OTP

日期              变更说明

2014-12-21  A Outline, 1

Agenda

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 行为模式

3 应用

4监督树式容错

5 发布和部署

6 Erlang中的集成

参考文献

[1] Cesarini F., Thompson S.著,慕尼黑Isar工作组 杨剑译.

Erlang编程指南.

北京: 机械工业出版社.2011.

[2] Armstrong J.著,牛化成 译.

Erlang程序设计(2).(Programming Erlang, Second Edition – Software for a Concurrent World).

北京: 人民邮电出版社.2014.

[3] Logan M., Merritt E., Carlsson R.著,连城 译.

Erlang/OTP并发编程实战.(Erlang and OTP in Action).

北京: 人民邮电出版社.2012.

Code: https://github.com/erlware/Erlang-and-OTP-in-Action-Source

时间: 2024-10-17 09:37:39

Erlang 104 OTP - incomplete的相关文章

Erlang / OTP并发编程实战 Erlang程序设计.第2版 PDF分享

图灵官方图书: 完整PDF.文字版.非扫描版,字迹清晰,目录完整.体积小.无任何广告. 获取资源 原文地址:https://www.cnblogs.com/nexts/p/11701009.html

erlang OTP gen_server 图解分析

http://www.hoterran.info/otp-gen_server-sourcecode 在阅读erlang的otp源码gen_server.erl的时候,一直想写点什么,用一种最好的方式表达出来,最终却总是没法表达清楚,困惑之余看到这篇文章,作者用图解的方式,非常清晰明了的表达了我一直想表达的东西,下面是原文链接: http://www.hoterran.info/otp-gen_server-sourcecode 感谢原创作者热心的分享. 阅读OTP源码可以帮助你写出更好.更健壮

为什么我要选择erlang+go进行服务器架构

服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 估计很多同学看到这里都会觉得迷惑,go的大名已经如雷贯耳了,但是erlang?这个东东是神马?难道是编程语言?怎么从来没听说过. 这里请允许我先介绍一下使用Erlang开发的比较有名的应用: 一:whatsapp 只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang--一种诞生于上世纪80年代的编程语言,终于在此时走到了聚光灯下.

Erlang Application

1.OTP应用组织模式 创建OTP应用时的主要工作集中于保准目录结构的建立和应用元数据的编写.元数据的作用在于让系统获悉应该如何启动和停止应用,还可用于指定应用的依赖项,也就是在应用启动前必须安装或启动哪些其它应用. 2.OTP应用布局 <application-name>[-<version>] | | - doc | - ebin | - include | - priv | - src otp应用布局目录.目录名可以包含版本号.标准子目录包括doc.ebin.include.

Erlang 102 Erlang并发编程 - should be done in 2014-11-09

笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明2014-11-02 A outline,1 Agenda 0 范围 Erlang的现实世界建模方式 Erlang进程创建 Erlang进程设计模式 Erlang进程错误处理 1 Erlang Concurrency Modeling Philosophy Armstrong在[2]中跳出程序语言在处理并发应用场景时洋洋洒洒的急迫性.跃跃欲试的一站式

centos 6.5安装erlang和RabbitMQ

一.安装erlang 1.下载erlang源码 git clone https://github.com/erlang/otp.git 2.编译并安装erlang cd otp ./otp_build autoconf ./configure --prefix=/opt/erlang make make install 如果执行./configure报错可能是缺少依赖,使用yum安装依赖再重新./configure sudo yum install unixODBC-devel openssl-

Erlang官方站点

YOUR ERLANG COMMUNITY SITE Welcome to erlangcentral.org, the Erlang community site where you can read news and weblogs related to Erlang/OTP, discuss projects, issues and ideas with other Erlang developers, and read and publish articles and HowTos re

Erlang基础 -- 介绍 -- Erlang特点

前言 Erlang是具有多重范型的编程语言,具有很多特点,主要的特点有以下几个: 函数式 并发性 分布式 健壮性 软实时 热更新 递增式代码加载 动态类型 解释型 函数式 Erlang是函数式编程语言,函数式是一种编程模型,将计算机中的运算看做是数学中的函数计算,可以避免状态以及变量的概念. 对象是面向对象的第一型,函数式编程语言也是一样,函数是函数式编程的第一型.函数是Erlang编程语言的基本单位,在Erlang里,函数是第一型,函数几乎会被用作一切,包括最简单的计算.所有的概念都是由函数表

2014值得期待的Erlang两本新书

在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 <The Erlang Runtime System>,其作者happi在2013年3月份发布了这本书的写作计划:"The plan is to have the book done by the end of 2013 and published early 2014. ",出版方是O'Reilly,依照O'Reilly近一两年的管理,都会有电子版(PDF epub)的版本号,所以我们还是有机