Open Telecom Platform

{{Short description|Middleware and tools written in Erlang}}

{{Infobox software

| name = Erlang

| logo = Erlang logo.png

| logo size = 100px

| screenshot =

| caption =

| developer = Ericsson

| released = 1998

| latest release version = {{wikidata|property|edit|reference|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}

| operating system = Cross-platform

| platform = Cross-platform

| language =

| programming language = Erlang

| genre = Programming Framework (middleware, libraries, tools, database)

| license =

Apache License 2.0 (since OTP 18.0)

Erlang Public License 1.1 (earlier releases)

}}

OTP is a collection of useful middleware, libraries, and tools written in the Erlang programming language. It is an integral part of the open-source distribution of Erlang. The name OTP was originally an acronym for Open Telecom Platform, which was a branding attempt before Ericsson released Erlang/OTP as open source. However neither Erlang nor OTP is specific to telecom applications.{{cite web|url=https://synrc.com/publications/cat/Functional%20Languages/Erlang/M.%20Logan,%20E.%20Merritt,%20R.%20Carlsson.%20Erlang%20OTP%20in%20Action.pdf|title=M. Logan, E. Merritt, and R. Carlsson (2010) Erlang and OTP in Action|publisher=}}{{cite web|url=https://www.youtube.com/watch?v=_NpQ414ePwE |archive-url=https://ghostarchive.org/varchive/youtube/20211220/_NpQ414ePwE |archive-date=2021-12-20 |url-status=live|title=OTP, the Middleware for Concurrent Distributed Scalable Architectures|last=Erlang Solutions|date=1 March 2013|publisher=|via=YouTube}}{{cbignore}}

The OTP distribution is supported and maintained by the OTP product unit at Ericsson, who released Erlang/OTP as open-source in the late 1990s, to ensure its independence from a single vendor and to increase awareness of the language.

It contains:

  • an Erlang interpreter (which is called BEAM);{{Cite web|url=http://erlang.org/doc/reference_manual/code_loading.html#id90080|title=Erlang -- Compilation and Code Loading|website=erlang.org|access-date=2017-12-21}}
  • 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.[http://www.erlang.se/publications/bjarnelic.ps B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction] 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. The result was the highly successful AXD301 system, a new ATM switch, announced in 1998. Open 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:

  • 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:

  • 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:

OTP Components

The OTP components can be divided into six categories:{{cite web|url=http://erlang.org/doc/system_architecture_intro/sys_arch_intro.html|title=Erlang -- Introduction|website=erlang.org}}

  • Basic Applications - Basic Erlang/OTP functionality.
  • Compiler - A compiler for Erlang modules.
  • Kernel - Functionality necessary to run Erlang/OTP itself.
  • SASL (System Architecture Support Libraries) - A set of tools for code replacement and alarm handling etc.
  • Stdlib - The standard library.
  • Operations and Maintenance - OAM both of the system developed by the user and of Erlang/OTP itself.
  • EVA - A multi-featured event and alarm handler.
  • OS_Mon - A monitor which allows inspection of the underlying operating system.
  • SNMP - SNMP support including a MIB compiler and tools for creating SNMP agents.
  • Interface and Communication - Interoperability and protocols support.
  • Asn1 - Support for ASN.1.
  • Comet - A library that enables Erlang/OTP to call COM objects on windows
  • Crypto - Cryptographical support
  • Erl_Interface - Low level interface to C.
  • GS - A graphics system used to write platform independent user interfaces.
  • Inets - A set of services such as a web server and a FTP client.
  • Jinterface - Low level interface to Java.
  • SSL - Secure Socket Layer (SSL), interface to UNIX BSD sockets
  • Database Management.
  • QLC - Query language support for Mnesia DBMS.
  • Mnesia - A heavy duty real-time distributed database.
  • ODBC - ODBC database interface.
  • CORBA services and IDL compiler.
  • cosEvent - Orber OMG Event Service.
  • cosNotification - Orber OMG Notification Service.
  • cosTime - Orber OMG Timer and TimerEvent Services.
  • cosTransactions - Orber OMG Transaction Service.
  • IC - IDL compiler
  • Orber - A CORBA object request broker.
  • Tools.
  • Appmon - A utility used to view OTP applications.
  • Debugger - For debugging and testing of Erlang programs.
  • Parsetools - A set of parsing and lexical analysis tools.
  • Pman - A process manager used to inspect the state of an Erlang/OTP system.
  • Runtime_Tools - Tools to include in a production system.
  • Toolbar - A tool bar simplifying access to the Erlang/OTP tools.
  • Tools - A set of programming tools including a coverage analyzer etc.
  • TV - An ETS and Mnesia graphical table visualizer.

=Applications in OTP=

As of OTP 18.2, the following applications are included in the Erlang/OTP distribution:{{cite web|url=http://www.erlang.org/download.html|title=Erlang Programming Language|website=www.erlang.org}}

  • 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

See also

References