2010-03-04 56 views
0

我们正在计划开发银行机器的设备控制器。这个控制器将直接嵌入到机器上,这个想法就是使用现成的带有Linux的ARM板。如何构建一个RESTful设备控制器?

我们希望将API作为REST风格的Web服务提供。 可能我们必须将控制器上的软件至少分为三层:Web服务接口,业务逻辑,设备控制逻辑(甚至可以在不同的硬件上运行)。由于性能原因,业务逻辑和设备控制逻辑可能会在C++中实现。

不,我们有一些疑问是: 用什么技术/编程语言来实现RESTful Web服务?

Web服务器(lighttpd),FastCgi,C++可能是性能最好的解决方案,也是因为ARM板上的资源有限。但缺点是实现可能不像使用Python,Ruby,Java等一些“现代”语言那样容易。 我们在C++中拥有很多技能,有点在Java中,并且没有任何技能Python,Ruby。

有没有人有这种体系结构的经验?
Python和Ruby如何在这样一个小系统上执行?
在嵌入式系统上使用RESTful API的经验? (没有太多围绕这个在网络上)

感谢输入

+0

很不错,可以通过网络访问的ATM机。准备好插入所有安全漏洞,包括由第三方库和操作系统提供的安全漏洞。这看起来对* Crackers *来说是一个很好的挑战。 – 2010-03-04 17:44:42

+0

@Thomas Matthews:我们不是在谈论ATM,而是机器不会在互联网上,而是在银行的专用网络上 – RESTless 2010-03-05 07:55:01

回答

0

在旧时代的第一个CGI是二进制文件(主要是在C),所以它不是用C编写一些CGI问题/ C++。

使一个restful API后,只会影响你的脚本的行为方式,如阅读URL和VERB将触发什么代码。所以我建议你去挖掘一些关于C/C++ CGI编程的资源,并且可能有些库方便访问POST/GET变量和解码。

0

我同意RageZ;在C中编写服务器端并不困难。有一个由Eugene Eric Kim设计的'旧'CGI库:http://www.eekim.com/software/cgihtml/index.html

鉴于它的年龄,它可能没有一堆对其他东西的依赖关系。

使用CGI,将脚本放在某个路径上比较容易,比如说/ my/service,然后在PATH_INFO环境变量上派发,这会给你任何附加到上下文路径的东西。因此

/我/服务/ A/B将产生/ A/B

如果你需要高性能和能负担得起的足迹,你也可以使用Apache和编写模块(这也是未特别困难)。

但FastCGI当然也表现得很好。

1月