File: sys_arch_intro.html

package info (click to toggle)
erlang-doc-html 1%3A11.b.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 23,284 kB
  • ctags: 10,724
  • sloc: erlang: 505; ansic: 323; makefile: 62; perl: 61; sh: 45
file content (383 lines) | stat: -rw-r--r-- 9,125 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- This document was generated using DocBuilder 3.3.3 -->
<HTML>
<HEAD>
  <TITLE>Introduction</TITLE>
  <SCRIPT type="text/javascript" src="../../doc/erlresolvelinks.js">
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#FF00FF"
      ALINK="#FF0000">
<CENTER>
<A HREF="http://www.erlang.se"><IMG BORDER=0 ALT="[Ericsson AB]" SRC="min_head.gif"></A>
</CENTER>
<A NAME="1"><!-- Empty --></A>
<H2>1 Introduction</H2>
<A NAME="1.1"><!-- Empty --></A>
<H3>1.1 Erlang and OTP</H3>

<P>Erlang is a general-purpose programming language with built-in 
support for concurrency, distribution and fault tolerance.
<P>OTP (Open Telecom Platform) is aimed at providing time-saving and 
flexible development for robust, adaptable telecom systems. It 
consists of an Erlang runtime system, a number of ready-to-use 
components mainly written in Erlang, and a set of design principles 
for Erlang programs. Since Erlang and OTP are closely interconnected 
the term Erlang/OTP is normally used instead of OTP.<A NAME="1.2"><!-- Empty --></A>
<H3>1.2 Erlang/OTP</H3>
<A NAME="1.2.1"><!-- Empty --></A>
<H4>1.2.1 Erlang Runtime System</H4>

<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>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 &#34;OTP Design Principles&#34; the design principles are explained in detail.<A NAME="1.2.2"><!-- Empty --></A>
<H4>1.2.2 OTP Components</H4>

<P>The OTP components can be divided into six categories:
<P>
<UL>

<LI>
Basic Applications - Basic Erlang/OTP functionality.
        
<UL>

<LI>
<STRONG>Compiler</STRONG> A compiler for Erlang modules.
</LI>


<LI>
<STRONG>Kernel</STRONG> Functionality necessary to run Erlang/OTP itself.
</LI>


<LI>
<STRONG>SASL</STRONG> (System Architecture Support Libraries) A set of tools for code replacement and alarm handling etc.
</LI>


<LI>
<STRONG>Stdlib</STRONG> The standard library.
</LI>


</UL>


</LI>


<LI>
Operations and Maintenance - OAM both of the system developed by the user and of Erlang/OTP itself.
        
<UL>

<LI>
<STRONG>EVA</STRONG> A multi-featured event and alarm handler.
</LI>


<LI>
<STRONG>OS_Mon</STRONG> A monitor which allows inspection of the underlying operating system.
</LI>


<LI>
<STRONG>SNMP</STRONG> SNMP support including a MIB compiler and tools for creating SNMP agents.
</LI>


</UL>


</LI>


<LI>
Interface and Communication - Interoperability and protocols support.
        
<UL>

<LI>
<STRONG>Asn1</STRONG> Support for ASN.1.
</LI>


<LI>
<STRONG>Comet</STRONG> A library that enables Erlang/OTP to call COM
         objects on windows 
</LI>


<LI>
<STRONG>Crypto</STRONG> Cryptographical support
</LI>


<LI>
<STRONG>Erl_Interface</STRONG> Low level interface to C.
</LI>


<LI>
<STRONG>GS</STRONG> A graphics system used to write platform
         independent user interfaces.
</LI>


<LI>
<STRONG>Inets</STRONG> A set of services such as a web server
         and a FTP client.
</LI>


<LI>
<STRONG>Jinterface</STRONG> Low level interface to Java.
</LI>


<LI>
<STRONG>SSL</STRONG> Secure Socket Layer (SSL),interface to UNIX BSD 
         sockets 
</LI>


</UL>


</LI>


<LI>
Database Management.
        
<UL>

<LI>
<STRONG>Mnemosyne</STRONG> Query language support for Mnesia DBMS.
</LI>


<LI>
<STRONG>Mnesia</STRONG> A heavy duty real-time distributed database.
</LI>


<LI>
<STRONG>Mnesia_session</STRONG> A foreign language interface to Mnesia DBMS.
</LI>


<LI>
<STRONG>ODBC</STRONG> ODBC database interface.
</LI>


</UL>


</LI>


<LI>
CORBA services and IDL compiler.
        
<UL>

<LI>
<STRONG>cosEvent</STRONG> Orber OMG Event Service.
</LI>


<LI>
<STRONG>cosNotification</STRONG> Orber OMG Notification 
         Service.
