Overview of Jabon
Possibly, the best C/C++ implementation is gSOAP mainly developed by Robert A. van Engelen. If you want an excellent, complete C/C++ SOAP toolkit, definitely go to gSOAP, and you will get Portability, Stability, Compliance, Security, etc.
Jabon is at a very early stage of development and does not pretend to be an alternative to gSOAP for real web service applications. Jabon is an interesting approach if you require some SOAP run time capabilities. It is a very feature limited implementation, but can be enough for distributed systems. We have also tested some interoperatibility with gSOAP as client of services provided by Jabon.
Jabon Features
- Jabon is a totally free tool. It will always be free for research purposes. Commercial applications are also allowed at the moment, though commercial use in the future could require some charge.
- Jabon generates C++ portable code that you can compile into your application
- Jabon runtime library is open-source, so can compile it into your application. You always know what your application is doing. 100% control. I hope this also serves for a quick improvement and debuggin of Jabon.
- Jabon is pretty fast. Preliminary tests on a Dual Core laptop shows <1ms on average for a round trip message.
- Jabon requires not installation at all. Simple decompress it and start using it.
- Jabon uses the POST method to send messages, but can also implement the GET one, serving the WSDL description of the service.
- Jabon supports pass by reference parameters, and any user defined type as parameter, as classes and structs.
- Jabon supports STL string and vector containers.
- Jabon is simple (at least it is one of the main goals)
- Jabon allows avery easy Web Service generating starting from a C++ header file integrated with the architecture of your application. No especial syntax is required, just define which methods you want to make remote, and Jabon will do all the work for you.
- Jabon is not fully compliant with SOAP and WSDL specs, nor with the WS-I Basic profile. The good thing is that it will be at some point as it evolves.
- Jabon is not complete. It is perfectly suited for creating distributed systems with C++ interfaces, but cannot manage (at the moment) all the syntax and details of WSDL, SOAP and XML schema.
- Jabon always use rpc/literal over HTTP Post method. Only HTTP transport is provided.