Home   FAQs   New Arrivals   Specials   Pricing & Shipping   Location   Corporate Services   Why Choose Bookware?  
 Search:   
Call our store: 9922 6266 (from within Sydney) or 1800 734 567 (from outside Sydney)
 View Cart   Check Out   
 
Browse by Subject
 Nepean TAFE 2012
I.T
 .NET
 Windows 7
 Adobe CS5
 Cisco
 CCNA 2012
 CCNP 2012
 Java
 VB
 ASP
 Web Design
 E-Commerce
 Project Management
 ITIL
 Macintosh
 Linux
 Windows Server 2008
 SAP
 Sharepoint 2010
Certification
 MCITP
 MCTS
Economics and Business
 Accounting
 Business Information Systems
 Economics
 Finance
 Management
 Marketing
 TAX
 Human Resources
Academic
 Law
 Nursing
 Medical

The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming

by: Stephen D. Huston, James CE Johnson, Umar Syyid

Notify me when in stock

On-line Price: $67.95 (includes GST)

Paperback package 544

20%Off Retail Price

You save: $17.00

TBA - Subject to Change. Price/availability/options for all orders will be confirmed by reply email before processing.

Retail Price: $84.95

Publisher: ADDISON-WESLEY,2003/11/18

Category: SOFTWARE ENGINEERING Level:

ISBN: 0201699710
ISBN13: 9780201699715

Add to Shopping Cart

Summary


      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


  Author Bio


      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

Table of Contents

Illustrations.


      Tables.


      Foreword.


      Preface.


  I. ACE BASICS.


  1. Introduction to ACE.


          A History of ACE.


      ACE's Benefits.


      ACE's Organization.


      Patterns, Class Libraries, and Frameworks.


      Porting Your Code to Multiple Operating Systems.


      Smoothing the Differences among C++ Compilers.


      Using Both Narrow and Wide Characters.


      Where to Find More Information and Support.


      Summary.


  2. How to Build and Use ACE in Your Programs.


          A Note about ACE Versions.


      Guide to the ACE Distribution.


      How to Build ACE.


      How to Include ACE in Your Applications.


      How to Build Your Applications.


      Summary.


  3. Using the ACE Logging Facility.


          Basic Logging and Tracing.


      Enabling and Disabling Logging Severities.


      Customizing the ACE Logging Macros.


      Redirecting Logging Output.


      Using Callbacks.


      The Logging Client and Server Daemons.


      The LogManager Class.


      Runtime Configuration with the ACE Logging Strategy.


      Summary.


  4. Collecting Runtime Information.


          Command Line Arguments and ACE--Get--Opt.


      Accessing Configuration Information.


      Building Argument Vectors.


      Summary.


  5. ACE Containers.


          Container Concepts.


      Sequence Containers.


      Associative Containers.


      Allocators.


      Summary.


  II. INTERPROCESS COMMUNICATION.


  6. Basic TCP/IP Socket Use.


          A Simple Client.


      Adding Robustness to a Client.


      Building a Server.


      Summary.


  7. Handling Events and Multiple I/O Streams.


          Overview of the Reactor Framework.


      Handling Multiple I/O Sources.


      Signals.


      Notifications.


      Timers.


      Using the Acceptor-Connector Framework.


      Reactor Implementations.


      Summary.


  8. Asynchronous I/O and the ACE Proactor Framework.


          Why Use Asynchronous I/O?.


      How to Send and Receive Data.


      Establishing Connections.


      The ACE--Proactor Completion Demultiplexer.


      Using Timers.


      Other I/O Factory Classes.


      Combining the Reactor and Proactor Frameworks.


      Summary.


  9. Other IPC Types.


          Interhost IPC with UDP/IP.


      Intrahost Communication.


      Summary.


  III. PROCESS AND THREAD MANAGEMENT.


  10. Process Management.


          Spawning a New Process.


      Using the ACE--Process--Manager.


      Synchronization Using ACE--Process--Mutex.


      Summary.


  11. Signals.


          Using Wrappers.


      Event Handlers.


      Guarding Critical Sections.


      Signal Management with the Reactor.


      Summary.


  12. Basic Multithreaded Programming.


          Getting Started.


      Basic Thread Safety.


      Intertask Communication.


      Summary.


  13. Thread Management.


          Types of Threads.


      Priorities and Scheduling Classes.


      Thread Pools.


      Thread Management Using ACE--Thread--Manager.


      Signals.


      Thread Start-Up Hooks.


      Cancellation.


      Summary.


  14. Thread Safety and Synchronization.


          Protection Primitives.


      Thread Synchronization.


      Thread-Specific Storage.


      Summary.


  15. Active Objects.


          The Pattern.


      Using the Pattern.


      Summary.


  16. Thread Pools.


          Understanding Thread Pools.


      Half-Sync/Half-Async Model.


      Leader/Followers Model.


      Thread Pools and the Reactor.


      Summary.


  IV. ADVANCED ACE.


  17. Shared Memory.


          ACE--Malloc and ACE--Allocator.


      Persistence with ACE--Malloc.


      Position-Independent Allocation.


      ACE--Malloc for Containers.


      Wrappers.


      Summary.


  18. ACE Streams Framework.


          Overview.


      Using a One-Way Stream.


      A Bidirectional Stream.


      Summary.


  19. ACE Service Configurator Framework.


          Overview.


      Configuring Static Services.


      Setting Up Dynamic Services.


      Setting Up Streams.


      Reconfiguring Services During Execution.


      Using XML to Configure Services and Streams.


      Configuring Services without svc.conf.


      Singletons and Services.


      Summary.


  20. Timers.


          Timer Concepts.


      Timer Queues.


      Prebuilt Dispatchers.


      Managing Event Handlers.


      Summary.


  21. ACE Naming Service.


          The ACE--Naming--Context.


      A Single-Process Naming Context: PROC--LOCAL.


      Sharing a Naming Context on One Node: NODE--LOCAL.


      Sharing a Naming Context across the Network: NET--LOCAL.


      Summary.


  Bibliography.


      Index. 0201699710T11042003