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

Stephen D. Huston, James CE Johnson, Umar Syyid

  • 出版商: Addison Wesley
  • 出版日期: 2003-11-24
  • 定價: $2,150
  • 售價: 9.0$1,935
  • 語言: 英文
  • 頁數: 544
  • 裝訂: Paperback
  • ISBN: 0201699710
  • ISBN-13: 9780201699715
  • 相關分類: Design Pattern
  • 立即出貨

買這商品的人也買了...

相關主題

商品描述

 

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.

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.

商品描述(中文翻譯)

 


摘要



如果您正在設計需要具有可移植性、靈活性、可擴展性、可預測性、可靠性和可負擔性的軟體和系統,本書和ACE工具包將使您在所有這些領域更加有效。即使我花了十多年的時間開發ACE並使用它來構建網絡軟體應用程序,我發現我從這本書中學到了很多東西,並且我相信您也會學到很多。
--Douglas C. Schmidt,ACE的發明者,來自前言


這本書對於每個ACE程序員來說都是必備的。對於初學者,它逐步解釋了如何開始使用ACE。對於更有經驗的程序員,它詳細解釋了日常使用的功能,是一本完美的參考手冊。如果這本書幾年前就有了,它將為我節省很多時間!
--Johnny Willemsen,高級軟體工程師,Remedy IT,荷蘭


我們擁有一個龐大的C++代碼庫,我們依賴ACE來實現跨平台的客戶端-服務器框架,用於數據質量和數據集成。ACE改進了我們的設計,平滑了操作系統的特殊性,同時不損壞性能和靈活性。在線參考資料和印刷的“整體概述”指南的結合對我們來說是不可或缺的,而《ACE程序員指南》在我的辦公室中享有最高的地位。
--John Lilley,首席科學家,DataLever Corporation


在SITA空地部門,我們是航空業通信服務的主要供應商之一。我們一年前開始使用ACE,現在將我們大部分新的通信相關開發轉移到ACE上。我可以說,在我們這類應用程序中,使用這個工具包可以將開發和測試時間至少減少50%。
--Jean Millo,高級架構師,SITA


自適應通信環境(ACE)是一個開源軟體工具包,用於解決網絡編程挑戰。這個可移植的中間件使用C++編寫,由30名核心開發人員和1,700名貢獻者幫助,它已經演變成封裝和增強了支持性能驅動的軟體系統所必需的各種本地操作系統功能。


《ACE程序員指南》是一本實用的、實用的ACE指南,針對使用C++構建網絡應用程序和下一代中間件的程序員。本書首先向初學者介紹ACE。然後解釋了如何利用設計模式、框架和ACE來生產有效、易於維護的軟體系統,並節省時間和精力。本書還討論了編程輔助工具、進程間通信(IPC)問題、進程和線程管理、共享內存、ACE服務配置器框架、計時器管理類、ACE命名服務等。


附帶的CD-ROM包含完整的ACE工具包,包括Windows、Solaris和HP-UX的可安裝套件;所有ACE類的完整參考文檔;以及書中每個示例的源代碼。



目錄



插圖。

表格。

前言。

前言。


I. ACE基礎知識。


1. ACE簡介。



ACE的歷史。




ACE的好處。




ACE的組織。




模式、類庫和框架。




將代碼移植到多個操作系統。




```