Open Telecom Platform

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Erlang
DeveloperEricsson
Initial release1998
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inErlang
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    PlatformCross-platform
    TypeProgramming Framework (middleware, libraries, tools, database)
    LicenseApache 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.[1][2]

    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:

    History

    [edit | edit source]

    Early days

    [edit | edit source]

    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.[4] 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.[1] 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:[4]

    • 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:[4]

    • 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:[4]

    OTP Components

    [edit | edit source]

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

    • 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

    [edit | edit source]

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

    • 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

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).[permanent dead link]
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ a b c d B. Däcker (2000) Concurrent Functional Programming for Telecommunications: A Case Study of Technology Introduction
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).