您在哪里使用过 gSOAP?

发布于 2024-07-26 04:03:17 字数 62 浏览 5 评论 0原文

您能否举例说明如何使用 gSOAP 以及它在现有架构中的集成情况如何? 您是否发现 gSOAP 的开发瓶颈?

Can you give examples how you used gSOAP and how well it was integrated in your existing architecture? Have you found development bottlenecks with gSOAP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

把回忆走一遍 2024-08-02 04:03:17

我们使用 gSOAP 让一组 ARM 客户端与 AXIS Web 服务服务器进行通信。 gSOAP 的优点:

  • 非常强大,支持几乎所有易于使用的 Web 服务构造
  • ,它对 WS 调用的抽象化为函数消除了程序员
  • 在 C 和 C++ 中优雅的接口的

所有 Web 服务复杂性。但是,我们遇到了几个开发瓶颈:

  • 当使用像映射或集合这样的自定义数据类型,需要相当多的黑客才能让 gSOAP 编译器处理它们(编组/解组)。 对于动态数据结构尤其糟糕。
  • 由于其固有的复杂网络、解析和内存分配部分,调试很困难。 尽一切可能坚持静态内存分配。
  • 邮件列表仍然存在,但开发人员对此不太活跃。 简单的问题可以很快得到解答,但最棘手的问题往往得不到解答,
  • 忘记优化。 gSOAP 中的链接在运行时会占用大约 1MB 的内存 (-Os)。 我们的 32MB 基于 Linux 的 ARM 主板上的运行时性能很好,但如果您需要的话,实际上几乎没有什么可做的优化。

We used gSOAP for a bunch of ARM clients to communicate with an AXIS Web Service server. Pros of gSOAP:

  • very powerful, supports nearly all Web Service constructs
  • easy to use, its abstraction of WS calls into functions removes all Web Service complexity to the programmer
  • elegant interfaces in both C and C++

However, we ran into several development bottlenecks:

  • when using custom datatypes like maps or sets, it takes quite some hacking to get the gSOAP compiler to handle them (marshal/unmarshalling). Especially bad with dynamic data structures.
  • debugging is hard because of its intrinsic complex network, parsing and memory allocation parts. Do everything possible to stick with static memory allocation.
  • the mailing list is alive, but developers are not very active on it. Simple questions can get answered quickly, but the toughest problems often go unanswered
  • forget about optimization. Linking in gSOAP eats about 1MB of memory at runtime (-Os). Runtime performance is fine on our 32MB linux-based ARM board, but there really is little to do about optimization if you need it.
深陷 2024-08-02 04:03:17

大约 4 年前,我们在基于 C++ 的 Web 服务器中使用了 gSOAP。 总体来说效果很好。 唯一的主要问题是接口是用 C 语言和过程化的(我知道设计一个好的非过程化接口是很困难的)。 在实现接口时可能会有很多重复的代码,为此您可能必须使用宏(当时我们没有过多地探索模板选项)。

We used gSOAP in a C++-based web server about 4 years back. Overall it worked fine. The only major issue was that the interface was in C and procedural (I understand it is difficult to design a good non-procedural interface). There may be a lot of repeated code while implementing the interface, for which you might have to use macros (we didn't explore the templates option too far then).

﹎☆浅夏丿初晴 2024-08-02 04:03:17

我们使用 gSoap 将 Web 服务部署到运行 ARM MX 处理器的嵌入式 Linux 设备上。

We are using gSoap to deploy a web service onto an embedde linux device running an ARM MX processor.

紫﹏色ふ单纯 2024-08-02 04:03:17

我们使用 gSOAP 从部署在 ARM 处理器上运行的 Linux 设备上的应用程序中使用基于 WCF 的 Web 服务。 体验在很大程度上是好的。

We are using gSOAP to consume a WCF based webservice from an application deployed on a linux device running on ARM processor. The experience is good to a large extent.

勿忘初心 2024-08-02 04:03:17

我们在 ARM ARM9 400MHz 设备上的 Web 服务器中使用了 gSOAP。
gSOAP 守护程序通过 Zeromq 库连接到数据库守护程序,该程序在同一设备上运行。

它支持超过 1000 个基本请求,不需要连接到数据库。

通过WITH_NOIDREF 定义禁用对多引用SOAP 选项的支持有助于将具有大量序列化节点的大请求的序列化时间缩短约4 倍。

We used gSOAP in a web server on ARM ARM9 400MHz device.
gSOAP daemon connected to a database daemon through zeromq library, which is run on the same device.

It supports more than 1000 basic requests wich does not requre connection to database.

Disabling support for multi-referenced SOAP option by the WITH_NOIDREF define helped to decrease serialization time about 4 times faster on big requests with large number of serialization nodes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文