Thursday 
November 20, 2008
 
 
  Home  |   News/Articles  |   Downloads  |   Submissions  |   Enhancements  |   Links  |   About Us  
 Project Info
· JOIN THE TEAM!
If you'd like to help in defining the future of WDDX, just drop us a note at:
IWantIn @ OpenWDDX.org
 
· Projects @ OpenWDDX.org
Tell us about apps you are building, new projects (modules, etc.) built on top of WDDX, case studies, etc.
 
·
WDDX Enabled? Post this button on your site and start using the full syndication power of the Web. Click for more on its usage.
 
 
 Frequently Asked Questions

Web Distributed Data Exchange FAQ

What is WDDX?
WDDX is an XML-based technology that enables the exchange of complex data between Web programming languages, creating what some refer to as 'Web syndicate networks'. WDDX consists of a language-independent representation of data based on an XML 1.0 DTD, and a set of modules for a wide variety of languages that use WDDX. WDDX can be used with HTTP, SMTP, POP, FTP and other Internet protocols that support transferring textual data.

Who created WDDX?
Allaire created WDDX in order to solve key problems in exchanging data between Web applications. In particular, Simeon Simeonov, Allaire's language technology architect, created WDDX to support problems of distributed computing within ColdFusion. This work was generalized into a cross-language framework, and resulted in the creation of the WDDX SDK and WDDX.org. The WDDX SDK was created by Nate Weiss, an independent Web developer, with the support of Allaire and a number of other third parties.

Is WDDX a standard, W3C or otherwise?
WDDX is not a formal standard, and it has not been submitted to the W3C or any other standards body. However, WDDX will be freely available for use and redistribution, and is based on open, standards-based technologies such as XML 1.0. Also, it is clear that WDDX represents a significant intellectual and technical contribution to the evolution of distributed Web applications.

How does WDDX work?
All of the standard programming environments on the Web (ColdFusion, Perl, ASP, Java, JavaScript, PHP, etc) include native data structures such as arrays, recordsets or value pairs. WDDX provides a module for each language that will automatically serialize or translate the native data structures into an abstract representation in XML, or deserialize WDDX XML into a native data structure. For example, you could use WDDX to take a complex array in ColdFusion, serialize it into XML, send it to an ASP server, and then deserialize from XML into a VBScript array object with all the types natively converted. This conversion process between languages is relatively transparent to developers by shifting any XML processing and interaction into the WDDX modules, eliminating developers from having to directly program or manipulate XML themselves.

What is Web Syndication? How does WDDX enable it?
Web Syndication is the idea that the content and commerce assets of a corporate website can be exposed as services and data to other websites, allowing sites to 'syndicate' their value to other websites. 'Web syndicate networks' are networks of websites that have combined content and transactions to offer greater overall value, growing value economies exponentially. Some early examples include Amazon.com's Affiliate programs, web loyalty programs, and even back-end payment processing systems such as Cybercash.

WDDX enables Web Syndication by providing a simple, transparent glue for transferring assets between Web systems. With WDDX, a dynamic web site built using Perl can easily exchange database content, and even expose transactions and procedures, to a Web system created using another platform, such as ASP or ColdFusion, and vice versa.

Does WDDX have specific features to support Web syndication?
No, the WDDX SDK only provides a general architecture for distributed data exchange on the Web. It does not provide application-level features for managing site relationships, expressing rights or permissions on content, or scheduling regular site interactions. These types of services are the scope of custom applications created using any of the WDDX reference platforms. However, we do expect that members of the Web community will quickly build common semantics using WDDX for expressing higher-level syndication concepts, such as subscriptions, notification, delivery, permissions, and so on.

Is WDDX only for Web Syndication?
Definitely not. As you'll see from reading the rest of the FAQ, WDDX can be used for a huge range of Web applications. In the narrowest sense, WDDX is simply a technology for data exchange on the Web. It can be used for browser-to-server databinding, for building offline Web applications, and also for server-to-server syndication applications. However, we believe that some of the most powerful business uses of WDDX will come from companies exposing content and commerce interfaces to the network via WDDX.

