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 "OTP Design Principles" 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: "Getting Started with Erlang" describes the Erlang runtime system and introduces the reader to tools such as the compiler and debugger.
</LI>
<LI>
Chapter 3: "Erlang Extensions Since 4.4" 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: "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.
</LI>
<LI>
Chapter 5: "Installation Guide"gives guidelines on how to install Erlang/OTP on UNIX or Windows.
</LI>
<LI>
Chapter 6: "System Principles" 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: "Embedded Systems" is a supplement to "Installation Guide". t describes issues that are specific for running Erlang/OTP on an embedded system.
</LI>
<LI>
Chapter 8: "Operation and Management Principles" describes the model for operation and maintenance of sub-systems.
</LI>
<LI>
Chapter 9: "Tutorial" 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 © 1991-2006
<A HREF="http://www.erlang.se">Ericsson AB</A><BR>
</SMALL>
</CENTER>
</BODY>
</HTML>
|