Как создать архитектуру, спроектировать контроллер устройства RESTful? - PullRequest
0 голосов
/ 04 марта 2010

мы планируем разработать контроллер устройства для банковского автомата. Этот контроллер будет встроен непосредственно в компьютер, идея состоит в том, чтобы использовать для этого готовую плату ARM с Linux.

Мы хотели бы предоставить API в качестве веб-службы RESTful. Возможно, нам придется разделить программное обеспечение на контроллере как минимум на 3 уровня: интерфейс веб-службы, бизнес-логика, логика управления устройством (это может даже работать на другом HW).

Бизнес-логика и логика управления устройством, вероятно, будут реализованы в C ++ по соображениям производительности.

Нет, где у нас есть некоторые сомнения: Какие технологии / языки программирования использовать для реализации RESTful Web Service?

Веб-сервер (lighttpd), FastCgi, C ++, вероятно, будет лучшим решением с точки зрения производительности, а также из-за ограниченных ресурсов на плате ARM. Но недостатком, вероятно, является то, что реализация будет не такой простой, как в некоторых «современных» языках, таких как Python, Ruby, Java и т. Д. У нас много навыков в C ++ в компании, немного в Java и совсем нет навыков в Python, Ruby.

Кто-нибудь имеет опыт работы с такой архитектурой?
Как Python и Ruby работают в такой маленькой системе?
Есть ли у вас опыт работы с API RESTful во встроенных системах? (в интернете об этом не так много)

Спасибо за ввод

Ответы [ 2 ]

0 голосов
/ 04 марта 2010

Я согласен с RageZ;Нет ничего сложного в написании серверной части на C. Существует «старая» библиотека CGI от Eugene Eric Kim: http://www.eekim.com/software/cgihtml/index.html

Учитывая ее возраст, она, вероятно, не имеет кучи зависимостей от других вещей..

С помощью CGI довольно легко поместить ваш скрипт в какой-нибудь путь, скажем, / my / service, а затем отправить переменную среды PATH_INFO, которая выдаст вам все, что будет добавлено к контекстному пути.Таким образом,

/ my / service / a / b приведет к / a / b

Если вам нужна высокая производительность и вы можете позволить себе отпечаток, вы также можете использовать Apache и написать модуль (что тоже не особенно сложно).

Но FastCGI, конечно, тоже будет очень хорошо работать.

Jan

0 голосов
/ 04 марта 2010

В старые времена первые cgi были бинарными (в основном на C), поэтому не составляет труда написать код CGI на C / C ++.

После создания успокоительного API это может повлиять только на поведение вашего скрипта, например чтение URL и VERB вызовут любой код.

Поэтому я советую вам покопаться в некоторых ресурсах о программировании на C / C ++ CGI и, возможно, в некоторых библиотеках, чтобы облегчить доступ к переменной POST / GET и декодированию.

...