Intended Audience

I l @ ve RuBoard

This book is intended for "hands-on" developers or advanced students interested in understanding the strategies and tactics of concurrent network programming using C++ and object-oriented design. We describe the key design dimensions, patterns, and principles needed to develop flexible and efficient concurrent networked applications quickly and easily. Our numerous C++ code examples reinforce the design concepts and illustrate concretely how to use the core classes in ACE right away. We also take you "behind the scenes" to understand how and why the IPC and concurrency mechanisms in the ACE toolkit are designed the way they are. This material will help to enhance your design skills and to apply C++ and patterns more effectively in your own object-oriented networked applications.

This book is not a comprehensive tutorial on object-oriented development, patterns, UML, C++, systems programming, or networking. We therefore assume readers of this book have some familiarity with the following topics:

  • Object-oriented design and programming techniques, for example, frameworks [Joh97, FJS99b, FJS99a], patterns [GHJV95, BMR + 96, SSRB00], modularity [Mey97], information hiding [Par72], and modeling [Boo94]

  • Object-oriented notations and processes, such as the Unified Modeling Language (UML) [RJB98], eXtreme Programming [Bec00], and the Rational Unified Process (RUP) [JBR99]

  • Fundamental C++ language features, such as classes, inheritance, dynamic binding, and parameterized types [Bja00]

  • Core systems programming mechanisms, such as event demultiplexing , process and thread management, virtual memory, and IPC mechanisms and APIs commonly available on UNIX [Ste98, Ste99, Ste92, Lew95, KSS96, But97] and Win32 [Ric97, Sol98, JO99] platforms

  • Networking terminology and concepts, such as TCP/IP [Ste93], remote operation invocations [Obj01], and client/server architectures [CS92]

We encourage you to use the extensive bibliography to locate sources of information on topics about which you want to learn more.

This book is also not an ACE programmer's manual; that is, we don't explain every method of every class in ACE. For that level of detail we refer you to the extensive online ACE documentation, generated by Doxygen [Dim01], at http://ace.ece.uci.edu/Doxygen/ and http://www.riverace.com/docs/. Instead, this book focuses on

  • The key concepts, patterns, and C++ features that shape the design of successful object-oriented networked applications and middleware and

  • The motivation behind, and basic usage of, the most commonly used ACE TCP/IP and concurrency wrapper facade classes

I l @ ve RuBoard


C++ Network Programming
C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns
ISBN: 0201604647
EAN: 2147483647
Year: 2001
Pages: 101

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net