~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to system/doc/system_architecture_intro/sys_arch_intro.xml

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="latin1" ?>
 
2
<!DOCTYPE chapter SYSTEM "chapter.dtd">
 
3
 
 
4
<chapter>
 
5
  <header>
 
6
    <copyright>
 
7
      <year>2000</year><year>2009</year>
 
8
      <holder>Ericsson AB. All Rights Reserved.</holder>
 
9
    </copyright>
 
10
    <legalnotice>
 
11
      The contents of this file are subject to the Erlang Public License,
 
12
      Version 1.1, (the "License"); you may not use this file except in
 
13
      compliance with the License. You should have received a copy of the
 
14
      Erlang Public License along with this software. If not, it can be
 
15
      retrieved online at http://www.erlang.org/.
 
16
    
 
17
      Software distributed under the License is distributed on an "AS IS"
 
18
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 
19
      the License for the specific language governing rights and limitations
 
20
      under the License.
 
21
    
 
22
    </legalnotice>
 
23
 
 
24
    <title>Introduction</title>
 
25
    <prepared></prepared>
 
26
    <docno></docno>
 
27
    <date></date>
 
28
    <rev></rev>
 
29
    <file>sys_arch_intro.xml</file>
 
30
  </header>
 
31
 
 
32
  <section>
 
33
    <title>Erlang and OTP</title>
 
34
    <p>Erlang is a general-purpose programming language with built-in 
 
35
      support for concurrency, distribution and fault tolerance.</p>
 
36
    <p>OTP (Open Telecom Platform) is aimed at providing time-saving and 
 
37
      flexible development for robust, adaptable telecom systems. It 
 
38
      consists of an Erlang runtime system, a number of ready-to-use 
 
39
      components mainly written in Erlang, and a set of design principles 
 
40
      for Erlang programs. Since Erlang and OTP are closely interconnected 
 
41
      the term Erlang/OTP is normally used instead of OTP.</p>
 
42
  </section>
 
43
 
 
44
  <section>
 
45
    <title>Erlang/OTP</title>
 
46
 
 
47
    <section>
 
48
      <title>Erlang Runtime System</title>
 
49
      <p>The Erlang runtime system (ERTS) is made up of an emulator running on top of the host operating system, a kernel providing low-level services such as distribution and I/O handling, and a standard library containing a large number of re-usable modules.</p>
 
50
      <p>The OTP design principles provides the user with a way to structure the system based on a concept called application. An OTP application is a way to package a system component and is either a set of library modules or a supervision tree. A supervision tree is a hierarchical tree of processes used to program fault-tolerant systems. The processes are easiest implemented using behavior modules which are formalizations of design patterns. The standard library includes behavior modules for supervisors, servers, state machines and generic event handlers. In chapter 4 "OTP Design Principles" the design principles are explained in detail.</p>
 
51
    </section>
 
52
 
 
53
    <section>
 
54
      <title>OTP Components</title>
 
55
      <p>The OTP components can be divided into six categories:</p>
 
56
      <list type="bulleted">
 
57
        <item>
 
58
          <p>Basic Applications - Basic Erlang/OTP functionality.</p>
 
59
          <list type="bulleted">
 
60
            <item><em>Compiler</em> A compiler for Erlang modules.</item>
 
61
            <item><em>Kernel</em> Functionality necessary to run Erlang/OTP itself.</item>
 
62
            <item><em>SASL</em> (System Architecture Support Libraries) A set of tools for code replacement and alarm handling etc.</item>
 
63
            <item><em>Stdlib</em> The standard library.</item>
 
64
          </list>
 
65
        </item>
 
66
        <item>
 
67
          <p>Operations and Maintenance - OAM both of the system developed by the user and of Erlang/OTP itself.</p>
 
68
          <list type="bulleted">
 
69
            <item><em>EVA</em> A multi-featured event and alarm handler.</item>
 
70
            <item><em>OS_Mon</em> A monitor which allows inspection of the underlying operating system.</item>
 
71
            <item><em>SNMP</em> SNMP support including a MIB compiler and tools for creating SNMP agents.</item>
 
72
          </list>
 
73
        </item>
 
74
        <item>
 
75
          <p>Interface and Communication - Interoperability and protocols support.</p>
 
76
          <list type="bulleted">
 
77
            <item><em>Asn1</em> Support for ASN.1.</item>
 
78
            <item><em>Comet</em> A library that enables Erlang/OTP to call COM
 
79
             objects on windows </item>
 
80
            <item><em>Crypto</em> Cryptographical support</item>
 
81
            <item><em>Erl_Interface</em> Low level interface to C.</item>
 
82
            <item><em>GS</em> A graphics system used to write platform
 
83
             independent user interfaces.</item>
 
84
            <item><em>Inets</em> A set of services such as a web server
 
85
             and a FTP client.</item>
 
86
            <item><em>Jinterface</em> Low level interface to Java.</item>
 
87
            <item><em>SSL</em> Secure Socket Layer (SSL),interface to UNIX BSD 
 
88
             sockets </item>
 
89
          </list>
 
90
        </item>
 
91
        <item>
 
92
          <p>Database Management.</p>
 
93
          <list type="bulleted">
 
94
            <item><em>QLC</em> Query language support for Mnesia DBMS.</item>
 
95
            <item><em>Mnesia</em> A heavy duty real-time distributed database.</item>
 
