Erlang is a general-purpose programming language with built-in support for concurrency, distribution and fault tolerance.
OTP (Open Telecom Platform) is aimed at providing time-saving and flexible development for robust, adaptable telecom systems. It consists of an Erlang runtime system, a number of ready-to-use components mainly written in Erlang, and a set of design principles for Erlang programs. Since Erlang and OTP are closely interconnected the term Erlang/OTP is normally used instead of OTP.
The Erlang runtime system (ERTS) is made up of an emulator running on top of the host operating system, a kernel providing low-level services such as distribution and I/O handling, and a standard library containing a large number of re-usable modules.
The OTP design principles provides the user with a way to structure the system based on a concept called application. An OTP application is a way to package a system component and is either a set of library modules or a supervision tree. A supervision tree is a hierarchical tree of processes used to program fault-tolerant systems. The processes are easiest implemented using behavior modules which are formalizations of design patterns. The standard library includes behavior modules for supervisors, servers, state machines and generic event handlers. In chapter 4 "OTP Design Principles" the design principles are explained in detail.
The OTP components can be divided into six categories:
Basic Applications - Basic Erlang/OTP functionality.
Operations and Maintenance - OAM both of the system developed by the user and of Erlang/OTP itself.
Interface and Communication - Interoperability and protocols support.
Database Management.
CORBA services and IDL compiler.
Tools.
This documentation describes the Erlang runtime system, the OTP applications and the OTP design principles. It assumes that the reader is familiar with the Erlang programming language and does not explain how to program in Erlang. The language is described in Concurrent Programming in Erlang, 2nd Edition, ISBN 0-13-508301-X.
The documentation is divided into eight parts. This book, Erlang 5.1/OTP R8 System Documentation, EN/LZT 108 4095 R2, is the starting point of the documentation and contains information about the Erlang programming language and runtime system, the OTP design principles, and how to install and configure Erlang/OTP.
The following typographical conventions are used in the documentation.