</LI>


<LI>
<STRONG>cosTime</STRONG> Orber OMG Timer and TimerEvent 
         Services.
</LI>


<LI>
<STRONG>cosTransactions</STRONG> Orber OMG Transaction 
         Service.
</LI>


<LI>
<STRONG>IC</STRONG> IDL compiler
</LI>


<LI>
<STRONG>Orber</STRONG> A CORBA object request broker.
</LI>


</UL>


</LI>


<LI>
Tools.
        
<UL>

<LI>
<STRONG>Appmon</STRONG> A utility used to view OTP applications.
</LI>


<LI>
<STRONG>Debugger</STRONG> For debugging and testing of Erlang programs.
</LI>


<LI>
<STRONG>Parsetools</STRONG> A set of parsing and lexical analysis tools.
</LI>


<LI>
<STRONG>Pman</STRONG> A process manager used to inspect the state of an Erlang/OTP system.
</LI>


<LI>
<STRONG>Runtime_Tools</STRONG> Tools to include in a production system.
</LI>


<LI>
<STRONG>Toolbar</STRONG> A tool bar simplifying access to the Erlang/OTP tools.
</LI>


<LI>
<STRONG>Tools</STRONG> A set of programming tools including a coverage analyzer etc.
</LI>


<LI>
<STRONG>TV</STRONG> An ETS and Mnesia graphical table visualizer.
</LI>


</UL>


</LI>


</UL>
<A NAME="1.3"><!-- Empty --></A>
<H3>1.3 Scope and Purpose</H3>

<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 <STRONG>Concurrent Programming in Erlang, 2nd Edition</STRONG>, ISBN 0-13-508301-X.<A NAME="1.4"><!-- Empty --></A>
<H3>1.4 About the Erlang/OTP Documentation</H3>
<A NAME="1.4.1"><!-- Empty --></A>
<H4>1.4.1 Structure of this Book</H4>

<P>The documentation is divided into eight parts. This book, <STRONG>Erlang 5.1/OTP R8 System Documentation, EN/LZT 108 4095 R2</STRONG>, 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>
<UL>

<LI>
Chapter 2: &#34;Getting Started with Erlang&#34; describes the Erlang runtime system and introduces the reader to tools such as the compiler and debugger.
</LI>


<LI>
Chapter 3: &#34;Erlang Extensions Since 4.4&#34; lists all extensions added to the Erlang programming languages since the latest version of the book <STRONG>Concurrent Programming in ERLANG</STRONG>.
</LI>


<LI>
Chapter 4: &#34;OTP Design Principles&#34; 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.
</LI>


<LI>
Chapter 5: &#34;Installation Guide&#34;gives guidelines on how to install Erlang/OTP on UNIX or Windows.
</LI>


<LI>
Chapter 6: &#34;System Principles&#34; describes the strategies
        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
ng/OTP system. 
</LI>


<LI>
Chapter 7: &#34;Embedded Systems&#34; is a supplement to &#34;Installation Guide&#34;. t describes issues that are specific for running Erlang/OTP on an embedded system.
</LI>


<LI>
Chapter 8: &#34;Operation and Management Principles&#34; describes the model for operation and maintenance of sub-systems.
</LI>


<LI>
Chapter 9: &#34;Tutorial&#34; gives an orientation of the different 
         interoperability mechanism, which can be used when integrating an 
        Erlang program with a program written in an other programming language.
</LI>


</UL>
<A NAME="1.4.2"><!-- Empty --></A>
<H4>1.4.2 Typographical Conventions</H4>

<P>The following typographical conventions are used in the documentation.
<P>
<CENTER>
<TABLE CELLSPACING=0 CELLPADDING=2 BORDER=1>
  <CAPTION ALIGN=BOTTOM><EM>Examples of typographical conventions.</EM></CAPTION>
  <TR>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
<STRONG>Convention</STRONG>
    </TD>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
<STRONG>Where used</STRONG>
    </TD>

  </TR>
  <TR>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
<STRONG>command</STRONG>
    </TD>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
To show menu selections and equivalent command line entries.<BR>

         To show keyboard entries at system prompts.
    </TD>

  </TR>
  <TR>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
<CODE>code</CODE>
    </TD>
    <TD ALIGN="LEFT" VALIGN="MIDDLE">
To highlight Erlang code, module and function names, arguments, variables, and file names. 
    </TD>

  </TR>

</TABLE>
</CENTER>
<CENTER>
<HR>
<SMALL>
Copyright &copy; 1991-2006
<A HREF="http://www.erlang.se">Ericsson AB</A><BR>
</SMALL>
</CENTER>
</BODY>
</HTML>