ILU
Encyclopedia
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 space
s, 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).
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
.
s 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 standard
s. 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 browser
s and servers. Communication security was provided by GSS-based context negotiation and on-the-wire encryption.
The object
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...
interfaces
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
provided by ILU hide implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...
distinctions between different languages, between different address space
Address space
In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.- Overview :...
s, and between operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
types. ILU can be used to build multi-lingual object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
libraries ("class libraries") with well-specified language-independent interfaces. It can also be used to implement distributed systems
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
. 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
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...
CORBA
Common Object Request Broker Architecture
The Common Object Request Broker Architecture is a standard defined by the Object Management Group that enables software components written in multiple computer languages and running on multiple computers to work together .- Overview:CORBA enables separate pieces of software written in different...
Interface Definition Language
Interface description language
An interface description language , or IDL for short, is a specification language used to describe a software component's interface...
(OMG IDL), or ILU's Interface Specification Language
Specification language
A specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis, requirements analysis and systems design.Specification...
(ISL).
History
ILU was developed as an Open SourceOpen source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
project at the Xerox
Xerox
Xerox Corporation is an American multinational document management corporation that produced and sells a range of color and black-and-white printers, multifunction systems, photo copiers, digital production printing presses, and related consulting services and supplies...
Palo Alto
Palo Alto, California
Palo Alto is a California charter city located in the northwest corner of Santa Clara County, in the San Francisco Bay Area of California, United States. The city shares its borders with East Palo Alto, Mountain View, Los Altos, Los Altos Hills, Stanford, Portola Valley, and Menlo Park. It is...
Research Center (Xerox PARC
Xerox PARC
PARC , formerly Xerox PARC, is a research and co-development company in Palo Alto, California, with a distinguished reputation for its contributions to information technology and hardware systems....
) 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
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....
by the World Wide Web Consortium
World Wide Web Consortium
The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...
's HTTP-NG activity. As a result of this work, a particularly efficient experimental RPC
Remote procedure call
In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...
protocol called "w3ng" was developed, along with a way of efficiently multiplexing a single TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
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
World Wide Web Conference
The International World Wide Web Conference is a yearly international academic conference on the topic of the future direction of the World Wide Web...
.
Features
The last release supported the programming languageProgramming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
(Corba2 mapping), ANSI C
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.-History and outlook:The first...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, and Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
. Contributed support was also available for Modula-3
Modula-3
In computer science, Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles it has not been adopted widely in industry...
, Guile Scheme
GNU Guile
GNU Guile is an interpreter/virtual machine for the Scheme programming language. It was first released in 1993. Guile includes modularized extensions for POSIX system calls, APL array functionality, and others packaged as an object library...
, and Perl 5. ILU has been installed on most flavors of UNIX (SunOS
SunOS
SunOS is a version of the Unix operating system developed by Sun Microsystems for their workstation and server computer systems. The SunOS name is usually only used to refer to versions 1.0 to 4.1.4 of SunOS...
, Solaris, HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...
, AIX, OSF
Open Software Foundation
The Open Software Foundation was a not-for-profit organization founded in 1988 under the U.S. National Cooperative Research Act of 1984 to create an open standard for an implementation of the UNIX operating system.-History:...
, IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...
, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, LynxOS
LynxOS
The LynxOS RTOS is a Unix-like real-time operating system from LynuxWorks . Sometimes known as the Lynx Operating System, LynxOS features full POSIX conformance and, more recently, Linux compatibility...
, SCO Unix
SCO OpenServer
SCO OpenServer, previously SCO UNIX and SCO Open Desktop , is, misleadingly, a closed source version of the Unix computer operating system developed by Santa Cruz Operation and now maintained by the SCO Group....
, etc.) and MS-Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
(3.1, 95, NT). It supported both threaded (POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
, Solaris, NT, Franz ACL, PPCR, Modula-3) and event-loop (Xt
Intrinsics
X Toolkit Intrinsics is a library used in the X Window System. More precisely, it is a library that uses the low-level Xlib library and provides a friendly API to develop X11 software with graphical widgets...
, Tk, XView
XView
XView is a widget toolkit from Sun Microsystems introduced in 1988. It provides an OPEN LOOK user interface for X Window System applications, with an object-oriented application programming interface for the C programming language...
) operation.
One of the implementation goals was to maximize compatibility with existing open standard
Open standard
An open standard is a standard that is publicly available and has various rights to use associated with it, and may also have various properties of how it was designed . There is no single definition and interpretations vary with usage....
s. 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
Open Network Computing Remote Procedure Call
Open Network Computing Remote Procedure Call is a widely deployed remote procedure call system. ONC was originally developed by Sun Microsystems as part of their Network File System project, and is sometimes referred to as Sun ONC or Sun 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 browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
s and servers. Communication security was provided by GSS-based context negotiation and on-the-wire encryption.