Open Telecom Platform

Last updated
Erlang
Developer(s) Ericsson
Initial release1998
Stable release
26.0.2 [1]   OOjs UI icon edit-ltr-progressive.svg / 29 June 2023;2 months ago (29 June 2023)
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.erlang.org   OOjs UI icon edit-ltr-progressive.svg

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. [2] [3]

Contents

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.

It contains:

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. [5] 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. [2] 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]

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: [5]

The behaviours provide programmers with yet higher abstractions for efficient program design. The early version included: [5]

OTP Components

The OTP components can be divided into six categories: [6]

Applications in OTP

As of OTP 18.2, the following applications are included in the Erlang/OTP distribution: [7]

See also

Related Research Articles

<span class="mw-page-title-main">Erlang (programming language)</span> Programming language

Erlang is a general-purpose, concurrent, functional high-level 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 runtime system, several ready-to-use components (OTP) mainly written in Erlang, and a set of design principles for Erlang programs.

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space, which is written as if it were a normal (local) procedure call, without the programmer explicitly writing the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. This is a form of client–server interaction, typically implemented via a request–response message-passing system. In the object-oriented programming paradigm, RPCs are represented by remote method invocation (RMI). The RPC model implies a level of location transparency, namely that calling procedures are largely the same whether they are local or remote, but usually, they are not identical, so local calls can be distinguished from remote calls. Remote calls are usually orders of magnitude slower and less reliable than local calls, so distinguishing them is important.

Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).

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 systems on different operating systems, programming languages, and computing hardware. CORBA uses an object-oriented model although the systems that use the CORBA do not have to be object-oriented. CORBA is an example of the distributed object paradigm.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

In distributed computing, an object request broker (ORB) is a concept of 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 interoperability of distributed object systems, enabling such systems to be built by piecing together objects from different vendors, while different parts communicate with each other via the ORB. Common Object Request Broker Architecture standartizes the way ORB may be implemented.

Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

ejabberd Server software

ejabberd is an Extensible Messaging and Presence Protocol (XMPP) application server and an MQ Telemetry Transport (MQTT) broker, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as macOS, Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows. The name ejabberd stands for Erlang Jabber Daemon and is written in lowercase only, as is common for daemon software.

Distributed Objects Everywhere (DOE) was a long-running Sun Microsystems project to build a distributed computing environment based on the CORBA system in the 'back end' and OpenStep as the user interface. First started in 1990 and announced soon thereafter, it remained vaporware for many years before it was finally released as NEO in 1995. It was sold for only a short period before being dropped in 1996. In its place is what is today known as Enterprise JavaBeans.

Inter-Language Unification or ILU is a method for computer systems to exchange data, bridging differences in the way systems represent the various kinds of data. Even if two systems run on the same computer, or on identical computer hardware, many differences arise from the use of different computer languages to build the systems.

RMI-IIOP denotes the Java Remote Method Invocation (RMI) interface over the Internet Inter-Orb Protocol (IIOP), which delivers Common Object Request Broker Architecture (CORBA) distributed computing capabilities to the Java platform. It was initially based on two specifications: the Java Language Mapping to OMG IDL, and CORBA/IIOP 2.3.1.

<span class="mw-page-title-main">Mnesia</span>

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.

<span class="mw-page-title-main">Yaws (web server)</span> HTTP web server software

Yaws is a web server written in Erlang by Claes (klacke) Wikström. Yaws can be embedded into other Erlang-based applications or run as a regular standalone web server.

<span class="mw-page-title-main">LYME (software bundle)</span>

LYME and LYCE are software stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of:

<span class="mw-page-title-main">OpenRTM-aist</span>

OpenRTM-aist is a software platform developed on the basis of the RT middleware standard. OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology which also contributes to definition of the RT-middleware standard.

An Internet operating system, or Internet OS, is any type of operating system designed to run all of its applications and services through an Internet client, generally a web browser. The advantages of such an OS would be that it would run on a thin client, allowing cheaper, more easily manageable computer systems; it would require all applications to be designed on cross-platform, open standards; and would not tie a user's applications, documents, and preferences to a single computer, but rather place them in the Internet cloud. The Internet OS has also been promoted as the perfect type of platform for software as a service.

Elixir is a functional, concurrent, high-level general-purpose programming language that runs on the BEAM virtual machine, which is also used to implement the Erlang programming language. Elixir builds on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Elixir also provides tooling and an extensible design. The latter is supported by compile-time metaprogramming with macros and polymorphism via protocols.

<span class="mw-page-title-main">LFE (programming language)</span>

Lisp Flavored Erlang (LFE) is a functional, concurrent, garbage collected, general-purpose programming language and Lisp dialect built on Core Erlang and the Erlang virtual machine (BEAM). LFE builds on Erlang to provide a Lisp syntax for writing distributed, fault-tolerant, soft real-time, non-stop applications. LFE also extends Erlang to support metaprogramming with Lisp macros and an improved developer experience with a feature-rich read–eval–print loop (REPL). LFE is actively supported on all recent releases of Erlang; the oldest version of Erlang supported is R14.

<span class="mw-page-title-main">Enterprise Architect (software)</span> Visual modeling and design tool

Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.

BEAM is the virtual machine at the core of the Erlang Open Telecom Platform (OTP). BEAM is part of the Erlang Run-Time System (ERTS), which compiles Erlang source code into bytecode, which is then executed on the BEAM. BEAM bytecode files have the .beam file extension.

References

  1. "Release 26.0.2". 29 June 2023. Retrieved 1 July 2023.
  2. 1 2 "M. Logan, E. Merritt, and R. Carlsson (2010) Erlang and OTP in Action" (PDF).
  3. Erlang Solutions (1 March 2013). "OTP, the Middleware for Concurrent Distributed Scalable Architectures". Archived from the original on 2021-12-20 via YouTube.
  4. "Erlang -- Compilation and Code Loading". erlang.org. Retrieved 2017-12-21.
  5. 1 2 3 4 B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
  6. "Erlang -- Introduction". erlang.org.
  7. "Erlang Programming Language". www.erlang.org.