title: Inter-Language Unification
text: # Inter-Language Unification
  
  Inter-Language Unification or ILU is a method for computer systems to exchange data, bridging differences in the way systems represent the various kinds of data. Even if two systems run on the same computer, or on identical computer hardware, many differences arise from the use of different computer languages to build the systems.
  
  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 Object Management Group's CORBA Interface Definition Language (OMG IDL), or ILU's Interface Specification Language (ISL).
  
  ## History
  
  ILU was developed as an Open Source project at the Xerox Palo Alto Research Center (Xerox PARC) from 1991 until 2000. The last release was 2.0beta1.
  
  From 1997 to 2000, ILU was used as the foundation for experimental work on a "next generation" HTTP protocol by the World Wide Web Consortium's HTTP-NG activity. As a result of this work, a particularly efficient experimental RPC protocol called "w3ng" was developed, along with a way of efficiently multiplexing a single TCP connection into multiple channels in both directions, called "w3mux". The results of the HTTP-NG experiment were presented at the 2000 World Wide Web Conference.
  
  ## Features
  
  The last release supported the programming languages C++ (Corba2 mapping), ANSI C, Python, Java, and Common Lisp. Contributed support was also available for Modula-3, Guile Scheme, and Perl 5. ILU has been installed on most flavors of UNIX (SunOS, Solaris, HP-UX, AIX, OSF, IRIX, FreeBSD, Linux, LynxOS, SCO Unix, etc.) and MS-Windows (3.1, 95, NT). It supported both threaded (POSIX, Solaris, NT, Franz ACL, PPCR, Modula-3) and event-loop (Xt, Tk, XView) operation.
  
  One of the implementation goals was to maximize compatibility with existing open standards. As a result, ILU provided support for use of the OMG CORBA IDL interface description language, and can be thought of as a CORBA ORB system (though with omissions from and extensions to the CORBA spec). ILU also included a self-contained implementation of ONC RPC, and it was possible to describe and use existing RPC services as ILU objects. ILU also included a self-contained implementation of the World Wide Web's Hypertext Transfer Protocol (HTTP), and could thus be used to implement object-oriented web browsers and servers. Communication security was provided by GSS-based context negotiation and on-the-wire encryption.
  
  