ILU(1)

NAME
ILU - Inter-Language Unification object interface system

DESCRIPTION
The Inter-Language Unification system (ILU) is a multi-language object interface system. The object interfaces provided by ILU hide implementation distinctions between different languages, between different address spaces, and between operating system types. ILU can be used to build multi-lingual object-oriented libraries (class libraries) with well-specified language-independent interfaces. It can also be used to implement distributed systems. It can also be used to define and document interfaces between the modules of non-distributed programs. ILU interfaces can be specified in either the OMG's IDL language, or in ILU's Interface Specification Language, which contains extensions to the CORBA spec. Programming languages supported in 2.0alpha8 are ANSI C and Python; rough C++ support is also present. Operating systems supported in 2.0alpha8 are all Windows platforms with Win32 and WinSock, and all UNIX platforms with BSD sockets and minimal POSIX compliance. 2.0alpha8 supports interoperability with ONC RPC services, OMG CORBA services, World Wide Web HTTP services, and XNS Courier services. ``Plug-in'' extensibility is provided for RPC message formats, message transport schemes, URL schemes, accounting and authorization identity types, threading and event loop processing, and various other things. ILU is provided free for unrestricted use.

ILU works by having programmers or systems designers write down the interface exported by a particular program module in a programming-language neutral interface description language, called ISL. During the implementation of that module, the programmer uses an ILU tool called a stubber to produce code, in the preferred programming language, which corresponds to the API described in ISL file. This code is linked with the programmer's implementation of the module's functionality, and the ILU ``kernel'' library, to form an ILU module. Multiple ILU modules may be linked into a single executable, or the system implementor may prefer to keep each module in a separate dynamically-linked library. At run-time, the various ILU modules in the program communicate by calling back and forth through the interfaces specified in the ISL file. The ILU kernel library provides communications services between modules in different address spaces, and provides data conversion services between modules written in different programming lanuages. The ISL file also serves as system documentation of the interface for each module.

On this system, ILU is installed under /usr/local/ilu.

ENVIRONMENT VARIABLES
To use ILU, the directory /usr/local/ilu/bin should be on your PATH environment variable. If you are using the Python programming lanugage, your PYTHONPATH environment variable should include the directory /usr/local/ilu/lib. If you are using the Java programming language, the directory /usr/local/ilu/lib/javaclasses should be on your CLASSPATH environment variable, and the directory /usr/local/ilu/lib should be on your LD_LIBRARY_PATH environment variable. The environment variable ILU_DEBUG can have an effect on built-in ILU debugging messages in the kernel library; see the ILU reference manual for more information.

SEE ALSO
c++-stubber(1), lisp-stubber(1), python-stubber(1), c-stubber(1), java-stubber(1)

The ILU Reference Manual, in /usr/local/ilu/doc/manual.ps.

AUTHORS
Antony Courtney, Doug Cutting, Mark Davidson, Scott Hassan, Rob Head, Chris Jacobi, Bill Janssen, Swen Johnson, Dan Larner, Denis Severson, Bridget Spitznagel, Mike Spreitzer, Mark Stefik, Farrell Wymore, Rick Yardumian