Multilanguage interoperability in distributed systems

  • Authors:
  • Mark J. Maybee;Dennis M. Heimbigner;Leon J. Osterweil

  • Affiliations:
  • Department of Computer Science, University of Colorado, Boulder, CO;Department of Computer Science, University of Colorado, Boulder, CO;Department of Computer Science, University of Massachusetts, Amherst, MA

  • Venue:
  • Proceedings of the 18th international conference on Software engineering
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Q system provides interoperability support for multilingual, heterogeneous component-based software systems. Initial development of Q began in 1988, and was driven by the very pragmatic need for a communication mechanism between a client program written in Ada and a server written in C. The initial design was driven by language features present in C, but not in Ada, or vice-versa. In time our needs and aspirations grew and Q evolved to support other languages, such as C++, Lisp, Prolog, Java, and Tcl. As a result of pervasive usage by the Arcadia SDE research project, usage levels and modes of the Q system grew and so more emphasis was placed upon portability, reliability, and performance. In that context we identified specific ways in which programming language support systems can directly impede effective interoperability. This necessitated extensive changes to both our conceptual model and our implementation of the Q system. We also discovered the need to support modes of interoperability far more complex than the usual client-server. The continued evolution of Q has allowed the architecture of Arcadia software to become highly distributed and component-based, exploiting components written in a variety of languages. In addition to becoming an Arcadia project mainstay, and has also been made available to over 100 other sites, and it is currently in use in a variety of other projects. This paper summarizes key points that have been learned from this considerable base of experience.