简单介绍 OTP (Open Telecom Platform)
OTP 是包装在Erlang中的一组库程序。OTP构成Erlang的行为机制(behaviours),用于编写服务器、有限状态机、事件管理器。不仅如此,OTP的应用行为(the application behavior)允许程序员把写好的Erlang代码打包成一个单独的应用程序;
监测行为(the supervisor behavior )允许程序员创建有层次结构的进程,使得某个进程死后,会重新启动复活。
学习Erlang/OTP的理由
OTP给了你大量通用的库程序,用以轻松创建具有高度容错、热机换码等功能的高质高效的程序。你至少可以免费享受以下好处:
●通用服务器、有限状态机、事件管理器;
●标准化应用程序结构;
●代码热机更换;
●监测树行为机制,让你的进程永不停摆。
除此之外,OTP也是在Erlang之上构建系统平台的标准方式。
大名鼎鼎的Erlang应用,如ejabberd, CouchDB, 和 MochiWeb 等,都是用OTP做的。
因此,通过学习OTP,你不仅可以掌握搭建Erlang系统平台的知识和能力,并且让你能轻松跃入其他开源项目,加以学习,因为它们的总体结构如出一辙。
如果你掌握了Erlang的一般语法,就可以开始学习 Erlang/OTP。
OTP的行为机制 gen_*
● gen_server - 用以创建通用服务器,向多个客户端提供服务;
● gen_fsm - 用以创建有限状态机。我用它搭建了 socket 5 代理服务器,它有以下状态:wait_for_init, wait_for_auth, ready, 以及由不同验证类别产生的其他中间状态。有限状态机还有其他许多用途,这也是我特别喜欢的OTP行为机制;
● gen_event - 用以创建事件处理器和发报器。它最常用于运行错误日志(也是发报器),许多对象(终端、文件等)可与之关联。
监测器行为机制
监测器用于监测、描述其子进程。多个监测器用于创建分层监测机制,让你的进程永不停摆。
需要监测器详细介绍的,可阅读Erlang相关文档。
应用器行为机制
应用器用于启动和停止多个监测器和其他独立单元的进程。例如,在创建socket 5 服务器之后,
我将其置于一个应用程序中,并键入:application:start(socks5_server). 将其启动。
需要应用器详细介绍的,可阅读Erlang相关文档。