Browse Prior Art Database

RPC Stub Size Reduction Technique: Combining Buffer-Block Code

IP.com Disclosure Number: IPCOM000112606D
Original Publication Date: 1994-Jun-01
Included in the Prior Art Database: 2005-Mar-27
Document File: 2 page(s) / 69K

Publishing Venue

IBM

Related People

Huggins, JK: AUTHOR [+4]

Abstract

The Remote Procedure Call (RPC) stubs generated by the OSF DCE IDL compiler are very large. Space efficiency (both in terms of run-time memory and DASD requirements) is a concern of users of DCE on OS/2*, AIX*, and MVS. RPC stub files contain the stub routines for the export operations of the interface. A stub routine includes three code sections: (1) stub initialization, (2) parameter un/marshalling, and (3) stub finalization and error reporting. A previous technique combines multiple stubs into a single stub routine which contains only one copy of the code section (1) and (3) shared by all operations. This method has an effect of 30-60% stub size.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

RPC Stub Size Reduction Technique:  Combining Buffer-Block Code

      The Remote Procedure Call (RPC) stubs generated by the OSF DCE
IDL compiler are very large.  Space efficiency (both in terms of
run-time memory and DASD requirements) is a concern of users of DCE
on OS/2*, AIX*, and MVS.  RPC stub files contain the stub routines
for the export operations of the interface.  A stub routine includes
three code sections: (1) stub initialization, (2) parameter
un/marshalling, and (3) stub finalization and error reporting.  A
previous technique combines multiple stubs into a single stub routine
which contains only one copy of the code section (1) and (3) shared
by all operations.  This method has an effect of 30-60% stub size.
Another technique [*]  combines multiple marshalling codes for the
parameters of the same data type in section (b) so that a single copy
of the un/marshalling code for parameters of the same type in an
operation can be shared.

      In this invention, we identify another significant code
replication in stub files and provide a new method to efficiently
share the code.  Parameters of a mutable node type (e.g., pointer to
mutable structure) are marshalled by a special Out-Of-Line (OOL)
routine generated by the IDL compiler.  For other parameters, IDL
generates in-line marshalling code or OOL routines upon request if
the parameters are complex.  For any OOL parameters, whether by
default or by option, the compiler will produce a code sequence which
performs buffer initialization before calling the OOL routine, and
performs a buffer clean-up afterwards.  The buffer initialization and
the clean-up code surrounding the calls to the OOL routines are
identical in every instance.  These two blocks contain about 20 lines
of code.  When an interface is more sophisti...