MICO, An Open Source CORBA Implementation


Rafal Angryk


Arno Puder and Kay Romer
Third Edition, MKF, San Francisco, CA, 2000, 195 pp.
ISBN 1-55860-666-1, $39.95

I would like to recommend this book to all people wanting to start learning about CORBA and interested in implementing this standard to build distributed systems. It, in a short and easy way presents ORB and the ways it can be implemented.

Object Request Broker is the central piece of the CORBA architecture, serving as a carrier for invocations from the client (querying object) to other object implementations. MICO (Mico Is COrba) is one of the ORBs fully complying with the CORBA standard, and it was initially created as a didactic tool. It is an Open Source project presented in public for the first time in April 1997. MICO sources are at present freely offered under the GNU General Public License, and are used successfully in both academic and commercial applications (for more information about software you may want to look at: http://www.mico.org/). The book is offered with a CD that contains precompiled binaries as well as the complete sources for MICO, version 2.3.2 compliant to CORBA version 2.3. The software is offered for Solaris 2.6, AIX 4.2, Linux 2.2.x, Unix 4.x, HP-UX 10.20, Windows NT and 95 platforms. The book is partly an installation guide, tutorial, as well as a user and reference manual. Additionally, it includes lots of general information about CORBA with a more detailed ORB description.

The first part of the book is very short and contains a simple preamble to the standard of CORBA and introduces readers to the MICO project. The second chapter explains the procedure of installation of MICO on the user's operating system (with the use of the CD which accompanies this book). In addition, it contains many tips concerning a compilation of source code, unquestionably useful for all persons who would come to the challenge of making some modifications in the original codes. The third section consists of a full guide through MICO, enriched with some characteristics from the CORBA acquaintance, implemented in the context of distributed computer systems. This part is enhanced with the practical example, showing how to use MICO to modify one-address-space application to a distributed application, running on different remote hosts. The fourth chapter embraces an implementation overview; it is generally a description of different tools, being offered with the MICO software. The practical example, as mentioned in the third section, is presented here once again, this time in much more complicated scenarios, in order to present more advanced CORBA activation modes. The fifth part of the book explains an implementation of IDL (Interface Definition Language) to C++ mapping. Interface Definition Language is a notation used by the OMG group in the CORBA standard to describe object interfaces. Description presented in this book includes rules about how to map an IDL specification to C++, and also mentions some design matters specific to MICO solution. The sixth chapter, titled Interoperability, demonstrates how to implement MICO's cooperation with other ORB implementations. The examples used here by the authors are very popular commercial tools: Orbix (a CORBA compliant ORB for C++ and Java, made by IONA Technologies: http://www.iona.com/) and VisiBroker (a support for CORBA with C++ and Java language bindings, implemented by Borland Software Corporation: http://www.borland.com/us/products/visibroker/). The seventh chapter describes a naming service, which was implemented as a fully CORBA-compliant module, and presents additionally how to practically employ it in the users' own applications. The penultimate chapters of the book include description of the Interface Repository Browser, and the ninth and final chapter contains GNU License usage rules, which close the presentation of the MICO software included inside this book.

This book is obviously not a complete CORBA manual, and it looks like the authors did not want to achieve the goal in producing it as such. However, the book presents an exceptional value for its price, including many practical solutions supported by nice theoretical explanations. I personally believe it could be very helpful in initial studies of Distributed Systems as well as it could be successfully used in preliminary lecture for people interested in CORBA standard.

Rafal Angryk
Tulane University
New Orleans, Louisiana


Book review