A Method for Enabling Cross Platform Function Calls

We describe a new method for enabling cross platform function calls. Using our methodology the cost of providing M libraries to N runtimes is (N + M) rather than (N * M). The method relies on a portable, introspective data structure to transport invocation requests and an IDL which provides enough information to allow automated data marshalling between the portable format and the runtimes of the client and server.

The method, which is called ApplicationWeb, requires one infrastructure component per runtime and one artifact per library exposed. It permits exposure of functions with complex signatures (including output arguments), and requires writing no library specific code.

Our implementation has been used to provide function call access to libraries, such as LAPACK1 and COIN2, between runtimes including C, JavaTM , C++, FORTRAN, R3, perl, Visual Basic® , zLinux4, *nix and Windows®

By: Leonard Berman; David Jensen

Published in: RC23581 in 2005


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to reports@us.ibm.com .