KD SOAP is a tool for creating client applications for web services
KD SOAP also provides the means to create web services without the need for any further component such as a dedicated web server. As part of our commitment to cross-platform solutions, KDAB offers developers KD SOAP, a web service access package for Qt applications.
It makes it possible to interact with applications which have APIs that can be exported as SOAP objects. The web service then provides a machine-accessible interface to its functionality via HTTP.
In today’s market, it is essential for application development to allow for Internet communication between programs. Applications are infinitely more useful when they can access web services to retrieve and exchange information.
Today’s applications communicate using Remote Procedure Calls (RPC) between objects like DCOM and CORBA. But RPC presents compatibility and security problems – for example, to access a remote service, the client computer must provide the program on the server with a certain argument. What if the program providing the service changes? What if that argument client provides becomes obsolete?
We run into another problem when firewalls and proxy servers block this kind of traffic all together (which they normally do). A more universal way for applications to communicate would be over HTTP, since HTTP is supported by all Internet browsers and servers – however, HTTP was not designed for these kinds of services. SOAP provides us with an elegant solution.
A Better Way to Communicate
SOAP is a simple XML-based protocol that lets applications exchange information over HTTP. SOAP and web service applications provide another layer of abstraction as a way to ease communication between applications running on different operating systems, using different technologies and programming languages. And it lets you get around those firewalls.
A message sent via SOAP is in XML format. It is made up of three parts – an envelope, a header and a body. The envelope encapsulates the message header and body. It contains information needed for processing the message, including a description of the kind of data found inside the envelope. It also contains information about the sender and recipient of the message. Information in the headers can perform functions, such as providing authentication. The body of the message contains the actual data. The data might be a request for information – for example, when a service requestor is searching a service registry for a web service. Or it might be a response to a request for information, such as when the registry sends back a service descriptor.
KD SOAP brings Simple Object Access Protocol to Qt
As part of our commitment to cross-platform solutions, KDAB offers developers KD SOAP, a web service access package for Qt applications.
KD SOAP is a tool for creating client applications for web services. It makes it possible to interact with applications which have APIs that can be exported as SOAP objects. The web service then provides a machine-accessible interface to its functionality via HTTP. The remote method calls are handled with the SOAP standard, which describes method calls, their parameters and return values as XML documents.
KD SOAP is also a tool for creating web service server implementations. It makes it possible to export application APIs as SOAP objects. Web service client applications can then access these via HTTP. The KD SOAP server module contains all required functionality, allowing web service deployment without the need for an external web server.
KD SOAP is used by a variety of programs for a variety of different purposes – for example, one application uses KD SOAP to access data from a CRM system such as SugarCRM or Salesforce.
- The KD SOAP library provides an abstraction layer for both the actual transport, as well as, the construction of data objects and method calls. (The latter relieves application developers from manually writing XML marshalling and demarshalling code, allowing them to build arbitrary complex data structures using simple C++ classes.)
- The transport abstraction provides both synchronous as well as Qt signal/slot based asynchronous remote method call and response handling.
- The server module supports both single-threaded as well as thread pool based network handling and method call execution.
- Along side the library, KD SOAP ships with the kdwsdl2cpp code generator, providing additional means for increasing developer productivity by generating client-side proxy API or server-side object interfaces based on formal WSDL service description. Using classes generated by this approach adds build-time type checking and “in process”-like object behavior (i.e. using C++ data types as parameters and return values of each of the web service’s methods).
KD SOAP licenses include:
- the full source code
- a reference manual
- a programmer’s manual
- tutorial programs illustrating the techniques explained in the programmer’s manual
- documentation for all products at docs.kdab.com.
Get KD SOAP
KD SOAP is available under a LGPL license and can be downloaded from: https://github.com/KDAB/KDSoap
For tailored options