选择 SOAP 库与 ISAPI Web 应用程序集成
我工作的公司有一个用 C++ 编写的大型 Web 应用程序作为 ISAPI 扩展(而不是过滤器)。 我们目前正在增强我们的系统,以便与多个具有 SOAP 接口的第三方工具集成。 我认为我们最好使用一些 SOAP 库,而不是自己开发。 理想情况下,它是免费和开源的,但具有与闭源商业软件兼容的许可证。 我们还需要支持传入和传出 SOAP 消息的 SSL。
我最关心的问题之一是,我见过的每个 SOAP 库似乎都有 2 种操作模式:独立服务器和服务器模块(Apache 模块或 ISAPI 过滤器)。 显然,我们不能使用独立服务器。 在我看来,如果它作为模块运行,它就不会成为我的应用程序的一部分——它无法访问我的代码的其余部分,因此它无法共享数据结构等这是一个正确的假设吗? 我们的应用程序处理的每个 HTTP 请求都由一个单独的线程处理(我们管理自己的线程池),但我们有大量在这些线程之间共享的持久数据。 我认为我正在寻找的集成类型是向我的应用程序添加一些代码,这些代码查看请求 URL,发现它正在尝试访问 SOAP 服务,并调用一些函数,例如soapService.handleRequest()。 我不知道有什么可以提供这种集成。 我们必须能够在 SOAP 处理函数中利用主应用程序中的数据结构。
除了处理传入的 SOAP 请求之外,我们还将生成它们(与第 3 方的双向通信)。 我认为几乎任何 SOAP 库都可以实现这个目的,对吧?
任何人都可以建议一个能够实现此目的的 SOAP 库,或者提供有关如何使用不同范例的建议吗? 我已经研究过 Apache Axis2、gSOAP 和 AlchemySOAP,但也许其中有一些功能被我忽略了。 谢谢。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
GSoap 是一个很棒的开源跨平台肥皂堆栈。
它很快。
很棒的互操作性。
许多开源肥皂库与 java/c#/python/whatever 没有很好的互操作性。
它在使用很少的内存的情况下解析巨大的有效负载。
它是开源的!
由于您使用的是 IIS 扩展,因此您需要将 gsoap 添加到您的应用程序中,并使用以下命令重新编译您的扩展 dll: http://aberger.at/SOAP/iis_index.html
你应该准备好开始行动了。
肥皂
http://www.cs.fsu.edu/~engelen/soap.html< /a>
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
看一下 ATL Server 这个库以前是随 Visual C++ 一起提供的,但现在它是一个单独的开源项目
Take a look at ATL Server This library used to be shipped with Visual C++, but now it is a separate open source project
GSOAP 非常适合 C++ 代码
GSOAP works nicely for c++ code