Erlang's original domain: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Torben Hoffmann
(New page: The original domain for Erlang was telecoms switching systems. The nature of the original domain is presented here since it describes the kind of problems that Erlang is well suited for. ...)
 
mNo edit summary
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The original domain for Erlang was telecoms switching systems. The nature of the original domain is presented here since it describes the kind of problems that Erlang is well suited for.
{{subpages}}
 
{{dambigbox|Erlang's original domain|Erlang}}
The original domain for Erlang was [[circuit switching]] systems in the [[Public Switched Telephone Network]]. The nature of the original domain is presented here since it describes the kind of problems that Erlang is well suited for.
{{main|Erlang programming language}}
=Däcker's 10 requirements=
=Däcker's 10 requirements=


In Bjarne Dacker's licentiate thesis <ref name=BjarneDis>http://www.erlang.se/publications/bjarnelic.pdf Bjarne Däcker's licentiate thesis </ref> a list of the 10 key requirements for programming telecoms switching systems.
In Bjarne Dacker's licentiate thesis <ref name=BjarneDis>http://www.erlang.se/publications/bjarnelic.pdf Bjarne Däcker's licentiate thesis </ref> a list of the 10 key requirements for programming telephone circuit switches.


# Handling of a very large number of concurrent activities
# Handling of a very large number of concurrent activities
Line 12: Line 14:
# Complex functionality such as feature interaction
# Complex functionality such as feature interaction
# Continuous operation for many years
# Continuous operation for many years
# Software maintenance (recon�figuration et cetera) without stopping the system
# Software maintenance (reconfiguration et cetera) without stopping the system
# Stringent quality and reliability requirements
# Stringent quality and reliability requirements
# Fault tolerance both to hardware failures and software errors
# Fault tolerance both to hardware failures and software errors


Erlang was specifically designed to make it easier to implement telecoms switching systems, but the requirements are also true for a number of other domains such as web servers<ref>http://yaws.hyber.org/ The Yaws web server written in Erlang</ref>, instant messaging<ref>http://www.ejabberd.im/ Instant messaging server ejabbered is written in Erlang</ref> and enterprise messaging<ref>http://www.rabbitmq.com/ The AMQP implementation RabbitMQ is written in Erlang.</ref>.
Erlang was specifically designed to make it easier to implement telecoms switching systems, but the requirements are also true for a number of other domains such as [[web server]]s<ref>http://yaws.hyber.org/ The Yaws web server written in Erlang</ref>, instant messaging<ref>http://www.ejabberd.im/ Instant messaging server <code>ejabbered</code> is written in Erlang</ref> and enterprise messaging<ref>http://www.rabbitmq.com/ The AMQP implementation RabbitMQ is written in Erlang.</ref>.


In Joe Armstrong's dissertation <ref Name=ArmDis>[http://www.erlang.org/download/armstrong_thesis_2003.pdf Armstrong Dissertation]</ref> there is an elaboration of the rationale for these requirements in section 2.2.


=References=
=References=
<references>
<references/>[[Category:Suggestion Bot Tag]]

Latest revision as of 12:00, 13 August 2024

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.
This article is about Erlang's original domain. For other uses of the term Erlang, please see Erlang (disambiguation).

The original domain for Erlang was circuit switching systems in the Public Switched Telephone Network. The nature of the original domain is presented here since it describes the kind of problems that Erlang is well suited for.

For more information, see: Erlang programming language.

Däcker's 10 requirements

In Bjarne Dacker's licentiate thesis [1] a list of the 10 key requirements for programming telephone circuit switches.

  1. Handling of a very large number of concurrent activities
  2. Actions to be performed at a certain point in time or within a certain time
  3. Systems distributed over several computers
  4. Interaction with hardware
  5. Very large software systems
  6. Complex functionality such as feature interaction
  7. Continuous operation for many years
  8. Software maintenance (reconfiguration et cetera) without stopping the system
  9. Stringent quality and reliability requirements
  10. Fault tolerance both to hardware failures and software errors

Erlang was specifically designed to make it easier to implement telecoms switching systems, but the requirements are also true for a number of other domains such as web servers[2], instant messaging[3] and enterprise messaging[4].

In Joe Armstrong's dissertation [5] there is an elaboration of the rationale for these requirements in section 2.2.

References

  1. http://www.erlang.se/publications/bjarnelic.pdf Bjarne Däcker's licentiate thesis
  2. http://yaws.hyber.org/ The Yaws web server written in Erlang
  3. http://www.ejabberd.im/ Instant messaging server ejabbered is written in Erlang
  4. http://www.rabbitmq.com/ The AMQP implementation RabbitMQ is written in Erlang.
  5. Armstrong Dissertation