Как реализовать веб-сервисы на встроенном устройстве? - PullRequest
1 голос
/ 04 января 2009

У нас есть встроенное устройство, которое должно взаимодействовать с системой программного обеспечения предприятия.

В настоящее время корпоративная система использует множество различных механизмов для связи между своими компонентами: ODBC, RPC, проприетарным протоколом по TCP / IP и переходит к веб-службам с поддержкой .Net.

Встраиваемое устройство работает под управлением * nix, поэтому мы рассмотрим, какой механизм взаимодействия лучше.

Требования к связи:

Должен работать через TCP / IP. Должен также работать через RS-232 или USB. Должен быть безопасным (например, HTTPS или SSL). Должен быть способен передавать ~ 32 МБ данных.

На данный момент лучшим вариантом является gSOAP .

Есть ли у кого-нибудь еще на SO-земле какие-либо другие предложения?

Редактировать: Ответ Стивена дал мне самые новые указатели. Спасибо всем!

Ответы [ 4 ]

1 голос
/ 05 января 2009

Если вы собираетесь подключить ваше приложение с помощью RS232, я предполагаю, что вы будете использовать PPP для подключения устройства к Интернету. Однако объем данных, которые вы предлагаете передать, вызывает некоторое беспокойство. Большинство соединений RS232 ограничено 115200 бод, что, игнорируя служебные данные, необходимые для кадрирования TCP / IP / PPP, приведет к скорости передачи не более 11000 байт в секунду. Это означает, что для выполнения любого перевода, который вы планируете, потребуется не менее 2800 секунд или 46 минут.

1 голос
/ 04 января 2009

Разве вы не можете просто использовать SSL поверх TCP?

Если у вас есть какой-то * nix (могу ли я догадаться? Это QNX или встроенный linux, верно?), Он должен работать практически из коробки через Ethernet, USB и RS232. Не усложняй

32 МБ достаточно памяти для этой задачи. Я бы выделил от 2 до 4 мегабайт памяти для работы в сети и шифрования (код + данные).

1 голос
/ 04 января 2009

Не совсем понятно, почему вы хотите связать это с протоколом удаленного вызова процедур, таким как SOAP. Есть ли другие требования, о которых вы не упоминаете?

В общем, такие вещи очень легко обрабатываются с помощью обычных веб-сервисов. Вы можете получить очень легкие http-процессоры, написанные на C; см. Эту статью в Википедии для сравнения некоторых из них. Тогда интерфейс REST будет работать нормально. Существуют сетевые интерфейсы, которые также рассматривают USB как соединение TCP.

Если вы должны быть в состоянии работать через RS232, вы можете посмотреть в другом месте; в этом случае что-то вроде sftp может быть лучше. Или напишите простой протокол прикладного уровня, который вы можете запускать через зашифрованное соединение.

1 голос
/ 04 января 2009

Вы можете определить службы RESTful, использующие HTTPS (который по определению использует TCP / IP) и способны передавать любой объем данных.

Преимущество REST перед SOAP заключается в том, что REST проще. Он может использовать JSON вместо XML, что проще.

У него меньше издержек, чем у протокола SOAP.

...