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
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
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
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
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