Components in the GNOME Project

by Miguel de Icaza

by Jonathan Blandford

Abstract

In most modern desktops, there is a mechanism to facilitate modular programming through reuse of Components and objects. The current GNOME desktop has much of the infrastructure necessary to provide this style of programming. The future direction of development in GNOME will focus on providing a large set of flexible components for rapid development.


Motivation

The success of UNIX stems in part from allowing users to create new and more complex results by joining smaller components. These components are joined using UNIX pipes to create large numbers of powerful applications.

Although pipes and filters are still invaluable to the poweruser, they have their limitations in today's more complex desktop environment. For example:

One way to avoid these problems is to implement a component based programming framework. Unfortunately, UNIX has traditionally lacked a standardized architecture for such a framework. GNOME addresses this lack by providing such a component model, built heavily upon CORBA.

CORBA is the Object Management Group's (OMG) object broker. It allows applications to communicate to each other independent of what platform they are on or who wrote them. More information on CORBA is available at the OMG's homepage . The implementation of CORBA used in GNOME is ORBit. More information on ORBit can be found at ORBit's homepage .