Introduction

This is a book on using CORBA in the context of the GNOME free software desktop environment. It is divided into two parts:

Our aim for the first part of this book is to give the reader a good introduction in the overall deployment of CORBA within the GNOME environment (the GNU Network Object Model Environment). CORBA (the Common Object Request Broker Architecture) is a software architecture defining how software artifacts (objects) can interact, regardless of the programming language they're written in, the machine they're running on, or the operating system the machine they're running on.

GNOME is a GNU project, aiming at bringing the benefits of free software to the end-user. It does so by providing a framework for the development of end-user applications. This framework is made up of some libraries built on top of GTK (The Gimp Toolkit: a C-language toolkit for building GUIs) which provide applications with a common look and feel. GNOME also provides the standard items of a graphical desktop, such as program launchers, taskbars, clocks etc. Interaction between various GUI components is done through CORBA.

Because C is the language most core GNOME applications were written in, this book will cover programming CORBA using C. In principle, CORBA doesn't care about the programming language. However, so far there's only a C-binding provided by GNOME's standard ORB, ORBit. Note that bindings for Perl and Python are in beta, a C++ binding is being worked on, and a Guile-binding is being discussed.

The first part assumes that the reader has at least some knowledge of OOP (Object Oriented Programming), C, C++ (for the first 4 chapters) and GNOME-programming (for the 5th chapter)

The second part of this book discusses Bonobo. Bonobo is a system which will ultimately provide the ability to a lot of things that users of GUI-systems such as MacOS and Windows have gotten used to, such as embedding spreadsheets in word-processing documents, reusable user interface controls, scriptable components etc. We try to give the reader an understanding of both the Bonobo inner-workings and its API. We'll also provide the reader with a lot of sample code.

The second part would be best read if the reader has already some knowledge of COM/DCOM and OLE. However, it shouldn't be required. One of the authors of this Book, Mathieu, has never ever written any Windows code and knows VERY little about OLE.