choosing a SOAP library to integrate with ISAPI webapp

| | August 7, 2015

The company I work for has a large webapp written in C++ as an ISAPI extension (not a filter). We’re currently enhancing our system to integrate with several 3rd party tools that have SOAP interfaces. Rather than roll our own, I think it would probably be best if we used some SOAP library. Ideally, it would be free and open source, but have a license compatible with closed-source commercial software. We also need to support SSL for both incoming and outgoing SOAP messages.

One of the biggest concerns I have is that every SOAP library that I’ve looked at seems to have 2 modes of operation: standalone server and server module (either Apache module or ISAPI filter). Obviously, we can’t use the standalone server. It seems to me that if it is running as a module, it won’t be part of my app — it won’t have access to the rest of my code, so it won’t be able to share data structures, etc. Is that a correct assumption? Each HTTP request processed by our app is handled by a separate thread (we manage our own thread pool), but we have lots of persistent data that is shared between those threads. I think the type of integration I’m looking for is to add some code to my app that looks at the request URL, sees that it is trying to access a SOAP service, and calls some function like soapService.handleRequest(). I’m not aware of anything that offers this sort of integration. We must be able to utilize data structures from our main app in the SOAP handler functions.

In addition to handling incoming SOAP requests, we’re also going to be generating them (bi-directional communication with the 3rd parties). I assume pretty much any SOAP library will fulfill that purpose, right?

Can anyone suggest a SOAP library that is capable of this, or offer a suggestion on how to use a different paradigm? I’ve already looked at Apache Axis2, gSOAP and AlchemySOAP, but perhaps there’s some feature of these that I overlooked. Thanks.

3 Responses to “choosing a SOAP library to integrate with ISAPI webapp”

  1. GSOAP works nicely for c++ code

  2. Byron Whitlock on November 30, -0001 @ 12:00 AM

    GSoap is a great open source cross platfrom soap stack.

    It is FAST.

    Great interop.

    Many open source soap libraries don’t have great interop with java/c#/python/whatever.

    It parses HUGE payloads while using very little memory.

    It is open source!

    Since you are using an IIS extension, you would need to add the gsoap to your app, recompile your extension dll with this: http://aberger.at/SOAP/iis_index.html
    and you should be ready to roll.

    gSoap
    http://www.cs.fsu.edu/~engelen/soap.html

  3. Nemanja Trifunovic on November 30, -0001 @ 12:00 AM

    Take a look at ATL Server This library used to be shipped with Visual C++, but now it is a separate open source project

Leave a Reply