The Polylith Software Bus
Abstract
We describe a system called POLYLITH that helps programmers prepare and
interconnect mixedlanguage software components for execution in
heterogeneous environments. POLYLITH'S principal benefit is that
programmers are free to implement functional requirements separately from
their treatment of interfacing requirements; this means that once an
application has been developed for use in one execution environment (such
as a distributed network) it can be adapted for reuse in other
environments (such as a share d-memory multiprocessor) by automatic
techniques. This flexibility is provided without loss of performance.
We accomplish this by creating a new run-time organization for software.
An abstract decoupling agent, called the software toolbus, is
introduced between the system components. Heterogeneity in language and
architecture is accommodated since program units are prepared to
interface directly to the toolbus, not to other program units. Programmers
specify application structure in terms of a module interconnection
language (MIL); POLYLITH uses this specification to guide packaging
(static interfacing acti vities such as stub generation, source program
adaptation, compilation and linking). At run time, an implementation of
the toolbus abstraction may assist in message delivery, name service or
system reconfiguration.
(Also cross-referenced as UMIACS-TR-90-65)