Flexible IDL Compilation for Complex Communication Patterns

Eric Eide, James L. Simister, Tim Stack, and Jay Lepreau

University of Utah Department of Computer Science

50 South Central Campus Drive, Room 3190
Salt Lake City, Utah 84112-9205 USA
Tel: +1 801 585 3271; Fax: +1 801 585 3743
E-mail: {eeide,simister,stack,lepreau}@cs.utah.edu
URL: http://www.cs.utah.edu/flux/


Distributed applications are complex by nature, so it is essential that there be effective software development tools to aid in the construction of these programs. Commonplace ``middleware'' tools, however, often impose a tradeoff between programmer productivity and application performance. For instance, many CORBA IDL compilers generate code that is too slow for high-performance systems. More importantly, these compilers provide inadequate support for sophisticated patterns of communication. We believe that these problems can be overcome, thus making IDL compilers and similar middleware tools useful for a broader range of systems.

To this end we have implemented Flick, a flexible and optimizing IDL compiler, and are using it to produce specialized high-performance code for complex distributed applications. Flick can produce specially ``decomposed'' stubs that encapsulate different aspects of communication in separate functions, thus providing application programmers with fine-grain control over all messages. The design of our decomposed stubs was inspired by the requirements of a particular distributed application called Khazana, and in this paper we describe our experience to date in refitting Khazana with Flick-generated stubs. We believe that the special IDL compilation techniques developed for Khazana will be useful in other applications with similar communication requirements.

Keywords: Flick, IDL compiler, interface definition language, compilation, optimization, communication patterns, middleware, CORBA

Full paper appears in Scientific Programming, volume 7, numbers 3 and 4, pages 275-287, 1999, published by IOS Press.

Last modified: Nov 3 2000