``Formal Foundations for Transparent Interoperation''
Prof. Jack C. Wileden
University of Massachusetts, Department of Computer Science
Amherst, MA 01003-4610
E-mail: wileden@cs.umass.edu
URL: http://www-ccsl.cs.umass.edu/~jack
Prof. Alan Kaplan
Clemson University, Department of Computer Science
Clemson, SC 29634-1906
E-mail: kaplan@cs.clemson.edu
URL: http://www.cs.clemson.edu/$\sim$kaplan
Introduction
Our research is directed toward developing computer science foundations, both theoretical and practical, for transparent interoperation. The primary objective of our work is to hide the boundaries between heterogeneous dat repositories or between data repositories and applications that need access to these repositories. Scientific and engineering applications increasingly depend upon software systems comprising both code and dat components that come from a wide variety of diverse sources. Hence, appropriate theoretical and practical foundations for transparent interoperation will make it easier to develop, reuse, share, and maintain scientific and engineering applications.
In the remainder of this position paper, we suggest some features that we believe are critically important to formal foundations for transparent interoperation. We also briefly discuss some initial steps that we have taken toward developing such foundations. In a companion position paper [9] we discuss the practical aspects of our work, specifically the development of a new, highly transparent approach to interoperation called PolySPIN. A collection of prototype, automated tools supporting the use of the PolySPIN approach and some experience with its application are also described here.
Toward Formal Foundations
Interoperation, already an important issue for scientific and engineering software systems, will become even more important as data generation rates continue to escalate and connectivity makes both data and code increasingly available. Unless interoperation is essentially transparent, it could become a major impediment to the development, reuse, sharing, and maintenance of scientific and engineering applications. Unfortunately, current approaches to interoperation are based on such things as standardized data interchange formats, intermediate notations for interface description, or ad hoc wrapping of data repositories and code components. None of these provide the required transparency and hence we advocate development of suitable alternatives.
Our work to date on foundations for transparent interoperation has focused on modern programming languages, complex object-oriented user-defined abstract types, and persistent objects (e.g., [4, 10]). More specifically, we have been concerned with interoperability problems in programming languages, e.g., how an application written in a particular programming language accesses data that was defined and created by an application written in a different distinct programming language. To improve our understanding and assessment of suitability of different interoperability mechanisms, we have begun to develop a taxonomy of important facets of interoperability approaches. (See [7, 2] for details.) We have also developed a formal model of name management, called Piccolo, with an operational semantics based on evolving algebras [6, 3]. This model allows for the precise specification of some formal properties and analyses of name management approaches, and hence provides a starting point for contextualized interoperation analyses. In addition, we are developing an intial formal model, based on concepts from signature matching and object-oriented type theory, on which to base reasoning about, and automated support for, cross-language type compatibility [1]. This initial formal model allows developers to precisely express compatibility relationships among object-oriented types that are defined in different programming languages.
Research Directions
Although much of our work has set in the context of programming languages, preliminary work [8] suggests that our results can contribute to development of suitable formal foundations for transparent interoperation in scientific and engineering software systems. Towards that end, we plan to extend and improve our initial models so that they can account for other crucial aspects of transparent interoperation, such as versions, evolution, and dynamic systems modification.