Ericsson AB    
· Home
· Licensees Area
For comments or questions about this site, contact us.

OTP Programming (4 days)

This course gives an introduction to the Open Telecom Platform. It focuses on using OTP design patterns (behaviours) when implementing an OTP application.


After the course, the participants should
  • be able to implement an OTP application
  • have knowledge of the OTP design principles
  • have knowledge of the OTP components

Who should attend

Programmers who will be implementing OTP applications.


Basic- and Continued Erlang courses, or the corresponding knowledge.
At least a few months experience of Erlang programming.
Try out the diagnostic test.

Course Dates

See current course schedule.


See current price list.

OTP Programming, day-to-day agenda

Day 1

  • Introduction
  • Overview
    • System architecture
    • Design principles
    • Components
  • Behaviours
    • What is a behaviour?
    • OTP behaviours
    • The sys module
  • Behaviours: Servers
    • What is a server?
    • A server example
    • Generic and specific parts
    • Implementing a server
    • Server example using gen_server
    • Termination
    • More about servers

Day 2

  • Behaviours: Finite state machines
    • What is a finite state machine?
    • Generic and specific parts
    • Implementing a state machine
    • A state machine example
    • More about state machines
  • Behaviours: Supervisors
    • What is a supervisor?
    • Generic and specific parts
    • Implementing a supervisor
    • A supervisor example
    • Dynamic child processes
    • Supervisor bridge
    • C code and supervision

Day 3

  • Behaviours: Events
    • What is an event?
    • Event handling in OTP
    • Generic and specific parts
    • Implementing event handling
    • Example
    • More about event handling
    • alarm_handler
  • Behaviours: Applications
    • What is an application?
    • Application controller
    • Application resource file
    • Implementing an application
    • Configuration parameters
    • Application directory
    • Distributed applications
  • Behaviours: Special processes
    • What is a special process?
    • proc_lib module
    • sys module
    • Example

Day 4

  • System configuration
    • Command line parameters
    • Boot files
    • Configuration files
    • System structure
    • Release handling
  • An introduction to Mnesia
    • Characteristics
    • Tables
    • Transactions
    • Dirty functions
    • Queries
    • Administration

OTP Programming, diagnostic test


  • Do you know how to write an Erlang server?
  • Do you feel comfortable with Erlang process links?
  • Can you write Erlang programs without constantly consulting the manuals?
  • Can you define a fun?
  • Can you use list comprehensions?
  • Have you used an RDBMS?

Updated: 2000-03-29