Building Scalable Applications with Erlang.pdf

Building Scalable Applications with Erlang.pdf


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

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


当当网购书 京东购书 卓越购书