A long-awaited title,
Advanced CORBA Programming with C++ contains the most
comprehensive coverage of CORBA programming in C++ that we've
come across to date. Compared to the first CORBA book we read
about three years ago — The Essential Distributed Objects
Survival Guide by Robert Orfali et al (John Wiley &
Sons), which was rather frustrating to read and lacked details
— Advanced CORBA Programming with C++ has it all.
It's not that we as programmers need to understand the
intricacies of underlying mechanisms such as IIOP if we want
to use an ORB, but it's good to know in principle what is
going on under the hood. Henning and Vinoski dig deep and go
beyond the CORBA specification and, in many places, the
various APIs to provide invaluable insights into CORBA's
internal mechanisms. In a way this book provides you with many
more details than you might want to know. However, not only is
this an in-depth CORBA reference, it is also a tutorial that
comes with countless case studies and code examples. Even
better, it keeps an eye on pitfalls and performance
impediments. The authors also discuss design decisions and
often come up with helpful recommendations.
Advanced CORBA Programming with C++ is most
decidedly not a book for beginners. You need to be literate in
C++, you need to know what CORBA is from a high-level
perspective, and you should also have experience with network
programming and multi-threading. But if you meet these
prerequisites and are looking for in-depth coverage of CORBA
that enables you to implement industrial-strength CORBA-based
systems, then this is the right book for you.
Henning and Vinoski's book covers CORBA 2.3 as defined by
the OMG (of which the authors are active members) and covers
the latest features that your ORB might not even have
implemented yet. It starts with an introduction showing a
minimal CORBA application and introduces the concepts of
CORBA. Then it focuses on CORBA with C++: the IDL mapping, the
POA (Portable Object Adapter), and object lifecycle problems.
Next come chapters devoted to CORBA networking protocols,
dynamic CORBA, CORBA services (Naming, Trading, Events),
and--to top it off--multi-threaded servers and strategies for
optimizing performance and scalability.
Despite its hefty 1,000 pages, Henning and Vinoski still
feel that the book is too short. Indeed, they had to omit
novel and less essential features such as the transactions and
security services. Nonetheless, this book is the most
comprehensive, in-depth, and practical reference you can find.
Angelika Langer develops and teaches classes on
advanced C++, STL, multithreading, internationalization, and
Java. She has served on the ANSI/ISO C++ Committee since 1993.
Klaus Kreft is a software architect and consultant with
more than a decade of experience in industrial software
development. He works for Siemens Business Services in
Germany. Langer and Kreft are working on a book about standard
C++ iostreams and locales and are columnists for C++
Report. Reach them at langer@camelot.de.