Open Telecom Platform
![]() | |
Developer(s) | Ericsson |
---|---|
Initial release | 1998 |
Stable release | 18.2
/ December 16, 2015 |
Repository | |
Written in | Erlang |
Operating system | Cross-platform |
Platform | Cross-platform |
Type | Programming Framework (middleware, libraries, tools, database) |
License | Apache License 2.0 (since OTP 18.0) Erlang Public License 1.1 (earlier releases) |
Website | www |
OTP is an integral part of the open source distribution of Erlang programming language. It is a collection of useful middleware, libraries and tools written in Erlang. The OTP distribution is supported and maintained by the OTP product unit at Ericsson, who released Erlang/OTP as open source in the late 90s, to ensure its independence from a single vendor and to increase awareness of the language.
The name OTP was originally an acronym for Open Telecom Platform, which was a branding attempt from the time before Erlang went open source. However neither Erlang nor OTP is specific to telecom applications.[1][2]
It contains:
- an Erlang interpreter;
- an Erlang compiler;
- a protocol for communication between servers (nodes);
- a Corba Object Request Broker;
- a static analysis tool called Dialyzer;
- a distributed database server (Mnesia); and
- many other libraries.
History
Early days
Originally named Open System, it was started by Ericsson in late 1995 as a prototype system that aimed to select from a range of appropriate programming technologies and system components, including computers, languages, databases and management systems, to support a remote access system being developed at Ericsson.[3] In the same year, following the collapse of another gigantic C++-based project, Open System was ordered to provide support when it restarted from scratch using Erlang.[4] The result was the highly successful AXD301 system, a new ATM switch, announced in 1998. Open System system was later named Open Telecom Platform (OTP) when the first prototype was delivered in May 1996. OTP has also become a specific product unit within Ericsson since then, providing management, support and further development.
The early OTP system components in 1998:[5]
- Distributed application management
- SASL - error logging, release handling
- OS resource monitoring
- EVA - protocol independent event/alarm handling
- Mnesia - real-time active data replication
- SNMP - operations and maintenance interface
- INETS - simple HTTP support
A key subsystem in OTP is the System Architecture Support Libraries (SASL), which gave a framework for writing applications. The early version of SASL provided:[6]
- Start-up scripts
- An application concept
- Behaviours (design patterns)
- Error handling
- Debugging
- High-level software upgrade in runtime without shutdown
The behaviours provide programmers with yet higher abstractions for efficient program design. The early version included:[7]
- Supervision
- Servers
- Event handling
- Finite State Machines
OTP applications
As of OTP 18.2, the following applications are included in the Erlang/OTP distribution:[8]
- asn1
- common_test
- compiler
- cosEvent
- cosEventDomain
- cosFileTransfer
- cosNotification
- cosProperty
- cosTime
- cosTransactions
- crypto
- debugger
- dialyzer
- diameter
- edoc
- eldap
- erl_docgen
- erl_interface
- erts
- et
- eunit
- gs
- hipe
- ic
- inets
Usage
Since it was released as open source in 1998, Erlang has been used by several companies worldwide, including Nortel and T-Mobile.[9] Although Erlang was designed to fill a niche and has remained an obscure language for most of its existence, its popularity is growing due to demand for concurrent services.[10][11]
Projects using Erlang include ejabberd - an XMPP instant messaging server, Wings 3D - a 3D modeller, the Yaws web server, Yahoo! Delicious,[12] the Facebook Chat system,[13] Couchbase Server, BigCouch and the Flussonic and Erlyvideo videostreaming servers.[14]
See also
External links
References
- ^ M. Logan, E. Merritt, and R. Carlsson (2010) Erlang and OTP in Action
- ^ OTP, the Middleware for Concurrent Distributed Scalable Architectures - Youtube
- ^ B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
- ^ M. Logan, E. Merritt, and R. Carlsson (2010) Erlang and OTP in Action
- ^ B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
- ^ B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
- ^ B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
- ^ http://www.erlang.org/download.html
- ^ "Who uses Erlang for product development?". Frequently asked questions about Erlang. Retrieved 2012-04-18.
The largest user of Erlang is (surprise!) Ericsson. Ericsson use it to write software used in telecommunications systems. Many (dozens) projects have used it, a particularly large one is the extremely scalable AXD301 ATM switch. Other commercial users listed as part of the FAQ include: Nortel, Deutsche Flugsicherung (the German national air traffic control organisation), and T-Mobile.
- ^ "Programming Erlang". Retrieved 2012-04-18.
Virtually all language use shared state concurrency. This is very difficult and leads to terrible problems when you handle failure and scale up the system...Some pretty fast-moving startups in the financial world have latched onto Erlang; for example, the Swedish www.kreditor.se.
- ^ "Erlang, the next Java". Retrieved 2008-10-08.
I do not believe that other languages can catch up with Erlang anytime soon. It will be easy for them to add language features to be like Erlang. It will take a long time for them to build such a high-quality VM and the mature libraries for concurrency and reliability. So, Erlang is poised for success. If you want to build a multicore application in the next few years, you should look at Erlang.
- ^ http://blog.socklabs.com/2008/09/erlang_is_delicious_cufp_slide
- ^ Facebook Chat (Facebook Engineering's notes)
- ^ Flussonic and Erlyvideo videostreaming servers