
Un lenguaje de descripción de interfaz o lenguaje de definición de interfaz ( IDL ) es un término genérico para un lenguaje que permite que un programa u objeto escrito en un lenguaje se comunique con otro programa escrito en un lenguaje desconocido. Los IDL se utilizan generalmente para describir tipos de datos e interfaces de una manera independiente del lenguaje , por ejemplo, entre los escritos en C++ y los escritos en Java .
Los IDL se utilizan habitualmente en software de llamadas a procedimientos remotos . En estos casos, las máquinas en ambos extremos del enlace pueden utilizar sistemas operativos y lenguajes informáticos diferentes. Los IDL ofrecen un puente entre los dos sistemas diferentes.
Los sistemas de software basados en IDL incluyen ONC RPC de Sun , Distributed Computing Environment de The Open Group , System Object Model de IBM , CORBA de Object Management Group (que implementa OMG IDL, un IDL basado en DCE/RPC) y Data Distribution Service , XPCOM de Mozilla , Microsoft RPC de Microsoft (que evolucionó a COM y DCOM ), Thrift de Facebook y WSDL para servicios web.
Ejemplos
- AIDL: basado en Java , para Android ; admite llamadas a procedimientos locales y remotos, se puede acceder a él desde aplicaciones nativas llamando a través de la interfaz nativa de Java (JNI)
- Apache Thrift : de Apache , desarrollado originalmente por Facebook
- Avro IDL : para el sistema Apache Avro
- ASN.1
- Cap'n Proto : creado por su antiguo mantenedor, evita algunas de las deficiencias percibidas de Protocol Buffers .
- Lenguaje de definición de datos conciso (CDDL, RFC 8610): [1] Una notación para estructuras de datos CBOR y JSON
- CortoScript: Describe datos y/o interfaces para sistemas que requieren interoperabilidad semántica
- Etch : lenguaje de descripción de servicios multiplataforma Etch de Cisco
- Notación de datos extensible (EDN): formato de datos de Clojure , similar a JSON
- FlatBuffers : formato de serialización de Google que admite la deserialización de copia cero
- Franca IDL : el lenguaje de definición de interfaz de Franca de código abierto
- FIDL: Lenguaje de descripción de interfaz para el sistema operativo Fuchsia diseñado para escribir componentes de aplicaciones en C , C++ , Dart , Go y Rust . [2]
- Lenguaje de especificación IDL : el lenguaje de descripción de interfaz original
- IPL: Lenguaje del protocolo Imandra
- Protocolo de servicio web JSON ( JSON-WSP )
- Lenguaje de interfaz de dispositivo de imágenes ligero
- Lenguaje de definición de interfaz de Microsoft (MIDL): la extensión de Microsoft de OMG IDL para agregar compatibilidad con el Modelo de objetos componentes (COM) y el Modelo de objetos componentes distribuidos (DCOM)
- OMG IDL : estandarizado por Object Management Group , utilizado en CORBA (para servicios DCE/RPC) y DDS (para modelado de datos ), también seleccionado por el W3C para exponer el DOM de documentos XML, HTML y CSS
- Especificación OpenAPI : un estándar para API web , utilizado por Swagger y otras tecnologías.
- Definiciones de interfaz de servicio abierto
- Buffers de protocolo : IDL de Google
- Lenguaje de descripción de servicios RESTful (RSDL)
- Smithy: un lenguaje de definición de interfaz independiente del protocolo inventado por AWS.
- Lenguaje de especificación para el motor de comunicaciones de Internet (Ice: Slice )
- Objetos de red universales : modelo de componentes de OpenOffice.org
- Lenguaje de descripción de aplicaciones web (WADL)
- Web IDL de WHATWG : se puede utilizar para describir interfaces que están destinadas a implementarse en navegadores web.
- Lenguaje de descripción de servicios web (WSDL)
- XCB : lenguaje de descripción del protocolo X para el sistema X Window
- Lenguaje de descripción de interfaz multiplataforma ( XPIDL ): la forma en que Mozilla especifica las interfaces XPCOM
Véase también
- Ingeniería de software basada en componentes
- Programación basada en interfaz
- Lenguaje de definición de interfaz Java
- Lista de abreviaturas de informática y TI
- Lenguaje de interfaz universal
- Lenguaje de marcado de interfaz de usuario
Referencias
- ^ Birkholz, H.; Vigano, C.; Bormann, C. (2019). "Lenguaje de definición de datos conciso (CDDL): una convención de notación para expresar representaciones binarias concisas de objetos (CBOR) y estructuras de datos JSON". Editor de RFC . doi :10.17487/RFC8610. S2CID 195857027 . Consultado el 24 de mayo de 2022 .
- ^ "Descripción general de FIDL". Fuchsia . Consultado el 23 de febrero de 2022 .
Enlaces externos
- Documentación de la arquitectura de software: documentación de interfaces (PDF)
- Especificación OMG de OMG IDL
- Tutorial de OMG sobre OMG IDL