
Un lenguaje de descripción de interfaces o lenguaje de definición de interfaces ( IDL , por sus siglas en inglés) 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 forma independiente del lenguaje, por ejemplo, entre programas escritos en C++ y programas escritos en Java.
Los lenguajes de enlace intuitivo (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 de programación diferentes. Los IDL sirven de puente entre ambos sistemas.
Los sistemas de software basados en IDL incluyen Sun RPC de Sun Microsystems , Distributed Computing Environment de The Open Group , IBM System Object Model , Common Object Request Broker Architecture (CORBA) de Object Management Group (que implementa OMG IDL, un IDL basado en DCE/RPC) y Data Distribution Service , XPCOM de Mozilla , Microsoft RPC (que evolucionó a Component Object Model (COM) y Distributed Component Object Model (DCOM)), Apache Thrift de Facebook y Web Services Description Language (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 mediante llamadas 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 : El 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 sin copia.
- Franca IDL : el lenguaje de definición de interfaz de código abierto Franca
- 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 de protocolo Imandra
- Protocolo de servicio web JSON ( JSON-WSP )
- Lenguaje de interfaz para dispositivos de imágenes ligeros
- 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
- Protocol Buffers : 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 ser implementadas en navegadores web.
- Lenguaje de descripción de servicios web (WSDL)
- XCB : Lenguaje de descripción de 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
Referencias
- ↑ Birkholz, H.; Vigano, C.; Bormann, C. (2019). "Lenguaje de definición de datos conciso (CDDL): una convención de notación para expresar la representación binaria concisa de objetos (CBOR) y estructuras de datos JSON" . Editor de RFC . doi : 10.17487/RFC8610 . S2CID 195857027. Recuperado 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
- Lenguajes de modelado de datos
- Llamada a procedimiento remoto
- Lenguajes de especificación
- Lenguajes de programación específicos de dominio