Bonobo specifies a number of such contracts, or interfaces, as they are usually called. The Bonobo interfaces were inspired by Microsoft's OLE2 [3]. Microsoft uses OLE2 for interconnecting components in the Windows-environment. Bonobo is not an implementation of OLE2, however. Many of the design decision that went into OLE2 were re-evaluated, and all Windows-specific parts had to be adapted for Unix and the X Window System. And importantly, while OLE2 is based on Microsoft's proprietary Component Object Model (COM) [2] as the underlying communications layer, Bonobo uses the Common Object Request Broker Architecture (CORBA) [9] instead.
One of the cool parts was the components were network transparent so you could have in a document a component running in your desktop alongside another one running in another continent. CORBA was ultimately replaced by DBus which was inspired by KDE's DCOP.
If all else fails, immortality can always be assured by spectacular error. -- John Kenneth Galbraith