Existing Technology

C Libraries

Most of the existing code at the department is in the form of C libraries and include files. However, the interfaces are of varying style, and conventions. Also, C code cannot easily be called from another machine over a network.

Remote Procedure Calls (RPC)

Remote Procedure Calls allow code to be called over a TCP/IP network.
Reasons for not using RPC include that support is not available in all environments (for instance Java), and that the methods of compiling stubs is complicated, and stub compilers must be available for the languages used.


The Object Management Group (OMG), a consortium of many influential computer companies has published the Common Object Request Broker Architecture (CORBA) standard for distributed object systems.

It has the attributes we want except for the simplicity (it is rather complex) and requires stub compilers for different languages.

At the time of the creation of the Broker, there were no good free implementations of CORBA, and the commercial implementations were very expensive. We also wanted to be able to freely distribute our client applications without licensing considerations.

Platform Specific Solutions (ActiveX, OpenDoc, ...)

There are a number of commercial systems available, but they build on proprietary technology, and are not available on the range of platforms we wanted (at least HPUX, Linux and Windows.)

Programming Language Specific Solutions (Java RMI)

Other potentially good solutions are limited to one or a few programming languages. One example is Java Remote Method Invocation (RMI).


There are also so-called blackboard systems such as the Open Agent Architecture (OAA) developed at SRI International's Artificial Intelligence Center. These have a central "blackboard" where software agents can place queries, or pick up queries they can answer.

These architectures provide more functionality than we need.

Previous: Design Goals, Up: The Broker, Next: The Chosen Architecture

© Copyright 1997 Erland Lewin and the members of the Center for Speech Technology