Interface description language
An interface description language (or alternatively, interface definition language), or IDL for short, is a specification language used to describe a software component's interface. IDLs describe an interface in a language-independent way, enabling communication between software components that do not share a language – for example, between components written in C++ and components 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 systems.
Software systems based on IDLs include Sun's ONC RPC, The Open Group's Distributed Computing Environment, IBM's System Object Model, the Object Management Group's CORBA (which implements OMG IDL, an IDL based on DCE/RPC), Mozilla's XPCOM, Facebook's Thrift and WSDL for Web services.
Examples
- RSDL (RESTful Service Description Language)
- AIDL An IDL for Android remote procedure calls
- Avro IDL: An IDL for the Apache Avro system
- Etch: Cisco's Etch Cross-platform Service Description Language
- Franca IDL: the open-source Franca interface definition language
- IDL specification language: the original Interface Description Language
- JSON-WSP: a JSON Web-Service Protocol
- Microsoft Interface Definition Language (MIDL): the Microsoft extension of OMG IDL to add support for DCOM
- OMG IDL: an IDL standardized by Object Management Group and implemented in CORBA for DCE/RPC services, also selected by the W3C for exposing the DOM of XML, HTML, and CSS documents
- Open Service Interface Definitions
- Protocol Buffers: Google's IDL
- Slice: The Specification Language for ICE
- SWIG: Simplified Wrapper and Interface Generator
- Thrift: IDL from Apache. Originally developed by Facebook
- Universal Network Objects: OpenOffice.org's component model
- Web IDL: an IDL that can be used to describe interfaces that are intended to be implemented in web browsers
- WADL: Web Application Description Language
- WSDL: the Web Services Description Language
- XCB: Network protocol description language for X Window System
- XPIDL: Mozilla's Cross-Platform IDL
See also
- Component-based software engineering
- Interface-based programming
- Java Interface Definition Language
- List of computing and IT abbreviations
- Universal Interface Language
- User interface markup language
External links
- Documenting Software Architecture: Documenting Interfaces (PDF)
- OMG Specification of OMG IDL
- OMG Tutorial on OMG IDL
- IDL types documentation by Dave Bartlett (September 2000)