The Ace Programmer's Guide: Practical Design Patterns for Network and Systems Programming
|
| List Price: | £37.90 |
| Price: | £31.22 & eligible for FREE Super Saver Delivery on orders over £5. Details |
Availability: Usually dispatched within 24 hours
Dispatched from and sold by Amazon.co.uk
25 new or used available from £25.00
Average customer review:Product Description
The ADAPTIVE Communication Environment (ACE) is an open-source toolkit for building high-performance networked applications and next-generation middleware. ACE's power and flexibility arise from object-oriented frameworks, used to achieve the systematic reuse of networked application software. ACE frameworks handle common network programming tasks and can be customized using C++ language features to produce complete distributed applications. This book will teach developers how they can use the ACE framework to develop their software. It will also show real-world uses of design patterns and C++. Benefits: Reduces the ACE learning curve, gain a clear understanding of how to use ACE to produce high-performance software using less time and effort; Provides a cookbook for solutions to common software engineering problems.
Product Details
- Amazon Sales Rank: #244241 in Books
- Published on: 2003-11-27
- Original language: English
- Number of items: 1
- Binding: Paperback
- 544 pages
Editorial Reviews
From the Back Cover
If you're designing software and systems that must be portable, flexible, extensible, predictable, reliable, and affordable, this book and the ACE toolkit will enable you to be more effective in all of these areas. Even after spending over a decade developing ACE and using it to build networked software applications, I find that I've learned a great deal from this book, and I'm confident that you will, too.
--Douglas C. Schmidt, Inventor of ACE, from the Foreword
This book is a must-have for every ACE programmer. For the beginner, it explains step-by-step how to start using ACE. For the more experienced programmer, it explains in detail the features used daily, and is a perfect reference manual. It would have saved me a lot of time if this book had been available some years ago!
--Johnny Willemsen, Senior Software Engineer, Remedy IT, The Netherlands
With a large C++ code base, we rely on ACE to enable a cross-platform client-server framework for data quality and data integration. ACE has improved our design and smoothed over OS idiosyncrasies without sacrificing performance or flexibility. The combination of online reference materials and printed "big picture" guides is indispensable for us, and The ACE Programmer's Guide earns top-shelf status in my office.
--John Lilley, Chief Scientist, DataLever Corporation
In SITA air-ground division, we are one of the major suppliers of communication services to the airline industry. We started using ACE about a year ago and are now moving most of our new communication-related development to it. I can say that using this toolkit can reduce the development and testing time by at least 50% in our type of application.
--Jean Millo, Senior Architect, SITA
The ADAPTIVE Communication Environment (ACE) is an open-source software toolkit created to solve network programming challenges. Written in C++, with the help of 30 core developers and 1,700 contributors, this portable middleware has evolved to encapsulate and augment a wide range of native OS capabilities essential to support performance-driven software systems.
The ACE Programmer's Guide is a practical, hands-on guide to ACE for C++ programmers building networked applications and next-generation middleware. The book first introduces ACE to beginners. It then explains how you can tap design patterns, frameworks, and ACE to produce effective, easily maintained software systems with less time and effort. The book features discussions of programming aids, interprocess communication (IPC) issues, process and thread management, shared memory, the ACE Service Configurator framework, timer management classes, the ACE Naming Service, and more.
The accompanying CD-ROM contains the complete ACE toolkit, including installable kits for Windows, Solaris, and HP-UX; complete reference documentation for all of the ACE classes; and source code for every example in the book.
0201699710B10142003
About the Author
Stephen D. Huston is President and CEO of Riverace Corporation, a provider of technical support and consulting services to companies who want to keep software projects on track using ACE. Steve has nearly ten years of experience with ACE, and more than twenty years of software development experience, focusing on network protocol and C++ networked application development in a wide range of hardware and software environments.
0201699710AB06232003
Customer Reviews
Pretty good introduction...
...to ACE in all it's glory.
ACE is a cross platform communications library. It's very good at removing compiler and OS differences: you can write clients and servers with it that can compile and run on a dozen compiler/OS combinations. It's freely available to download off the internet (do a google search for "Schmidt" and "ACE" and the URL will be one of the first).
The main problem with the distribution and all the associated web-sites is that the documentation takes a lot of getting used to, and it can be impossible to find out the simplest things without a lot of messing about. This book fills the introductory hole that I would have filled when I started using ACE - i.e. how to use the thing without reading loads of source, make and configuration files.
This book is meant to be an introduction to ACE for people who've never seen it before. After an introduction telling you why ACE is designed the way it is and some of it's philosophy it tells you how to build the thing and the nuts and bolts of getting applications to compile and link with it. The book then discusses some helper classes: the logger and collection classes (yawn, another set) to name a couple of categories before getting into the real reason you might want to use ACE.
The rest of the book is divided up into three chunks: Interprocess communications, process control and "advanced stuff."
Interprocess communications covers sockets, ACE's abstractions for streams and events and some of the high level application frameworks that ACE provides to save your fingers.
Process control covers starting, stopping and synchronising with threads and processes. It starts from the basics of using simple threads and ends up discussing how to implement the active object pattern and thread pooling using ACE.
Advanced stuff covers some things already mentioned (e.g. streams and timers) in depth and adds useful things like shared memory and the naming service.
Oh, and for those shy of downloading stuff over the internet, the CD on the book comes with a mid 2003 distribution of ACE.
Overall this isn't a bad introduction. The writing is generally clear and unambiguous. Most of the clunky English comes from the ACE libray itself ("configurator" and "proactor" anyone?) It's fairly selective in what it covers (there's no detailed coverage of the OS abstraction layer for example - which isn't bad as it encourages you to program at a higher level) but should get you up and running with the basics. More importantly it shows you how to combine the raw components to implement solutions to trickier problems, hopefully helping you come up with your own solutions along the way.
An introduction, not a reference.
The review by "aesclealm" pretty much sums it up.
The ACE libraries are useful for developing cross-platform code, providing functionality such as loggers, configuration handling, communications, threading etc. Where ACE itself falls down is that the documentation supplied does not provide enough information about how best to use it and what it does under the covers. You might think that you don't need to know about what happens under the covers and for a simple application that could be true, but when you go multi-threaded and discover that in parts of the ACE library the code checks which thread you are calling from and behaves differently depending on what it finds, then this is something you need to know. Unfortunately the documentation doesn't give that level of information and neither does this book. Life-times and ownership of objects are areas likely to cause issues too - this book mentions an example of that relating to the logger, but there are others too. A library that decides ownership based on whether you pass a pointer to a method or a reference to that method is one where you want/need a good reference book, not just an introductory text.
"The ACE Programmer's Guide" is a reasonable introduction to ACE, but it is certainly not a reference (despite the quote on the back cover calling it exactly that). Unfortunately, when using ACE the old adage about a little bit of knowledge is true. You can work from the documentation, this book and the books by Schmidt, and if writing reasonably complex systems you will still hit issues using certain parts of ACE resulting in you stepping through the library code to find out what is going on. I've therefore only given this book 3 stars. It's a reasonable introduction, but if you are doing anything significant with ACE, particularly if multi-threaded, you are likely to end up wishing there was a real/complete reference work rather than just introductory texts and overviews.




