Открытый исходный код C Встроенный веб-сервер Поддерживающий веб-сервис на основе SOAP / JSON-RPC и совместимый с процессором ARM

StackOverflow https://stackoverflow.com/questions/4373602

Вопрос

Я работаю над проектом для встраивания веб-сервера, написанного в C в устройство. Требование заключается в том, что он должен поддерживать веб-службы (SOAP / JSON-RPC) и должен быть совместим с процессором ARM. Любые предложения от конкретных продуктов или где сначала посмотреть?

Это было полезно?

Решение

Учитывая ваше описание: платформа на основе Linux с оперативной памятью 256 МБ, вы можете в основном использовать любой веб-сервер, который вам нравится. 256 МБ ОЗУ принимает ваше устройство из типичной встроенной территории в Server Space.

Не беспокойтесь о поддержке ARM слишком много, потому что она хорошо поддерживается сообществом Linux. Это одна из архитектур, которые официально поддерживаются Debian. Я сам запускаю пару веб-серверов на ARM, бегущий Debian и Lighttpd с аппаратным обеспечением, имеющим только 32 МБ оперативной памяти.

Три верхних самых популярных веб-серверов (и популярность довольно важны, поскольку это означает, что вы можете легко Google, если у вас есть проблемы):

  • Lighttpd - очень легкий на использование оперативной памяти, поскольку он также является единой резьбой и очень легким на использование CPU. Недостатком состоит в том, что он может быть медленным, чтобы ответить, если вы попытаетесь запустить в тяжелом весе, приложения CPU интенсивных CGI на нем, поскольку она является одиночной резьбой.

  • Apache2 - тяжелый на использование ОЗУ. Режим работы по умолчанию Apache является сохранение потоков в живых для обработки тяжелых нагрузок. Это означает, что большую часть времени вы используете оперативную память о спальных процессах. Но если вам нужно обрабатывать тяжелые грузы, это хорошо. Хорошо для сверхмощных CGI приложений.

  • Nginx - новый ребенок на блоке. Не также документировано (на данный момент, очевидно, документация улучшается со временем) как Lighttpd или Apache, но люди говорили, что он превзойдет оба. Это многопоточна, например, Apache2, но неблокировка, как Lighttpd, поэтому он имеет лучшее из обоих миров: он использует меньше RAM, что Apache2 (хотя и больше, чем Lighttpd) в целом и работает, по крайней мере, также, если не лучше, чем apache2 под нагрузкой. Единственный настоящий недостаток для меня - это документация.

Другие советы

Если устройство действительно сокращается на ресурсах, рассмотрите встроенные библиотеки веб-сервера, как Мангуста или libsoup (с использованием Оглядываться). Однако обратите внимание, что услуги, такие как мыло и анализ XML в целом, довольно тяжелые ресурсы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top