C++ Network Programming: Systematic Reuse with ACE and Frameworks

Published by Addison-Wesley Longman in 2003, ISBN 0-201-79525-6, order from amazon.com (US), amazon.co.uk (UK), amazon.de (Germany), amazon.fr (France), amazon.co.jp (Japan), or Chinese translation.

This book is the second volume in the C++ Network Programming (C++NP) series, and hence this book is referred to as C++NPv2. There's a first volume called C++NPv1.

C++NPv2 is written by
Douglas C. Schmidt
Stephen D. Huston

Dr. Douglas C. Schmidt is the original developer of ACE. He is a Professor at Vanderbilt University, where he studies patterns and optimizations for distributed real-time and embedded middleware.

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.

This book describes how the ACE frameworks are designed and how they can help developers navigate between the limitations of Lower-level native operating system APIs, which are inflexible and non-portable, and Higher-level distributed object computing middleware, which often lacks the efficiency and flexibility to support networked applications with stringent QoS and portability requirements. The skills required to produce and use networked application frameworks have traditionally been locked in the heads of expert developers or buried deep within the source code of numerous projects that are spread throughout an enterprise or an industry. Neither of these locations is ideal, of course, since it's time consuming and error-prone to re-engineer this knowledge for each new application or project. To address this problem, this book illustrates the key patterns that underlie the structure and functionality of the ACE frameworks. Our coverage of these patterns also makes it easier to understand the design and implementation of the open-source ACE toolkit itself.

Supplemental Material

Table of Contents

About this Book
Index of Sidebars

1. Object-Oriented Frameworks for Network Programming
1.1. An Overview of Object-Oriented Frameworks
1.2. Comparing Software Development and Reuse Techniques
1.3. Applying Frameworks to Network Programming
1.4. A Tour Through the ACE Frameworks
1.5. Example: A Networked Logging Service
1.6. Summary

2. Service and Configuration Design Dimensions
2.1. Service and Server Design Dimensions
2.2. Configuration Design Dimensions
2.3. Summary

3. The ACE Reactor Framework
3.1. Overview
3.2. The ACE_Time_Value Class
3.3. The ACE_Event_Handler Class
3.4. The ACE Timer Queue Classes
3.5. The ACE_Reactor Class
3.6. Summary

4. ACE Reactor Implementations
4.1. Overview
4.2. The ACE_Select_Reactor Class
4.3. The ACE_TP_Reactor Class
4.4. The ACE_WFMO_Reactor Class
4.5. Summary

5. The ACE Service Configurator Framework
5.1. Overview
5.2. The ACE_Service_Object Class
5.3. The ACE_Service_Repository and ACE_Service_Repository_Iterator Classes
5.4. The ACE_Service_Config Class
5.5. Summary

6. The ACE Task Framework
6.1. Overview
6.2. The ACE_Message_Queue Class
6.3. The ACE_Task Class
6.4. Summary

7. The ACE Acceptor-Connector Framework
7.1. Overview
7.2. The ACE_Svc_Handler Class
7.3. The ACE_Acceptor Class
7.4. The ACE_Connector Class
7.5. Summary

8. The ACE Proactor Framework
8.1. Overview
8.2. The ACE_Asynch_Read_Stream and ACE_Asynch_Write_Stream Classes
8.3. The ACE_Handler Class
8.4. The ACE_Asynch_Acceptor, ACE_Asynch_Connector, and ACE_Service_Handler Classes
8.5. The ACE_Proactor Class
8.6. Summary

9. The ACE Streams Framework
9.1. Overview
9.2. The ACE_Module Class
9.3. The ACE_Stream Class
9.4. Summary


Back to C++ Network Programming home page.