如何包装C库以便可以从Web服务调用它

Kar*_*iem 6 c web-services unmanaged http wrapper

我们有一个用C语言实现的非常复杂的逻辑库.它有一个命令行界面,没有太复杂的基于字符串的参数.为了访问它,我们希望包装库,以便可以使用简单的XML RPC或甚至简单的HTTP POST调用来访问它.

有一些Java经验,我的第一个想法是

  • 将库包装在JNI/JNA中
  • 使用瘦WS堆栈和servlet引擎
  • 代理通过Apache请求到servlet引擎

我相信应该已经有一些可以使用的简单,所以我在这里发布这个问题.解决方案具有以下要求

  • 它应该可以部署到当前的Linux发行版,最好通过包管理可用
  • 它应该与标准Web服务器集成(如我的示例Apache)
  • 对库的界面进行小的更改应该是可管理的
  • 端到端(HTTP-WS-library-WS-HTTP)解决方案不应该产生太多开销,但可靠性非常重要

作为JNI/JNA提议的替代方案,我认为在C#世界中编写Web服务并调用这个非托管代码模块应该不会太难,但我希望有人可以给我一些关于需求的可行指针.

jfa*_*ell 1

创建 apache 模块非常简单,并且由于您熟悉 xmlrpc,因此您应该查看 mod-xmlrpc2。您可以轻松地将 C 代码添加到此 apache 模块,并在几分钟内拥有一个正在运行的 xmlrpc 服务器