96
            <item><em>ODBC</em> ODBC database interface.</item>
 
97
          </list>
 
98
        </item>
 
99
        <item>
 
100
          <p>CORBA services and IDL compiler.</p>
 
101
          <list type="bulleted">
 
102
            <item><em>cosEvent</em> Orber OMG Event Service.</item>
 
103
            <item><em>cosNotification</em> Orber OMG Notification 
 
104
             Service.</item>
 
105
            <item><em>cosTime</em> Orber OMG Timer and TimerEvent 
 
106
             Services.</item>
 
107
            <item><em>cosTransactions</em> Orber OMG Transaction 
 
108
             Service.</item>
 
109
            <item><em>IC</em> IDL compiler</item>
 
110
            <item><em>Orber</em> A CORBA object request broker.</item>
 
111
          </list>
 
112
        </item>
 
113
        <item>
 
114
          <p>Tools.</p>
 
115
          <list type="bulleted">
 
116
            <item><em>Appmon</em> A utility used to view OTP applications.</item>
 
117
            <item><em>Debugger</em> For debugging and testing of Erlang programs.</item>
 
118
            <item><em>Parsetools</em> A set of parsing and lexical analysis tools.</item>
 
119
            <item><em>Pman</em> A process manager used to inspect the state of an Erlang/OTP system.</item>
 
120
            <item><em>Runtime_Tools</em> Tools to include in a production system.</item>
 
121
            <item><em>Toolbar</em> A tool bar simplifying access to the Erlang/OTP tools.</item>
 
122
            <item><em>Tools</em> A set of programming tools including a coverage analyzer etc.</item>
 
123
            <item><em>TV</em> An ETS and Mnesia graphical table visualizer.</item>
 
124
          </list>
 
125
        </item>
 
126
      </list>
 
127
    </section>
 
128
  </section>
 
129
 
 
130
  <section>
 
131
    <title>Scope and Purpose</title>
 
132
    <p>This documentation describes the Erlang runtime system, the OTP applications and the OTP design principles. It assumes that the reader is familiar with the Erlang programming language and does not explain how to program in Erlang. The language is described in <em>Concurrent Programming in Erlang, 2nd Edition</em>, ISBN 0-13-508301-X.</p>
 
133
  </section>
 
134
 
 
135
  <section>
 
136
    <title>About the Erlang/OTP Documentation</title>
 
137
 
 
138
    <section>
 
139
      <title>Structure of this Book</title>
 
140
      <p>The documentation is divided into eight parts. This book, <em>Erlang 5.1/OTP R8 System Documentation, EN/LZT 108 4095 R2</em>, is the starting point of the documentation and contains information about the Erlang programming language and runtime system, the OTP design principles, and how to install and configure Erlang/OTP.</p>
 
141
      <list type="bulleted">
 
142
        <item>Chapter 2: "Getting Started with Erlang" describes the Erlang runtime system and introduces the reader to tools such as the compiler and debugger.</item>
 
143
        <item>Chapter 3: "Erlang Extensions Since 4.4" lists all extensions added to the Erlang programming languages since the latest version of the book <em>Concurrent Programming in ERLANG</em>.</item>
 
144
        <item>Chapter 4: "OTP Design Principles" describes a way to structure Erlang code in terms of applications and supervision trees. The standard behaviors are described and examples illustrate how to apply these behaviors to typical applications.</item>
 
145
        <item>Chapter 5: "Installation Guide"gives guidelines on how to install Erlang/OTP on UNIX or Windows.</item>
 
146
        <item>Chapter 6: "System Principles" describes the strategies
 
147
         and options, which are available to start an Erlang/OTP system. This chapter also provides a brief description of the applications included in an Erla
 
148
         ng/OTP system. </item>
 
149
        <item>Chapter 7: "Embedded Systems" is a supplement to "Installation Guide". t describes issues that are specific for running Erlang/OTP on an embedded system.</item>
 
150
        <item>Chapter 8: "Operation and Management Principles" describes the model for operation and maintenance of sub-systems.</item>
 
151
        <item>Chapter 9: "Tutorial" gives an orientation of the different 
 
152
         interoperability mechanism, which can be used when integrating an 
 
153
         Erlang program with a program written in an other programming language.</item>
 
154
      </list>
 
155
    </section>
 
156
 
 
157
    <section>
 
158
      <title>Typographical Conventions</title>
 
159
      <p>The following typographical conventions are used in the documentation.</p>
 
160
      <table>
 
161
        <row>
 
162
          <cell align="left" valign="middle"><em>Convention</em></cell>
 
163
          <cell align="left" valign="middle"><em>Where used</em></cell>
 
164
        </row>
 
165
        <row>
 
166
          <cell align="left" valign="middle"><em>command</em></cell>
 
167
          <cell align="left" valign="middle">To show menu selections and equivalent command line entries.          <br></br>
 
168
To show keyboard entries at system prompts.</cell>
 
169
        </row>
 
170
        <row>
 
171
          <cell align="left" valign="middle"><c>code</c></cell>
 
172
          <cell align="left" valign="middle">To highlight Erlang code, module and function names, arguments, variables, and file names. </cell>
 
173
        </row>
 
174
        <tcaption>Examples of typographical conventions.</tcaption>
 
175
      </table>
 
176
    </section>
 
177
  </section>
 
178
</chapter>
 
179