How will WDDX benefit companies using the Web for communications and commerce?
The primary benefit of WDDX to companies using the Web is that it enables new forms of commercial and customer relationships that leverage new value chains created by the Web. For instance, a Web retailer can now easily expose their commerce assets to other site developers for integration into custom applications. The retailer can then shift sales and marketing of their products to Web reseller networks who more easily and directly touch customers. An example could be a large retail distributor of kitchen products who exposes their products through WDDX to other sites. Another site, perhaps a recipe, could offer the products of the master retailer via their own website. However, both the content and commerce transactions would be hosted and executed on the master retailers site. To the end-customer, they've benefited from specialization of content and an appropriate buying experience. The recipe site is able to benefit by being able to offer products and services that they themselves do not supply directly, and the master retailer is able to reach more customers by distributing the content and commerce through a syndicate network. This same model can be extended to traditional supply-chain integration and business to business Extranets, where a company exposes data to suppliers or partners about sales, leads, order status, etc.

How will WDDX benefit Web developers?
WDDX solves critical problems in exchanging data between different Web application environments, such as JavaScript, ColdFusion, Perl, ASP/COM and Java. With WDDX, multiple applications can easily share complex data across language environments, systems and platforms. As a result, developers can now more easily build systems that exchange information between browsers and servers or between different application servers.

Developers building distributed applications, where data and services may reside on remote servers, even potentially on different corporate Intranets and Extranets, will benefit from being able to access these services without regard for the language environment they are created with.

Also, developers building applications which heavily use client-side JavaScript for browser-based applications, or Visual Basic for desktop applications and user interface will benefit significantly, as WDDX allows these client-side languages to do databinding with Web application servers that support WDDX. This offloads processing to the client, improving an application's performance and the end-user experience.

What kinds of applications can be built using WDDX?
Any application that requires sharing data with other applications over the Web can potentially benefit from WDDX. This would include Web syndication, or business-to-business Internet and Extranet applications, where companies are exposing data, such as product or supply-chain data, customer data, order data, and so on. Because WDDX is language-independent and HTTP-friendly, a company could build an application with ColdFusion or ASP, and expose the application data to remote applications using WDDX. These remote applications could access the data using Perl, ColdFusion, ASP or any other language that supports WDDX. This eliminates the overhead and complexity of trying to share data where different partners use different language environments.

Applications that bridge traditional Windows desktops with Web applications are also a good target for WDDX. Often, companies need applications running on Windows desktops, created with Visual Basic, C++, Delphi, PowerBuilder or other such tools to interface with the same data and services running on Web application servers. With WDDX, developers can connect their Windows client applications to Web application servers using HTTP, leveraging the same server-side code as is deployed for their Intranet and Internet applications. This could be useful for applications that involve significant, offline data input and collection, where a stand-alone Windows or Java application might be more suitable than a connected Web application. The above examples would use the WDDX through a COM interface.

What is the WDDX SDK?
The WDDX SDK is a software development kit that allows Web developers to create distributed Web applications and Web syndicate networks using WDDX, the Web Distributed Data Exchange. The WDDX SDK is available for free electronic distribution via www.WDDX.org, an Allaire-sponsored Website for the ongoing development of WDDX. The WDDX SDK was developed with support from Allaire and a number of third parties building WDDX support for other language platforms.

What do I need to use the WDDX SDK?
The WDDX SDK is available for platforms that supports XML and any popular Web programming language. The SDK package is available as a ZIP file or Tar file, and contains documentation and examples that require an HTML capable Web browser. Some of the examples in the SDK use ColdFusion, ASP, Perl, and Java, and as such may require that you have versions of each of these to use the examples properly.

What is WDDX.org? Who runs it?
WDDX.org is an Allaire-sponsored Website and project to support the ongoing development of WDDX as a Web technology. WDDX.org and the WDDX SDK were created based on the belief that this technology should be freeware, open source and available for evolution by other members of the Web community. Allaire provides the Website hosting facilities, and has helped provide key content and software for the SDK itself.

Does WDDX require developers to know how to use XML?
No, one of the major benefits of using WDDX is that programmers can exchange structured data over the Web without having to use the XML natively. WDDX is what some call "XML middleware", where programming languages use it as a transport for their own native data.

