WDDX (Web Distributed Data eXchange) es un mecanismo de intercambio de datos independiente del lenguaje de programación , de la plataforma y del transporte , diseñado para pasar datos entre diferentes entornos y diferentes computadoras.
WDDX fue creado por Simeon Simeonov de Allaire Corporation en 1998, [1] inicialmente para el entorno de servidor ColdFusion . WDDX se convirtió en código abierto más tarde ese mismo año. [2]
WDDX es funcionalmente comparable a XML-RPC y WIDL . [3] La especificación admite tipos de datos simples como números, cadenas , booleanos , etc., y agregados complejos de estos en formas como estructuras , matrices y conjuntos de registros (datos de fila/columna, que generalmente provienen de consultas de bases de datos).
Los datos se codifican en XML utilizando un DTD XML 1.0 , lo que produce una representación independiente de la plataforma pero relativamente voluminosa. [4] Los datos codificados en XML se pueden enviar a otra computadora mediante HTTP , FTP u otro mecanismo de transmisión. La computadora receptora debe tener un software compatible con WDDX para traducir los datos codificados a la representación de datos nativa del receptor. WDDX también se puede utilizar para serializar estructuras de datos en el almacenamiento (sistema de archivos o base de datos). Muchas aplicaciones utilizan WDDX para pasar datos complejos a navegadores donde se pueden manipular con JavaScript , como una alternativa a JSON .
Ejemplo de php.net : [5]
<wddxPacket version= '1.0' > <header comment= 'PHP' /> <data> <struct> <var name= 'pi' > <number> 3.1415926 </number> </var> <var name= 'cities' > <array length= '3' > <string> Austin </string> <string> Novato </string> <string> Seattle </string> </array> </var> </struct> </data> </wddxPacket>
WDDX es utilizado principalmente por ColdFusion y, a febrero de 2022, todavía cuenta con soporte de Adobe.
Fuera de ColdFusion, existen bibliotecas para leer o escribir este formato: Ruby , [6] Python , [7] PHP , Java , C++ , .NET , [8] Actionscript , [9] lisp , Haskell , Perl .
PHP solía ofrecer un soporte completo para WDDX, que podía usarse como formato para almacenar información de sesión [10] hasta la versión 7.4. Desde entonces se eliminó del lenguaje base, pero aún está disponible a través de PECL. [11] La razón fue la falta de estandarización del formato y la aparición de nuevos formatos como JSON más comunes. [12] En 2007 se corrigió una vulnerabilidad. [13]