Open Telecom Platform
   HOME

TheInfoList



OR:

OTP is a collection of useful
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
,
libraries A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
, and
tools A tool is an object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many animals use simple tools, only human beings, whose use of stone tools dates ba ...
written in the
Erlang programming language Erlang ( ) is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or Open Telecom Platform (OTP), which consists of the Erlang run ...
. It is an integral part of the
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
distribution of Erlang. The name OTP was originally an acronym for Open Telecom Platform, which was a branding attempt before
Ericsson (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
released Erlang/OTP as open source. However neither Erlang nor OTP is specific to telecom applications. The OTP distribution is supported and maintained by the OTP product unit at
Ericsson (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
, who released Erlang/OTP as
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
in the late 90s, to ensure its independence from a single vendor and to increase awareness of the language. It contains: *an Erlang interpreter (which is called ''
BEAM Beam may refer to: Streams of particles or energy *Light beam, or beam of light, a directional projection of light energy **Laser beam *Particle beam, a stream of charged or neutral particles **Charged particle beam, a spatially localized grou ...
''); *an Erlang
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
; *a protocol for communication between servers (nodes); *a
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
Object Request Broker In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interop ...
; *a static analysis tool called Dialyzer; *a distributed database server (
Mnesia Mnesia is a distributed, soft real-time database management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform. Description As with Erlang, Mnesia was developed by Ericsson for soft real ...
); and *many other libraries.


History


Early days

Originally named Open System, it was started by
Ericsson (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
in late 1995 as a prototype system that aimed to select from a range of appropriate programming technologies and system components, including computers,
languages Language is a structured system of communication. The structure of a language is its grammar and the free components are its vocabulary. Languages are the primary means by which humans communicate, and may be conveyed through a variety of met ...
,
databases In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases spa ...
and management systems, to support a remote access system being developed at Ericsson.B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
/ref> In the same year, following the collapse of another gigantic
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
-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 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 (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in informat ...
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 Mnesia is a distributed, soft real-time database management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform. Description As with Erlang, Mnesia was developed by Ericsson for soft real ...
- 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: * Supervision * Servers * Event handling *
Finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
s


OTP Components

The OTP components can be divided into six categories: * 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: * 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

*
RabbitMQ RabbitMQ is an open-source message-broker software (sometimes called message-oriented middleware) that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Str ...
*
Couchbase Server Couchbase Server, originally known as Membase, is an open-source, distributed (shared-nothing architecture) multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many c ...
*
Riak Riak (pronounced "ree-ack" ) is a distributed NoSQL key-value data store based on Amazon's Dynamo paper, including its "tunable AP" approach, that is tunable consistency, to the tradeoffs imposed by the CAP Theorem. Riak offers high availability, ...


References

{{Reflist Erlang (programming language)