Synopses & Reviews
Do you need to develop flexible software that can be customized quickly? Do you need to add the power and efficiency of frameworks to your software? 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.
C++ Network Programming, Volume 2, focuses on ACE frameworks, providing thorough coverage of the concepts, patterns, and usage rules that form their structure. This book is a practical guide to designing object-oriented frameworks and shows developers how to apply frameworks to concurrent networked applications. C++ Networking, Volume 1, introduced ACE and the wrapper facades, which are basic network computing ingredients. Volume 2 explains how frameworks build on wrapper facades to provide higher-level communication services.
Written by two experts in the ACE community, this book contains:
- An overview of ACE frameworks
- Design dimensions for networked services
- Descriptions of the key capabilities of the most important ACE frameworks
- Numerous C++ code examples that demonstrate how to use ACE frameworks
C++ Network Programming, Volume 2, teaches how to use frameworks to write networked applications quickly, reducing development effort and overhead. It will be an invaluable asset to any C++ developer working on networked applications.
Writing high-quality networked applications is difficult--it's expensive, complicated, and error-prone. This book picks up where volume one left off, and guides C++ programmers through using the Adaptive Communication Environment (ACE), the most complete toolkit available for networked programming.
This text guides software professionals through the traps and pitfalls of developing efficient, portable and flexible networked applications. It explores the inherent design complexities of concurrent networked applications and the tradeoffs that must be considered when working to master them.
About the Author
Dr. Douglas C. Schmidt is the original developer of ACE and The ACE ORB (TAO). He is a Professor at Vanderbilt University, where he studies patterns, optimizations, middleware, and model-based tools for distributed real-time and embedded systems. He is a former editor-in-chief of C++ Report and columnist for C/C++ Users Journal.
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.
Table of Contents
(NOTE: Chapters 3-9 begin with an Overview and each chapter concludes with a Summary.
About This Book.
1 Object-Oriented Frameworks for Network Programming.
An Overview of Object-Oriented Frameworks.
Comparing Software Development and Reuse Techniques.
Applying Frameworks to Network Programming.
A Tour through the ACE Frameworks.
Example: A Networked Logging Service.
2 Service and Configuration Design Dimensions.
Service and Server Design Dimensions.
Configuration Design Dimensions.
3 The ACE Reactor Framework.
The ACE Time Value Class.
The ACE Event Handler Class.
The ACE Timer Queue Classes.
The ACE Reactor Class.
4 ACE Reactor Implementations.
The ACE Select Reactor Class.
The ACE TP Reactor Class.
The ACE WFMO Reactor Class.
5 The ACE Service Configurator Framework.
The ACE Service Object Class.
The ACE Service Repository Classes.
The ACE Service Config Class.
6 The ACE Task Framework.
The ACE Message Queue Class.
The ACE Task Class.
7 The ACE Acceptor-Connector Framework.
The ACE Svc Handler Class.
The ACE Acceptor Class.
The ACE Connector Class.
8 The ACE Proactor Framework.
The Asynchronous I/O Factory Classes.
The ACE Handler Class.
The Proactive Acceptor-Connector Classes.
The ACE Proactor Class.
9 The ACE Streams Framework.
The ACE Module Class.
The ACE Stream Class.