<div>I have this book, and have read it several times. In my ex-company, we used C++ to build high performance VoIP server. We found that book is quite useful. It explains WHAT you need to consider to build a carrier-grade system, and HOW to do that. Generally it is a very good book, but it does not provide working examples. For example, it says, for hot code upgrade, you need to use incremental link, but it does not explain how to do with gcc. I just hope the book also provides a framework/toolset to build carrier-grade software in C++. Kudos to Ericsson for making Erlang/OTP open source!</div>

<div> </div>
<div>Hope someone, like Joe or Ulf can write a book on how to use Erlang/OTP to build robust communication software.<br> </div>
<div>Thanks,</div>
<div> </div>
<div>kaiduan<br> </div>
<div><span class="gmail_quote">On 12/10/08, <b class="gmail_sendername">Ulf Wiger</b> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:ulf@wiger.net" target="_blank">ulf@wiger.net</a>> wrote:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I haven't read it.<br><br>There's one customer review. Here's an extract:<br><br>"It points out that many aspects of a modern computer<br>
system (pre-emptive multi-tasking, virtual memory, many<br>short-lived processes/threads to handle task execution and<br>dynamic garbage collection) are actually detrimental to the<br>design of a carrier-grade system. "<br>
<br>"[the developer team] shouldn't be put off by the C++ code<br>in the early chapters."<br><br>You can read parts of the book on-line via <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://books.google.com/" target="_blank">books.google.com</a>,<br>
and from a quick perusal, I'd say that it's a pretty good book<br>if you want an introduction into how to best write a carrier-class<br>system in C++. From what he writes, you can extrapolate that<br>Erlang is "dead wrong" for carrier-class systems(*). But then one<br>
needs to remember that his frame of reference is /mainstream/<br>programming technology. If you have the time, it might be useful<br>to read the book, then read Joe's book, and meditate over the<br>differences in approach.<br>
<br>(*) This would be the superficial conclusion based on the fact that<br>he dismisses dynamic processes (because POSIX threads are un-<br>suitable for such programming), preemptive scheduling (because<br>it forces you to use semaphores everywhere), and dynamic<br>
garbage collection (because it's very difficult to write a dynamic<br>garbage collector yourself that doesn't cause long pauses).<br><br>If your starting point is that there is no realistic alternative to<br>C++ for real industrial work, I'd say this kind of book is a must.<br>
<br>BR,<br>Ulf W<br><br>2008/12/10 Chris Newcombe <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:chris.newcombe@gmail.com" target="_blank">chris.newcombe@gmail.com</a>>:<br>> Has anyone (particularly AXD301/ENGINE/OTP folks) read the following book?<br>
><br>>  "Robust Communications Software: Extreme Availability, Reliability<br>> and Scalability for Carrier-Grade Systems"<br>>   by Greg Utas<br>><br>>   <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.amazon.com/Robust-Communications-Software-Availability-Carrier-Grade/dp/0470854340" target="_blank">http://www.amazon.com/Robust-Communications-Software-Availability-Carrier-Grade/dp/0470854340</a><br>
><br>> Is it any good?<br>><br>> thanks,<br>><br>> Chris<br>><br>> Extract from product summary:<br>><br>> Carrier-grade software must satisfy the stringent quality requirements<br>> of network operators whose systems provide mission-critical<br>
> communications services. This book describes proven carrier-grade<br>> software techniques used in flagship products designed by industry<br>> leaders such as Lucent, Nortel, and Ericsson.<br>><br>> In the age of 24/7, software robustness is a competitive advantage.<br>
> This authoritative guide for software engineers, managers, and testers<br>> of products that face carrier-grade requirements helps you to develop<br>> state-of-the-art software that will give you an edge in today's<br>
> marketplace.<br>><br>> Robust Communications Software: Extreme Availability, Reliability and<br>> Scalability for Carrier-Grade Systems<br>><br>>    * offers advice on choosing the right technologies for building<br>
> reliable software<br>>    * incorporates real-world examples and design rationales when<br>> describing how to construct robust, embedded software for<br>> communications systems<br>>    * presents a comprehensive set of carrier-grade design patterns<br>
> that help you to meet extreme availability, reliability, scalability,<br>> and capacity requirements<br>>    * gives advice on how to protect against and recover from software faults<br>>    * discusses system installation, operability, maintenance, and<br>
> on-site debugging<br>><br>> Greg Utas has over 20 years of development experience in carrier-grade<br>> systems, including Chief Software Architect roles at Nortel Networks<br>> (GSM core networks) and Sonim Technologies (wireless push-to-talk<br>
> services). He is currently a consultant specializing in the design of<br>> carrier-grade software.<br>> _______________________________________________<br>> erlang-questions mailing list<br>> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
> <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>><br>_______________________________________________<br>
erlang-questions mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br>