摘要: 参考资料http://erlang.shiningray.cn/otp-design-principles/index.html标准 Erlang/OTP 行为有:gen_server用于实现 C/S 结构中的服务端。gen_fsm用于实现有限状态机。gen_event用于实现事件处理功能。supe... 阅读全文
posted @ 2014-09-27 12:29 余健 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 本章包含了对于典型的运行时升级/降级案例的.appup文件的范例。变更功能模块当要对一个功能模块进行变更时,例如如果添加了一个新的函数或者更正了一个错误,使用简单代码替换就足够了。例如:{"2", [{"1", [{load_module, m}]}], [{"1", [{load_module, ... 阅读全文
posted @ 2014-09-27 12:28 余健 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 发布处理原理Erlang编程语言的一个很重要的特点是能在运行时变更模块代码,即Erlang参考手册中所描述的代码替换。基于这个功能,OTP应用SASL提供了一个用于在运行时对整个发布的不同版本之间进行升级和降级的框架。这就是我们称之为发布处理的东西。该框架由用于生成脚本和构建发布包的离线支持工具(s... 阅读全文
posted @ 2014-09-27 12:27 余健 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 本章应该与rel(4),systools(3)和script(4)。发布的概念当我们已经写了一个或多个应用后,我们可能想创建一个由这些应用和Erlang/OTP应用的一个子集组成的完整系统。要实现这个目的,我们通过创建一个定义在发布中要包含哪些应用的发布资源文件。该发布资源文件是用于生成启动脚本和发... 阅读全文
posted @ 2014-09-27 12:24 余健 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 定义在一个包含了若干Erlang节点的分布式系统中,可能需要以分布的方法来控制应用。如果某个节点——上面运行了某个应用——挂了,应用要在另一个节点上被重启。这样一个应用被称之为一个分布式应用。注意是对于应用的控制是分布的,所有应用当然都可以是分布——比如,使用其它节点上的服务。因为一个分布式应用可能... 阅读全文
posted @ 2014-09-27 12:23 余健 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 定义一个应用可以包含其他应用。一个被包含的应用有它自己的应用目录和.app文件,但是它是作为另一个应用的监督树的一部分被启动的。一个应用只能被一个其他的应用所包含。一个被包含的应用也可以包含其他应用。一个不被任何其他应用所包含的应用被称之为主应用。应用控制器在加载一个主应用的时候会自动加载任何被包含... 阅读全文
posted @ 2014-09-27 12:22 余健 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 本章应与app(4)和application(3)。应用的概念当我们写了实现特定功能的代码之后,我们可能想将代码转成一个应用(application),这是可以作为一个单元启动和停止的组建,同时它也可以在其他系统中被重用。我们要创建一个应用回调模块,其中描述了该应用应该如何被启动和停止。然后,需要一... 阅读全文
posted @ 2014-09-27 12:21 余健 阅读(244) 评论(0) 推荐(0) 编辑
摘要: sys模块包含了简单调试用行为实现的进程的函数。还有一些函数——要结合模块proc_lib中的函数——可以用于实现一种特殊进程,遵照OTP设计原则但不使用标准行为。它们也可以用于实现用户自定义的(非标准)行为。sys和proc_lib都属于 STDLIB应用。简单调试sys模块包含了简单调试用行为实... 阅读全文
posted @ 2014-09-27 12:20 余健 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 本节应该与supervisor(3)相结合阅读,其中有所有的督程行为的细节。监督原理督程负责启动、停止和监视它的子进程。督程的基本思想是它要保持它的子进程有效,必要的时候可以重启他们。要启动和监视的子进程由一个子进程规格的列表来指定。子进程按照在这个列表中的顺序启动,并且按照相反的顺序终止。例子启动... 阅读全文
posted @ 2014-09-27 12:19 余健 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 本章应和gen_event(3)相结合阅读,它包含了所有接口函数和回调函数的详细说明。事件处理原理在OTP中,事件管理器(事件管理器)是一个命名对象,可以给其发送事件。一个事件(event)可以是诸如一个错误、一个警报或者是某种应被记录的信息。在事件管理器中,可以安装零个、一个或者多个事件处理器(事... 阅读全文
posted @ 2014-09-27 12:18 余健 阅读(172) 评论(0) 推荐(0) 编辑