开源C嵌入式Web服务器,支持基于SOAP / JSON-RPC的Web服务,并与ARM处理器兼容

时间:2010-12-07 05:12:06

标签: c web-services webserver arm embeddedwebserver

我正在开发一个项目,将用C编写的Web服务器嵌入到设备中。要求是它应该支持Web服务(SOAP / JSON-RPC)并且应该与ARM处理器兼容。有关具体产品的建议或首先要查看的地方吗?

2 个答案:

答案 0 :(得分:1)

如果设备资源非常短缺,请考虑使用嵌入式网络服务器库,例如Mongooselibsoup(使用GLib)。但请注意,SOAP和XML解析等服务通常对资源非常重要。

答案 1 :(得分:1)

鉴于您的描述:基于Linux的平台具有256MB RAM,您基本上可以使用您喜欢的任何Web服务器。 256MB RAM将您的设备从典型的嵌入式区域带入服务器空间。

不要过于担心ARM支持,因为Linux社区对它提供了很好的支持。它是Debian正式支持的架构之一。我自己在运行Debian和lighttpd的ARM上运行了几个Web服务器,硬件只有32MB RAM。

前三个最受欢迎的网络服务器(而且受欢迎程度非常重要,因为这意味着如果您遇到问题,可以轻松进行谷歌搜索):

  • lighttpd - 内存使用非常简单,因为它是单线程的,并且CPU使用率也非常低。缺点是,如果您尝试在其上运行重量级,CPU密集型CGI应用程序,它可能会很慢响应,因为它是单线程的。

  • Apache2 - 大量使用RAM。 Apache的默认操作模式是尽可能长时间保持线程处理重负载。这意味着大多数时候你在睡眠过程中使用RAM。但如果你需要处理重负荷,这是一件好事。适用于重型CGI应用程序。

  • Nginx - 街区的新人。没有详细记录(目前,显然文档随着时间的推移而改进)作为lighttpd或Apache,但人们一直说它优于两者。它像Apache2一样是多线程的,但是像lighttpd一样是非阻塞的,因此它具有两全其美的优势:它通常使用较少的Apache(尽管比lighttpd更多),并且在负载下运行至少与Apache2相同。对我来说唯一真正的缺点是文档。