
Building Scalable Applications with Erlang
Jerry Jackson(Author)
Addison Wesley (Publisher)
Book
Paperback/Softback
600 pages
978-0-321-63646-1 (ISBN)
Description
Erlang is emerging as a leading language for concurrent programming in mission-critical enterprise environments where applications must deliver exceptional reliability, availability, and scalability. It's already used by organizations ranging from Facebook to Amazon, and many others are adopting or considering it.
As a functional language, however, Erlang is radically different from conventional object-oriented languages like C++ and Java. This book quickly brings experienced object-oriented programmers up to speed with both Erlang and the principles of functional programming. Jerry Jackson thoroughly explains Erlang's key concepts, principles, and features, bridging the conceptual gaps that often frustrate object developers. Next, he shows how to use Erlang to build massively-scalable real-world systems with up to "nine nines" availability: that is, up to 99.9999999% uptime. Coverage includes:
What Erlang is, and why it offers so much potentia
What it means to be "concurrency-oriented, and how to design concurrency-oriented applications
How to use functional features, pattern matching, and Erlang's standard libraries
How to manage concurrency and mutable state, and work with the Mnesia database
How to write distributed software with Erlang
How to use powerful additional capabilities built into Erlang's Open Telecom Platform (OTP)
How to interact with Java, C, and other languages
How to use Erlang's bundled web server and debugger, and much more
As a functional language, however, Erlang is radically different from conventional object-oriented languages like C++ and Java. This book quickly brings experienced object-oriented programmers up to speed with both Erlang and the principles of functional programming. Jerry Jackson thoroughly explains Erlang's key concepts, principles, and features, bridging the conceptual gaps that often frustrate object developers. Next, he shows how to use Erlang to build massively-scalable real-world systems with up to "nine nines" availability: that is, up to 99.9999999% uptime. Coverage includes:
What Erlang is, and why it offers so much potentia
What it means to be "concurrency-oriented, and how to design concurrency-oriented applications
How to use functional features, pattern matching, and Erlang's standard libraries
How to manage concurrency and mutable state, and work with the Mnesia database
How to write distributed software with Erlang
How to use powerful additional capabilities built into Erlang's Open Telecom Platform (OTP)
How to interact with Java, C, and other languages
How to use Erlang's bundled web server and debugger, and much more
More details
Language
English
Place of publication
New Jersey
United States
Publishing group
Pearson Education (US)
Target group
Professional and scholarly
Dimensions
Height: 232 mm
Width: 178 mm
Weight
1000 gr
ISBN-13
978-0-321-63646-1 (9780321636461)
Schweitzer Classification
Content
Part 1. Introduction
1. What is Erlang and Why is it Important?
2. Erlang is Concurrency-Oriented
3. Concurrency Oriented Design
4. Getting Started
Part 2. Functional Erlang
5. What is a Functional Language?
6. A Simple Erlang Program
7. Erlang Data Types
8. Control Structures and Pattern Matching
9. Higher-Order Programming
10. Standard libraries
11. A Larger Example
Part 3. Concurrency and Mutable State
12. I/O and External State
13. Processes and Messages
14. Links and Monitors
15. Registered Names
16. The Process Dictionary
17. Tables (ETS and DETS)
18. The Mnesia Database
19. Comparing the Different Types of State
Part 4. Distributed Erlang
20. Erlang Nodes and Cookies
21. RPC
22. Global Names and Locks
23. Failover
Part 5. The Open Telecom Platform (OTP)
24. Behaviors
25. Applications
26. Releases
27. Hot Code Updates
28. A Complete Erlang/OTP Application: Tuple Spaces
Part 6. Interacting with Other Languages
29 Java
30. C
Part 7. Bundled Applications
31. Yet Another Web Server (YAWS)
32. The Erlang Debugger
Appendices
Appendix A. Lexical Conventions
Appendix B. Links to More Information
1. What is Erlang and Why is it Important?
2. Erlang is Concurrency-Oriented
3. Concurrency Oriented Design
4. Getting Started
Part 2. Functional Erlang
5. What is a Functional Language?
6. A Simple Erlang Program
7. Erlang Data Types
8. Control Structures and Pattern Matching
9. Higher-Order Programming
10. Standard libraries
11. A Larger Example
Part 3. Concurrency and Mutable State
12. I/O and External State
13. Processes and Messages
14. Links and Monitors
15. Registered Names
16. The Process Dictionary
17. Tables (ETS and DETS)
18. The Mnesia Database
19. Comparing the Different Types of State
Part 4. Distributed Erlang
20. Erlang Nodes and Cookies
21. RPC
22. Global Names and Locks
23. Failover
Part 5. The Open Telecom Platform (OTP)
24. Behaviors
25. Applications
26. Releases
27. Hot Code Updates
28. A Complete Erlang/OTP Application: Tuple Spaces
Part 6. Interacting with Other Languages
29 Java
30. C
Part 7. Bundled Applications
31. Yet Another Web Server (YAWS)
32. The Erlang Debugger
Appendices
Appendix A. Lexical Conventions
Appendix B. Links to More Information