Representation of different software components performing a hypothetical holiday reservation with UML
An interface description language or interface definition language (IDL) is a generic term for a computer programming language that lets a program or object written in one programming language communicate with another program written in an unknown programming language. IDLs are usually used to describe data types and interfaces in a language-independent way, for example, between those written in C++ and those written in Java.
IDLs are commonly used in remote procedure call software. In these cases, the machines at either end of the link may be using different operating systems and computer languages. IDLs offer a bridge between the two different operating systems.
AIDL: Java-based, for Android; supports local and remote procedure calls; can be accessed from native applications by calling through Java Native Interface (JNI)