我们正计划开发一个用于银行机的设备控制器。这个控制器将直接嵌入到机器上,其想法是使用Linux的现成ARM板来实现这一点。
我们希望将该应用程序接口作为RESTful网络服务提供。也许我们必须将控制器上的软件分成至少3层: Web服务接口、业务逻辑、设备控制逻辑(这甚至可能在不同的硬件上运行)。
出于性能原因,业务逻辑和设备控制逻辑可能会在C++中实现。
我们有疑问的地方是:使用什么技术/编程语言来实现RESTful网络服务?
the服务器(lighttpd)、FastCgi、C++可能是性能方面的最佳解决方案,而且ARM板上的资源也是有限的。但缺点可能是实现并不像一些“现代”语言那样简单,比如Python等等。我们公司有很多C++的技能,一点Java语言的技能,完全没有PythonRuby语言的技能。
有没有人有过这种架构的经验?
Python和Ruby是如何在这么小的系统上运行的?
有在嵌入式系统上使用RESTful API的经验吗?(在网络上没有太多关于这个的信息)
感谢您的投入
发布于 2010-03-04 18:28:00
在过去,第一个cgi是二进制的(主要是C),所以用C/C++编写一些CGI是不成问题的。
在创建restful API之后,只会影响脚本的行为方式,就像读取url和VERB会触发任何代码一样。
所以我建议你挖掘一些关于C/C++ CGI编程的资源,可能还有一些库来帮助你访问POST/GET变量和解码。
发布于 2010-03-04 22:41:35
我同意RageZ的观点;用C语言编写服务器端并不难。有一个由Eugene Eric Kim编写的‘旧’CGI库:http://www.eekim.com/software/cgihtml/index.html
考虑到它的历史,它很可能对其他东西没有太多的依赖。
使用CGI,很容易将脚本放在某个路径上,比如/my/service,然后在PATH_INFO环境变量上进行调度,该环境变量将为您提供附加到上下文路径的所有内容。因此
/my/service/a/b将生成/a/b
如果您需要高性能并且负担得起内存占用,您也可以使用Apache并编写一个模块(这也不是特别困难)。
但是FastCGI当然也会有很好的表现。
1月
https://stackoverflow.com/questions/2378425
复制相似问题