OTP Express
Target Audience: This course is aimed at experienced Erlang Software Developers and Designers who need to understand Behaviours.
Prerequisites: Existing experience using Sequential and Concurrent Programming with Erlang on projects.
Objectives:
• Use existing Design Patterns supported by Erlang and OTP.
• Apply Generic Behaviours, Finite State Machines and Event handler Patterns.
• Use the Supervisor and Application Behaviours Patterns.
• Write your own Design Patterns.
• Structure large Erlang based systems.
Goal: Design fault-tolerant systems.
Duration: Three days
Registration: 08:30 on 26 March 2012.
Venue: Marines' Memorial Club and Hotel in Union Square.
Description:
You will learn the prevailing Erlang Design Patterns called OTP
Behaviours. We will cover Erlang Design Patterns such as Generic
Behaviours, Finite State Machines and Event Handlers. You will also
learn how to develop systems using the Supervisor and Application
Behaviours Patterns, so you can construct maintainable and fault
tolerant software. Upon completion of this course, you will be able to
extend it all, by devising your very own Behaviours.
Course Contents:
- Introduction
- Records and Funs
- Behaviours
- Generic Servers
- Finite State Machines
- Supervisors
- Event Handlers
- Applications
- Special Processes
- System Principles
- System Architecture Support Library
This section introduces the need and advantages of using middleware in the developmentof massively concurrent, distributed, fault tolerant real time systems in Erlang. It looks at Erlang's evolution, and how it helped form OTP. Further this gives an overview of the components that make up OTP. They are Erlang, a set of behaviours, and rules and design principles to use them. OTP comes with many ready built applications and tools useful for large scale software design. They are introduced in this section.
Records and Funs
Records and funs are used extensively within OTP and a refresher of the concepts and use is provided in this section.
Behaviours
Erlang processes display similar properties. In the Open Telecom platforms, these properties have been abstracted in a group of generic library modules, also called OTP behaviours. This section introduces the concept of behaviours, and through examples of abstraction, shows their need and advantages.
Generic Servers
Generic servers implement the Client-Server behaviours in OTP. This section introduces the most commonly used behaviour in Erlang based applications.
Finite State Machines
The finite state machines behaviour in Erlang is used to implement state transitions in processes based on incoming events. This behaviour is commonly used when implementing protocol stacks.
Supervisors
Supervisors are a behaviour whose only task is to start other Erlang behaviours and monitor them for abnormal termination. This is a vital section in understanding start and restart strategies in Erlang.
Event Handlers
Erlang has ready built event managers. Event handlers are behaviours who subscribe to events sent to specific managers, allowing several actions to take place based on one single event. Event handlers can be changed on the fly, as well as added or deleted from a specific manager.
Applications
This section introduces the application behaviour, used for packaging Erlang resources. Resources can vary from libraries to process clusters, and can be configured to run on a single processor or be distributed on a set of nodes.
Special Processes
There will be times where we want to implement our own behaviours, or for efficiency reason, use simple Erlang processes. This section looks behind the scenes on how behaviours are implemented, and explains how to implement your own.
System_Principles
The System Principles section describes how Erlang applications are coupled together in a release and started as a whole. Sections include creating release files, bundling up the software including the virtual machine, and running Erlang on target and embedded hosts.
System Architecture Support Library
The System Architecture Support Library was used in the first release of OTP to package tools needed for large scale software design. This section covers error logging, the report browser, alarm handler and overload module.
Teacher(s):
Simon Thompson
Simon Thompson is Professor of Logic and Computation in the School of Computing of the University of Kent, where he has taught computing at undergraduate and postgraduate levels for the past twenty eight years, and where he was formerly department head for seven years and is currently Director of Research and Enterprise.
His research work has centered on functional programming: program verification, type systems, and most recently development of software tools for functional programming languages. His team has built the Wrangler tool for refactoring Erlang programs, as well as performing clone detection and allowing users to extend the tool with their own refactorings. His research has been funded by various agencies including EPSRC and the European Framework programme. His training is as a mathematician: he has an MA in Mathematics from Cambridge and a D.Phil. in mathematical logic from Oxford.
He has written four books in his field of interest; Type Theory and Functional Programming published in 1991; Miranda: The Craft of Functional Programming (1995), Haskell: The Craft of Functional Programming (3rd ed. 2011) and Erlang Programming (with Francesco Cesarini, 2009). Apart from the last, which is published by O'Reilly, these are all published by Addison Wesley.
Francesco Cesarini
Francesco Cesarini is the founder of Erlang Solutions Ltd. He has used Erlang on a daily basis since 1995, starting as an intern at Ericsson’s computer science laboratory, the birthplace of Erlang. He moved on to Ericsson’s Erlang training and consulting arm working on the first release of OTP, applying it to turnkey solutions and flagship telecom applications. In 1999, soon after Erlang was released as open source, he founded Erlang Solutions, who have become the world leaders in Erlang based consulting, contracting, training and systems development. Francesco has worked in major Erlang based projects both within and outside Ericsson, and as Technical Director, has led the development and consulting teams at Erlang Solutions. He is also the co-author of Erlang Programming, a book recently published by O’Reilly and lectures at Oxford University and the IT University of Gothenburg.
Erlang Programming on Amazon
Twitter: @FrancescoC