2010-03-04 161 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月