| E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997. |
.... optimizations: Conventional ORB endsystems incur significant throughput [54] and latency [55] overhead, as well as exhibiting many priority inversions and sources of non determinism [8] These overheads stem from (1) non optimized presentation layers that copy and touch data excessively [56] and overflow processor caches [57] 2) internal buffering strategies that produce non uniform behavior for different message sizes [58] 3) inefficient demultiplexing and dispatching algorithms [59] 4) long chains of intra ORB virtual method calls [54] and (5) lack of integration with ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....stubs and skeletons written using a particular programming language, such as C or Java. In addition to providing programming language and platform transparency, an IDL compiler eliminates common sources of network programming errors and provides opportunities for automated compiler optimizations [5]. Traditionally, the stubs and skeletons generated by an IDL compiler are fixed, i.e. the code emitted by the IDL compiler is determined at translation time. This design shields application developers from the tedious and error prone network programming details needed to transmit client ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....skeletons that are generated automatically in an application programming language, such as C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [24]. Object Adapter: An Object Adapter is a composite component that associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. Object Adapters enable ORBs ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....In turn, this increases the footprint of the generated C code because TAO s IDL compiler creates stubs for each operation in the IDL interface. Forces: There is a tradeoff between code size and performance [29] In general, stubs could inline all the code required to complete their task [30]. However, inlining can cause unacceptably large memory footprint. Conversely, stubs could simply pass parameter data to a shared interpreter, such as a DSI DII engine [31] In this case, however, system performance would suffer. Solution Optimized invocation helper facades: To reduce memory ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....stubs and skeletons written using a particular programming language, such as C or Java. In addition to providing programming language and platform transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [6]. Traditionally, the stubs and skeletons generated by an OMG IDL compiler are fixed, i.e. the code emitted by the IDL compiler is determined at translation time. This design shields application developers from tedious network programming details needed to transmit client operation invocations to ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....skeletons that are generated automatically in an application programming language, such as C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [17]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time, which is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and response ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....skeletons that are generated automatically in an application programming language, such as C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [29]. Object Adapter: An Object Adapter is a composite component that associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. Object Adapters enable ORBs ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
.... and presentation layer conversions (particularly for passing richly typed data (e.g. structs) Eliminating the demultiplexing overhead requires delayered strategies and fast, flexible message demultiplexing [15] Eliminating the presentation layer overhead requires optimized stub generators [16, 17] for richlytyped data. # Demultiplexing overhead The Orbix demultiplexing performs worse than VisiBroker demultiplexing since Orbix uses a linear search strategy based on string comparisons for operation demultiplexing. In addition, due to an open TCP connection for every object reference, Orbix ....
....interfaces written in an IDL (such as Sun RPC XDR [29] DCE NDR,orCORBA CDR [2] to other forms such as a network wire format. Eliminating the overhead of presentation layer conversions requires highly optimized stub compilers (e.g. Universal Stub Compiler [16] and the Flick IDL compiler [17]. The generated stub code must make an optimal tradeoff between compiled code (which is efficient, but large in size) and interpreted code (which is slow, but compact) 22] Our earlier results [5, 6] have presented detailed measurements of presentation layer overhead for transmitting richlytyped ....
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI),Las Vegas, NV, June 1997, ACM.
....IDL compiler automatically transforms OMG IDL definitions into an application programming language like C or Java. In addition to providing language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [5]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time. This flexibility is useful when an application has no compile time knowledge of the interface it is accessing. The DII also allows clients to make deferred synchronous calls, which decouple the request ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....skeletons that are generated automatically in an application programming language, such as C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [4]. Object Adapter: An Object Adapter is a composite component that associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. Object Adapters enable ORBs ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....automatically transforms OMG IDL definitions into an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [6]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time. This flexibility is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and ....
.... ####################### ####################### #################### ###### ###### # ################# # # ###### ###### Figure 2: Sources of Latency and Priority Inversion in Conventional ORBs overheads stem from (1) non optimized presentation layers that copy and touch data excessively [6] and overflow processor caches [18] 2) internal buffering strategies that produce non uniform behavior for different message sizes [19] 3) inefficient demultiplexing and dispatching algorithms [20] 4) long chains of intra ORB virtual method calls [21] and (5) lack of integration with ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI),(LasVegas,NV),ACM,June 1997.
....skeletons that are generated automatically in an application programming language, such as C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [4]. Object Adapter: An Object Adapter is a composite component that associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. Object Adapters enable ORBs ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....that are generated automatically in an application programming language, such as C or Java. In addition to providing pro 8 gramming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations (Eide et al. 1997). Object Adapter: An Object Adapter is a composite component that associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. Object Adapters enable ORBs ....
Eide, E., K. Frei, B. Ford, J. Lepreau, and G. Lindstrom: 1997, `Flick: A Flexible, Optimizing IDL Compiler'. In: Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI). Las Vegas, NV.
....is unnecessary for user level networking. Some of our optimizations are similar to the buffer caching and aggregation used in [D93] although they dealt with additional cross domain issues. The second class of marshaling optimizations applies known compiler transformations to stub generation [E97][Mu98] Such optimizations are essentially orthogonal to our work. 7. Conclusions We have demonstrated an effective approach to reducing round trip latencies and increasing application bandwidth for a commercial distributed object system over user level networking. Just as high speed networks ....
E. Eide et al., "Flick: A flexible, optimizing IDL compiler," in Proc. ACM SIGPLAN'97 Conf. On Programming Language Design and Implementation (PLDI), pp. 44-56, June 1997.
....a broad interface desirable, as discussed at length in [22] this broad IPC interface is rather unwieldy for a low level user such as the netipc system. However, much of this interface is hidden from the application level programmer who writes to an RPC interface and uses the Flick IDL compiler [23]. 5.2.1 Fluke IPC flavors The Fluke IPC interface separates the three different flavors of messaging semantics provided by the IPC architecture. Providing different messaging semantics allows applications to choose the messaging semantics best suited to their particular needs. It also solved ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A flexible, optimizing IDL compiler," in Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, June 1997.
....and network resources are temporarily unavailable. ffl Lack of performance optimizations: Existing ORBs incur significant throughput [7] and latency [11] overhead. These overheads stem from non optimized presentation layer conversions and monolithic presentation code that copies data excessively [12] and overflows processor caches [13] internal message buffering strategies that produce non uniform behavior for different message sizes [14] inefficient demultiplexing and dispatching algorithms [15] long chains of intra ORB virtual method calls [16] and lack of integration with underlying ....
....In contrast, interpreted marshaling code is slower, but more compact. Section 2. 5 outlines how TAO supports worst case guarantees for both interpreted and compiled marshaling operations via a highly optimized GIOP protocol engine that contains a number of innovative compiler techniques [12] and optimization principles [13] Optimized memory management: On modern RISC hardware, data copying consumes a significant amount of CPU, memory, and I O bus resources. Likewise, dynamic memory management incurs a significant performance penalty due to heap fragmentation and locking overhead. ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....and skeletons that are generated automatically in an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [3]. Object Adapter: An Object Adapter associates servants with objects, creates object references, demultiplexes incoming requests to servants, and collaborates with the IDL skeleton to dispatch the appropriate operation upcall on a servant. CORBA 2.2 portability enhancements [1] define the ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....Moreover, depending on the data type, it is 2 to 4. 5 times faster than ORBs when using the dynamic skeleton interface (DSI) 17] In addition, the memory footprint of TAO s stubs skeletons is substantially (i.e. 40 ) smaller than stubs skeletons generated by other optimizing IDL compilers [18]. D. Paper organization This paper is organized as follows: Section II outlines the CORBA reference model, the GIOP IIOP interoperability protocols, SunSoft IIOP, and TAO; Section III presents the results of TAO s performance optimizations on the SunSoft IIOP interpreter; Section IV presents the ....
....in a sequence may not have the same size. For instance, a sequence of Anys or structs with string fields may have elements with variable sizes. In such cases, this optimization will not apply. For the BinStruct case described in this paper, however, a highly optimizing IDL compiler, such as Flick [18], could determine that all sequence elements have identical sizes. It could then generate stub and skeleton code that can eliminate gratuitous waste. B.4.c Solution 2: convert generic methods into special purpose, efficient ones. To further reduce method call overhead, and to decrease the ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
.... and presentation layer conversions (particularly for passing richlytyped data (e.g. structs) Eliminating the demultiplexing overhead requires delayered strategies and fast, flexible message demultiplexing [15] Eliminating the presentation layer overhead requires optimized stub generators [16] [17] for richly typed data. ffl Demultiplexing overhead. The Orbix demultiplexing performs worse than VisiBroker demultiplexing since Orbix uses a linear search strategy based on string comparisons for operation demultiplexing. In addition, due to an open tcp connection for every object reference, ....
....interfaces written in an idl (such as Sun rpc XDR [29] dce ndr, or corba cdr [2] to other forms such as a network wire format. Eliminating the overhead of presentation layer conversions requires highly optimized stub compilers (e.g. Universal Stub Compiler [16] and the Flick idl compiler [17]. The generated stub code must make an optimal tradeoff between compiled code (which is efficient, but large in size) and interpreted code (which is slow, but compact) 22] Our earlier results [5] 6] have presented detailed measurements of presentation layer overhead for transmitting ....
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), Las Vegas, NV, June 1997, ACM.
....data that is meaningful to an application. An IDL compiler automatically transforms OMG IDL definitions into an application programming language like C or Java. IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [16]. Dynamic Invocation Interface (DII) The DII allows a client to access the underlying request transport mechanisms provided by the ORB Core. The DII is useful when an application has no compile time knowledge of the interface it is accessing. The DII also allows clients to make deferred ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....and skeletons that are generated automatically in an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [6]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time, which is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and response ....
....Conventional ORB endsystems incur significant throughput [11] and latency [16] overhead, as well as exhibiting many priority inversions and sources of non determinism [17] as shown in Figure 2. These overheads stem from (1) non optimized presentation layers that copy and touch data excessively [6] and overflow processor caches [18] 2) internal buffering strategies that produce non uniform behavior for different message sizes [19] 3) inefficient demultiplexing and dispatching algorithms [20] 4) long chains of intra ORB virtual method calls [21] and (5) OS KERNEL OS KERNEL OS I OS ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....to an application. The transformation between OMG IDL definitions and an application programming language like C or Java is automated by an IDL compiler. IDL compilers eliminate common sources of network programming errors and increase opportunities for automated compiler optimizations [9]. ffl Dynamic Invocation Interface (DII) The DII allows a client to directly access the underlying request transport mechanisms provided by the ORB Core. The DII is useful when an application has no compile time knowledge of the interface it is accessing. Unlike IDL stubs, which only allow twoway ....
....octet for twoway operations. These figures reveal that as the sender buffer size increases, the marshaling and data copying overhead also grows [5, 6] thereby increasing latency. These results demonstrate the benefit of using more efficient buffer management techniques and highly optimized stubs [9] to reduce the presentation conversion and data copying overhead. Oneway latency The oneway SII latencies for Orbix and VisiBroker for octets are comparable. However, as depicted in Figures 12 through 16, due to inefficient internal buffering strategies, there is substantial variance in latency. ....
[Article contains additional citation context not shown here]
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), Las Vegas, NV, June 1997, ACM.
....server. For embedded applications, particularly ones with real time QoS requirements, it is essential for ORB operation demultiplexing to be efficient, predictable, and scalable. Stubs skeletons that use compiled (de)marshaling can achieve high efficiency at the cost of increased memory footprint [4]. Conversely, interpretive (de)marshaling is useful for applications that can trade less efficiency for a smaller memory footprint [5] Since neither approach is optimal for all applications, an IDL compiler for embedded systems should be capable of producing stubs and skeletons that can use ....
....[12] According to the SunSoft IIOP developers, interpretive marshaling is preferable since it decreases code size and increases the likelihood of remaining in the processor cache. Our goal is to generate efficient stubs and skeletons by extending optimizations provided in USC [13] and Flick [4], which is a flexible, optimizing IDL compiler. Flick uses an innovative scheme where intermediate representations guide the generation of optimized stubs. In addition, due to the intermediate stages, it is possible for Flick to map different IDLs (e.g. CORBA IDL, ONC RPC IDL, MIG IDL) to a ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....and skeletons that are generated automatically in an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [6]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time, which is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and response ....
.... 6) REQUEST DISPATCHING 7) SERVER DEMARSHALING 8) METHOD EXECUTION OBJECT OBJECT ( SERVANTSERVANT) 8 8 CLIENT CLIENT Figure 2: Sources of Latency and Priority Inversion in Conventional ORBs overheads stem from (1) non optimized presentation layers that copy and touch data excessively [6] and overflow processor caches [18] 2) internal buffering strategies that produce non uniform behavior for different message sizes [19] 3) inefficient demultiplexing and dispatching algorithms [20] 4) long chains of intra ORB virtual method calls [21] and (5) lack of integration with ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....and skeletons that are generated automatically in an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [5]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time, which is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and response ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....Moreover, depending on the data type, it is 2 to 4. 5 times faster than ORBs when using the dynamic skeleton interface (DSI) 17] In addition, the memory footprint of TAO s stubs skeletons is substantially (i.e. 40 ) smaller than stubs skeletons generated by other optimizing IDL compilers [18]. D. Paper organization This paper is organized as follows: Section II outlines the CORBA reference model, the GIOP IIOP interoperability protocols, SunSoft IIOP, and TAO; Section III presents the results of TAO s performance optimizations on the SunSoft IIOP interpreter; Section IV presents the ....
....may not have the same size. For instance, a sequence of Anys or structs with string fields may have elements with vari 12 able sizes. In such cases, this optimization will not apply. For the BinStruct case described in this paper, however, a highly optimizing IDL compiler, such as Flick [18], could determine that all sequence elements have identical sizes. It could then generate stub and skeleton code that can eliminate gratuitous waste. B.4.c Solution 2: convert generic methods into special purpose, efficient ones. To further reduce method call overhead, and to decrease the ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....marshaling to achieve better performance. This work was done in the context of the ASN.1 BER encoding [16] Our TAO IDL compiler can also generate compiled stubs and skeletons. Our goal is to generate efficient stubs and skeletons by extending optimizations provided in USC [17] and Flick [18], which is a flexible, optimizing IDL compiler. Flick uses an innovative scheme where intermediate representations guide the generation of optimized stubs. In addition, due to the intermediate stages, it is possible for Flick to map different IDLs (e.g. CORBA IDL, ONC RPC IDL, MIG IDL) to a ....
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), Las Vegas, NV, June 1997, ACM.
....and skeletons that are generated automatically in an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [15]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time, which is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and response ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....of GNOME. The free C implementations of CORBA all either require too much memory to compile and generate huge stubs, or are difficult to port. Work has thus begun on the ORBit project, the goal of which is to produce a small and efficient C ORB that works with Flick s optimizing stub compiler[5]. We are planning to use CORBA in two main situations: automation and the GNOME document model. The GNOME document model is currently under discussion and design and is going to provide a framework similar to OLE2[14] for free systems. 2.9 Extension languages In addition to exporting ....
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, Gary Lindstrom. "Flick: A Flexible, Optimizing IDL Compiler". Appeared in the Proceedings PLDI '97: http://flux.cs.utah.edu/flux/flick/
....data that is meaningful to an application. An IDL compiler automatically transforms OMG IDL definitions into an application programming language like C or Java. IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [12]. Dynamic Invocation Interface (DII) The DII allows a client to access the underlying request transport mechanisms provided by the ORB Core. The DII is useful when an application has no compile time knowledge of the interface it is accessing. The DII also allows clients to make deferred ....
....in a sequence may not have the same size. For instance, a sequence of Anys or structs with string fields may have elements with variable sizes. In such cases, this optimization will not apply. For the BinStruct case described in this paper, however, a highly optimizing IDL compiler, such as Flick [12] could determine that all sequence elements have identical sizes. It could then generate stub and skeleton code that can eliminate gratuitous waste. Solution 2: convert generic methods into special purpose, efficient ones: To further reduce method call overhead, and to decrease the potential for ....
[Article contains additional citation context not shown here]
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....automatically transforms OMG IDL definitions into an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [7]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time. This flexibility is useful when an application has no compile time knowledge of the interface it is accessing. The DII also allows clients to make deferred synchronous calls, which decouple the request ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
....to an application. The transformation between OMG IDL definitions and an application programming language like C or Java is automated by an IDL compiler. IDL compilers eliminate common sources of network programming errors and increase opportunities for automated compiler optimizations [20]. ffl Dynamic Invocation Interface (DII) The DII allows a client to directly access the underlying request transport mechanisms provided by the ORB Core. The DII is useful when an application has no compile time knowledge of the interface it is accessing. Unlike IDL stubs, which only allow ....
.... DEMARSHALING SERVER DEMARSHALING 8) 8) METHOD EXECUTION METHOD EXECUTION SERVANT SERVANT 8 8 Figure 2: Sources of Latency and Priority Inversion in Conventional ORBs heads stem from (1) non optimized presentation layer conversions and monolithic presentation code that copies data excessively [20] and overflows processor caches [27] 2) internal message buffering strategies that produce non uniform behavior for different message sizes [28] 3) inefficient demultiplexing and dispatching algorithms [12] 4) long chains of intra ORB virtual method calls [29] and (5) lack of integration ....
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
.... and presentation layer conversions (particularly for passing richly typed data (e.g. structs) Eliminating the demultiplexing overhead requires delayered strategies and fast, flexible message demultiplexing [15] Eliminating the presentation layer overhead requires optimized stub generators [16, 17] for richlytyped data. ffl Demultiplexing overhead The Orbix demultiplexing performs worse than VisiBroker demultiplexing since Orbix uses a linear search strategy based on string comparisons for operation demultiplexing. In addition, due to an open TCP connection for every object reference, ....
....interfaces written in an IDL (such as Sun RPC XDR [29] DCE NDR, or CORBA CDR [2] to other forms such as a network wire format. Eliminating the overhead of presentation layer conversions requires highly optimized stub compilers (e.g. Universal Stub Compiler [16] and the Flick IDL compiler [17]. The generated stub code must make an optimal tradeoff between compiled code (which is efficient, but large in size) and interpreted code (which is slow, but compact) 22] Our earlier results [5, 6] have presented detailed measurements of presentation layer overhead for transmitting richlytyped ....
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), Las Vegas, NV, June 1997, ACM.
....automatically transforms OMG IDL definitions into an application programming language like C or Java. In addition to providing programming language transparency, IDL compilers eliminate common sources of network programming errors and provide opportunities for automated compiler optimizations [10]. Dynamic Invocation Interface (DII) The DII allows clients to generate requests at run time. This flexibility is useful when an application has no compile time knowledge of the interface it accesses. The DII also allows clients to make deferred synchronous calls, which decouple the request and ....
....octet for twoway operations. These figures reveal that as the sender buffer size increases, the marshaling and data copying overhead also grows [5, 6] thereby increasing latency. These results demonstrate the benefit of using more efficient buffer management techniques and highly optimized stubs [10] to reduce the presentation conversion and data copying overhead. Oneway latency The oneway SII latencies for Orbix and VisiBroker for octets are comparable. However, as depicted in Figures 12 through 16, due to inefficient internal buffering strategies, there is substantial variance in latency. ....
[Article contains additional citation context not shown here]
Eric Eide, Kevin Frei, Bryan Ford, Jay Lepreau, and Gary Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), Las Vegas, NV, June 1997, ACM.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI),(LasVegas,NV),ACM,June 1997.
No context found.
E. Eide et al., "Flick: A Flexible, Optimizing IDL Compiler," Proc. ACM SIGPLAN `97: Conf. Programming Language Design and Implementation (PLDI), ACM Press, New York, June 1997.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
No context found.
E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom, "Flick: A Flexible, Optimizing IDL Compiler," in Proceedings of ACM SIGPLAN '97 Conference on Programming Language Design and Implementation (PLDI), (Las Vegas, NV), ACM, June 1997.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC