Multilanguage interoperability in distributed systems. Experience report
- 23 December 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 451-463
- https://doi.org/10.1109/icse.1996.493440
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.Keywords
This publication has 7 references indexed in Scilit:
- Communications in the Mercury systemPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Chiron-1: a user interface development system tailored to software environmentsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Issues encountered in building a flexible software development environmentPublished by Association for Computing Machinery (ACM) ,1992
- Language constructs for managing change in process-centered environmentsPublished by Association for Computing Machinery (ACM) ,1990
- Connecting tools using message passing in the Field environmentIEEE Software, 1990
- Mach and Matchmaker: kernel and language support for object-oriented distributed systemsPublished by Association for Computing Machinery (ACM) ,1986
- A Value Transmission Method for Abstract Data TypesACM Transactions on Programming Languages and Systems, 1982