这是一本在 GNOME 自由软件桌面环境的上下文中使用 CORBA 的书。分为两部分:
第一部分讨论 GNOME 和 “传统的” CORBA;
第二部分讨论 Bonobo-技术,它建立在 CORBA 之上。
本书第一部分的目标是给读者关于在 GNOME (the GNU Network Object Model Environment)环境里 CORBA 的总体部署的一个好的介绍。CORBA (the Common Object Request Broker Architecture) 定义是一个软件体系,在这个体系下,软件产品(对象)之间的交互不用管书写它们的编程语言、运行所在的机器,运行所在的操作系统。
GNOME 是一个 GNU 计划,目标是把自由软件的优越之处带给最终用户(end-user)。为此它提供了一个开发最终用户应用程序的框架。这个框架由建立在 GTK ( Gimp Toolkit: 一个建立 GUI 的 C 语言工具箱)上的一些库构成,GTK 提供给应用程序通行的外观和感觉。GNOME 也提供提供图形桌面的标准的组成项目,象程序启动器(program launcher)、任务条、时钟等。不同的 GUI 构件通过 CORBA 来通信。
因为书写多数核心的 GNOME 应用程序使用的是 C 语言,本书将只覆盖使用 C 语言的 CORBA 编程。在原理上,CORBA 不关心编程语言。然而 GNOME 的标准 ORB -- ORBit 只提供 C 语言绑定。注意 Perl 和 Python 绑定已经处于 beta 阶段,正在做一个 C++ 绑定,正在讨论一个 Guile 绑定。
第一部分假定读者至少有一些 OOP (Object Oriented Programming)的知识,C、C++ (前 4 章)和 GNOME 编程知识(第 5 章)。
本书第二部分讨论 Bonobo,Bonobo 系统最终提供的能力可被用于做大量的事情,这些事情在 MacOS 和 Windows 等 GUI 系统中是习以为常的,象在字处理文档中嵌入电子表格,可重用的用户接口控件,可编写脚本(scriptable)的构件等。我们打算给与读者对 Bonobo 内部的工作和它的 API 的理解。我们也将提供给用户大量的例子代码。
读第二部分的读者最好由有一些 COM/DCOM 和 OLE 知识。但这不是必须的,本书的作者之一 Mathieu,就从来没写过 Windows 代码并且不懂 OLE。