WDDX
From Wikipedia, the free encyclopedia
WDDX (Web Distributed Data eXchange) is a programming-language-, platform- and transport-neutral data interchange mechanism to pass data between different environments and different computers. It supports simple data types such as number, string, boolean, etc., and complex aggregates of these in forms such as structures, arrays and recordsets (row/column data, typically coming from database queries). There are WDDX interfaces for a wide variety of languages. ColdFusion, Ruby, Python, PHP, Java, C++, .NET, Actionscript, lisp, Haskell, Perl and various platforms support it very well.
The data is encoded into XML using an XML 1.0 DTD, producing a platform-independent but relatively bulky representation. The XML-encoded data can then be sent to another computer using HTTP, FTP, or other transmission mechanism. The receiving computer must have WDDX-aware software to translate the encoded data into the receiver's native data representation. WDDX can also be used to serialize data structures to storage (file system or database). Many applications use WDDX to pass complex data to browsers where it can be manipulated with JavaScript, creating essentially a form of Ajax.
WDDX was created by Simeon Simeonov from Allaire Corporation in 1998,[1] initially for the ColdFusion server environment. WDDX was open-sourced later that year.[citation needed]
WDDX and XML-RPC, both created in 1998, were the precursors to SOAP and Web services. SOAP borrows the envelope/header/body structure and the transport + interaction neutrality from WDDX and the HTTP and RPC bindings from XML-RPC.[citation needed]
Example: (from php.net/wddx)
<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>
[edit] Notes
- ^ Simeonov, Simeon. WDDX: Distributed Data for the Web. Retrieved on 2007-02-05.