What languages support WDDX? Are others planned?
Currently, the WDDX SDK provides modules for JavaScript 1.x, ColdFusion 4.0, COM, Perl and Java. Note that with the COM module WDDX can be used from within Active Server Pages, Visual Basic, Delphi, Java, PowerBuilder and C++. Allaire does not plan to implement modules for other languages, but using the SDK, any developer will be able to build a module for any language platform that can support the core WDDX data types. Projects are reportedly underway to support WDDX with Python and PHP.

What data types are supported by WDDX?
Are international data formats and standards supported?
WDDX supports the following basic data types: boolean (true/false), number, date-time, and string. Date-time values are encoded according to the full form of ISO8601. Timezone information will be successfully parsed and used to convert to a local date-time value.

WDDX also supports the following complex data types: arrays, structures, and recordsets. Arrays are integer-indexed collections of objects of arbitrary type. Structures are string-indexed collections of objects of arbitrary type. In many languages they are known as associative arrays. Recordsets are tabular data encapsulations: a set of named fields with the same number of rows of data. Only simple data types can be stored in recordsets.

How much does WDDX cost?
Nothing. WDDX will be a free technology available from www.WDDX.org, with open distribution for major language environments.

Is WDDX supported in any Web browser?
The primary way developers would use WDDX with browser-based applications is using the JavaScript 1.x implementation. WDDX supports any browser compatible with JavaScript 1.1, which includes Netscape 3.x/4.x and Internet Explorer 3.x/4.x. It has been tested with major versions of these browsers, on Mac, Windows and Unix.

How is data secured when using WDDX?
Since WDDX is built on the core Internet standards of XML and HTTP, it inherits the security models used in the native Web environment. WDDX packets can be transmitted securely over HTTP using SSL, and because WDDX packets are merely strings, developers can encode and decode the packet contents using any encryption function. Developers building distributed applications where remote access to WDDX-enabled data requires authorization, will need to use native Web server or application server authentication and security services for additional user-oriented security.

Can WDDX be used in non-Web, or Windows applications?
Absolutely. With the COM implementation of WDDX, developers can use WDDX for distributed data access or data storage using any popular Windows application development environment, including Visual Basic, Delphi, PowerBuilder, C++ and Java. With the Java implementation, developers can create stand-alone Java applications that use WDDX. We believe it will be most common that developers would use WDDX in desktop applications to access and use data that is simultaneously used within Web-native applications.

How does WDDX differ from standard XML data access?
Standard XML data access uses the Document Object Model (DOM) API to access and manipulate XML documents. In the DOM programming model, developers have full programmatic access to any XML document's structure. With WDDX, the developer does not natively manipulate XML content, but rather uses language specific modules to access data being exchanged from other languages. In many ways, DOM-based XML data access serves a different purpose than WDDX-based data exchange.

How does WDDX compare with XML-RPC mechanisms?
RPC stands for Remote Procedure Call, a mechanism used by distributed object systems such as DCOM and CORBA. XML-RPC mechanisms, such as DataChannel's WebBroker, are focused on providing a full distributed object protocol using XML and HTTP. Alternatively, WDDX is focused on providing a simple, light-weight data exchange mechanism for Web programming languages. However, it is straightforward to layer an RPC style capability on top of WDDX/HTTP based interactions. A number of developers are doing this already, and we expect standard semantics to emerge to support this kind of application of WDDX.

How does WDDX compare with ICE from Vignette?
ICE is a Vignette invented and sponsored technology for syndicating content over the Web. ICE is built with the specific application of sharing content, on a scheduled and trusted basis, with content trading partners. ICE is not suitable as a general-purpose, cross-language data exchange protocol, and WDDX, in and of itself, is not suitable as a syndication application. However, custom Web applications could use WDDX to expose shared data interfaces to other Web applications, creating Web syndication networks.

How does WDDX compare with WIDL from WebMethods?
The Web Interface Definition Language (WIDL) is a technology from WebMethods. WIDL is an XML-based technology for describing a programmatic interface to existing static documents, such as HTML or XML documents. WIDL itself is not a technology for exchange data between programming languages. WDDX, on the other hand, is for the live exchange of data between programming languages, and not for the extraction of data from existing Web content.

Where can one learn more about WDDX?
The WDDX SDK, additional White Papers, technical documents, and online forums are available at www.OpenWDDX.org.



 
© 2001 ~ OpenWDDX.org. All rights reserved.