DALI User Manual: DALI Internals

What Is SOAP?

SOAP stands for Simple Object Access Protocol. It is a widely adopted open standard for cross platform software communication over a network between heterogenous software components. SOAP builds on the HTTP protocol as a communications channel. It supports an RPC (Remote Procedure Call) like interface for making calls which includes support for sophisticated data types and structures.

Much more information on SOAP is available at these websites:

SOAP 1.1 Specification at W3C
http://www.w3.org/TR/SOAP/

SoapWare.org Directory
http://www.soapware.org/

SOAP at Microsoft Developer Network
http://msdn.microsoft.com/soap/

SoapRPC.com
http://www.soaprpc.com/

Google Directory for SOAP
http://directory.google.com/Top/Computers/Programming/Internet/Web_Services/SOAP/

SOAP and DALI

The DALI protocol is simply a SOAP API implemented by the DALI server. Diamond Systems is providing client libraries for C/C++ and Java developers. These libraries hide the details of SOAP and networking and present a simple driver like interface for interacting with remote boards using DALI. Customers can choose to use these libraries or select any of the freely available SOAP toolkits when implementing their own DALI applications.

The DALI server was implemented using gSOAP which is a high performance open source SOAP toolkit. More information about gSOAP is available at the following website: http://www.cs.fsu.edu/~engelen/soap.html.

Included with the server is a set of web pages which demonstrate each function supported by DALI using the PHP scripting language. SOAP support for PHP is provided by the free NuSOAP library. If one of the DALI client libraries provided by Diamond Systems fits your needs it is best to use it. Otherwise the PHP demos above show that it can be quite easy to write DALI client code using the many available SOAP toolkits.

WSDL

A WSDL (Web Services Description Language) file is included with the DALI server at /usr/local/dali/etc/dali.wsdl. WSDL is a standard for specifying the available functions of a SOAP web service and the parameters required to use those functions. It is meant to be machine readable and many SOAP toolkits provide software for importing a WSDL file to automatically create framework client implementations.