ABSTRACT
An interface definition language (IDL) is a nontraditional language for describing interfaces between software components. IDL compilers generate "stubs" that provide separate communicating processes with the abstraction of local object invocation or procedure call. High-quality stub generation is essential for applications to benefit from component-based designs, whether the components reside on a single computer or on multiple networked hosts. Typical IDL compilers, however, do little code optimization, incorrectly assuming that interprocess communication is always the primary bottleneck. More generally, typical IDL compilers are "rigid" and limited to supporting only a single IDL, a fixed mapping onto a target language, and a narrow range of data encodings and transport mechanisms.Flick, our new IDL compiler, is based on the insight that IDLs are true languages amenable to modern compilation techniques. Flick exploits concepts from traditional programming language compilers to bring both flexibility and optimization to the domain of IDL compilation. Through the use of carefully chosen intermediate representations, Flick supports multiple IDLs, diverse data encodings, multiple transport mechanisms, and applies numerous optimizations to all of the code it generates. Our experiments show that Flick-generated stubs marshal data between 2 and 17 times faster than stubs produced by traditional IDL compilers, and on today's generic operating systems, increase end-to-end throughput by factors between 1.2 and 3.7.
- 1.ACCETTA, M., BARON, R., BOLOSKY, W., GOLUB, D., RASHID, R., TEVANIAN, A., AND YOUNG, M. Mach: A new kernel foundation for UNIX development. In Proc. of the Summer 1986 USENIX Conf. (June 1986), pp. 93-112.Google Scholar
- 2.AUERBACH, J. S., AND RUSSELL, J. R. The Concert signature representation: IDL as an intermediate language, in Proc. of the Workshop on Interface Definition Languages (Jan. 1994), pp. 1-12. Google ScholarDigital Library
- 3.BiRRELL, A. D., AND NELSON, B. J. Implementing remote procedure calls. A CM Transactions on Computer Systems 2, 1 (Feb. 1984). Google ScholarDigital Library
- 4.BODEN, N., COHEN, D., FELDERMAN, R., KU- LAWIK, A., SEITZ, C., SEIZOVIC, J., AND SU, W.- K. Myrinet- A gigabit-per-second local-area network. IEEE MICRO 15, 1 (February 1995), 29-36. Google ScholarDigital Library
- 5.CLARK, D. D., AND TENNENHOUSE, D. L. Architectural considerations for a new generation of protocols. In Proc. of the SIGCOMM '90 Symp. (1990), pp. 200- 208. Google ScholarDigital Library
- 6.DRUSCHEL, P., DAVIE, B. S., AND PETERSON, L. L. Experiences with a high-speed network adapter: A software perspective. In Proc. of the SIGCOMM '94 Syrnp. (1994), pp. 2-13. Google ScholarDigital Library
- 7.EICKEN, T. v., CULLER, D. E., GOLDSTEIN, S. C., AND SCHAUSER, K.E. Active messages: A mechanism for integrated communication and computation. In Proc. of the 19th International Symp. on Computer Architecture (May 1992), pp. 256--266. Google ScholarDigital Library
- 8.FORD, B., HIBLER, M., AND LEPREAU, J. Using annotated interface definitions to optimize RPC. In Proc. of the 15th A CM Symp. on Operating Systems Principles (1995), p. 232. Poster. Google ScholarDigital Library
- 9.FORD, B., HIBLER, M., AND LEPREAU, J. Using annotated interface definitions to optimize RPC. Tech. Rep. UUCS-95-014, University of Utah, Mar. 1995.Google ScholarDigital Library
- 10.FORD, B., HIBLER, M., LEPREAU, J., TULLMANN, P., BACK, G., AND CLAWSON, S. Microkernels meet recursive virtual machines. In Proc. of the Second Syrup. on Operating Systems Design and Implementation (Seattle, WA, Oct. 1996), USENIX Assoc., pp. 137-151. Google ScholarDigital Library
- 11.GOKHALE, A. Personal communication, Mar. 1997.Google Scholar
- 12.GOKHALE, A., AND SCHMiDT, D. C. Measuring the performance of communication middleware on highspeed networks. Computer Communication Review 26, 4 (Oct. 1996). Google ScholarDigital Library
- 13.GOKHALE, A., AND SCHMiDT, D. C. Optimizing the performance of the CORBA Internet Inter-ORB Protocol over ATM. Tech. Pep. WUCS-97-09, Washington University Department of Computer Science, St. Louis, MO, 1997.Google Scholar
- 14.HOSCHKA, P., AND HUITEMA, C. Automatic generation of optimized code for marshalling routines. In International Working Conference on Upper Layer Protocols, Architectures and Applications (Barcelona, Spain, 1994), M. Medina and N. Borenstein, Eds., IFIP TC6/WG6.5, North-Holland, pp. 131-146. Google ScholarDigital Library
- 15.JANSSEN, B., AND SPREITZER, M. ILU 2.0alpha8 Reference Manual. Xerox Corporation, May 1996. ftp://ftp, parc. xerox, com/pub/ilu/ilu, html.Google Scholar
- 16.McVoY, L., AND STAELIN, C. Imbench: Portable tools for performance analysis. In Proc. of 1996 USENIX Conf. (Jan. 1996). Google ScholarDigital Library
- 17.NETBULA, LLC. PowerRPC, Version 1.0, 1996. http: //www. netbula, com/product a/powerrpc/.Google Scholar
- 18.OBJECT MANAGEMENT GROUP. The Common Object Request Broker: Architecture and Specification, 2.0 ed., July 1995.Google Scholar
- 19.O'MALLEY, S., PROEBSTING, T. A., AND MONTZ, A.B. USC: A universal stub compiler. In Proceedings of the Conference on Communications Architectures, Protocols a~wl Applications (SIGCOMM) (London, UK, Aug. 1994), pp. 295---306. Google ScholarDigital Library
- 20.OPEN SOFTWARE FOUNDATION AND CARNEGIE MELLON UNIVERSITY. Mach 3 Server Writer~ Guide. Cambridge, MA, Jan. 1992.Google Scholar
- 21.SCHMIDT, D. C., HARRISON, T., AND AL-SHAER, E. Object-oriented components for high-speed network programming. In Proceedings of the First Conference on Object-Oriented Technologies and Systems (Monterey, CA, June 1995), USENIX. Google ScholarDigital Library
- 22.SHAO, Z., AND APPEL, A. A type-based compiler for standard ML. In Proc. ACM SIGPLAN Symp. on Programming Language Design and Implementation (June 1995), pp. 116-129. Google ScholarDigital Library
- 23.SRINIVASAN, R. RPC: Remote procedure call protocol specification version 2. Tech. Rep. RFC 1831, Sun Microsystems, Inc., Aug. 1995. Google ScholarDigital Library
- 24.SRiNIVASAN, R. XDR: External data representation standard. Tech. Rep. RFC 1832, Sun Microsystems, Inc., Aug. 1995. Google ScholarDigital Library
- 25.SuN MiCROSYSXEMS, INC. ONC+ Developer~ Guide, Nov. 1995.Google Scholar
- 26.SUNSOFT, INC. SunSoft Inter-ORB Engine, Release 1.1, June 1995. ftp://ftp.otag.org/pub/ interop/iiop, tar. Z.Google Scholar
Index Terms
- Flick: a flexible, optimizing IDL compiler
Recommendations
Flick: a flexible, optimizing IDL compiler
An interface definition language (IDL) is a nontraditional language for describing interfaces between software components. IDL compilers generate "stubs" that provide separate communicating processes with the abstraction of local object invocation or ...
Towards Real-Time Fault-Tolerant CORBA Middleware
An increasing number of applications are being developed using Distributed Object Computing (DOC) middleware, such as CORBA. Many of these applications require the underlying middleware, operating systems, and networks to provide dependable end-to-end ...
An improved IDL compiler for optimizing CORBA applications
SIGAda '06: Proceedings of the 2006 annual ACM SIGAda international conference on AdaBuilding CORBA distributed applications for embedded and real-time systems has brought a number of requirements to be satisfied (small footprint, determinism...). A large part of the distributed application code is generated automatically from its IDL (...
Comments