0

Я собираюсь внедрить простой в использовании и привлекательный графический интерфейс для управления и настройки коммутатора Ethernet, который имеет вспышку (всего 16 MB), в котором будет встроенный linux, некоторые специализированные программные средства, CLI и GUI.Язык и рамки программирования на сервере и на стороне клиента для использования во встроенных системах

Я думаю, что я должен пойти на веб-интерфейс графического интерфейса, чтобы администратор мог получить к нему доступ, используя IP-адрес коммутатора. На стороне клиента я подумываю использовать HTML5 или HTML4 с Javascript, поскольку графический интерфейс, разработанный в Flex, скорее всего, займет гораздо больше пространства.

Однако у меня нет четкого представления о технологии серверной стороны, которая будет использоваться. Должен ли я перейти на мини-apache для встроенных систем с PHP (как я знаком с Apache + PHP на системах x86)? или есть лучшая альтернатива?

Кроме того, следует ли мне использовать архитектуру типа MVC? Существуют ли отличные рамки MVC для встроенных систем?

Update:
В принципе, мне нужно только предоставить графический интерфейс поверх CLI работает на коммутаторе. Основной рабочий процесс приложения будет что-то вроде:

  1. GUI доступа пользователя через веб-интерфейс
  2. Пользователь выполняет действие на GUI
  3. Команда CLI, соответствующие действия, выполняемого посылается на сервер (работает на коммутаторе)
  4. сервер выполняет команду CLI на коммутаторе
  5. сервер возвращает результат команды обратно в GUI
+0

Я ответил здесь, но, возможно, http://programmers.stackexchange.com/ было бы лучше спросить. –

+1

Я бы пропустил веб-интерфейс и реализовал SNMP-сервер. –

+0

Это может зависеть от рынка. Если устройство является устройством потребителя (или SOHO), предоставление обоих SNMP и HTTP-интерфейсов, вероятно, будет лучше.Если устройство предназначено только для профессионального корпоративного рынка, SNMP может быть разумным. –

ответ

2

Вы можете использовать библиотеку HTTP-сервера, такую ​​как Onion (in C), GNU libmicrohttpd (in C) или Wt (на C++), чтобы создать собственный специализированный HTTP-сервер (встроенный в ваше устройство).

Вы также можете использовать Ocsigen в Ocaml для этой же цели.

Я не думаю, что запуск полного HTTP-сервера (apache или, возможно, лучше lighttpd) с помощью PHP-стека имеет смысл на встроенном устройстве (стек кода будет намного больше). На таком устройстве производительность не имеет большого значения (вы не будете получать тысячи HTTP-запросов в секунду), но пространство кода (и пространство процесса, то есть потребление памяти) весьма важно. (И специализированное решение для веб-серверов, которое я предлагаю, использует только скомпилированный код, который будет работать быстрее, чем интерпретируемый PHP).

Если вы настаиваете на иметь lighttpd или apache веб-сервера в устройстве -Какой я считаю, это wrong-, вы могли бы сделать ваше приложение приложение FastCGI (и код его в C, C++, OCaml, ...).

Как прокомментировал Саймон Рихтер, вы можете рассмотреть возможность его создания (также) службы SNMP.

+0

Я проверил встроенный linux на коммутаторе со мной, и я обнаружил, что «httpd» был указан в списке запущенных процессов, значит, у меня на нем работает веб-сервер, правильно? – baltoro

+0

Возможно, да (и это может быть lighttpd). Но это может быть не лучшее решение. Если вы хотите сохранить это, рассмотрите вещь FastCGI. Но я думал, что ваш вопрос заключается в том, чтобы конструировать предмет с нуля ... –

+0

Коммутатор фактически использует BusyBox, а «httpd» является частью этого BusyBox. Я только хочу реализовать некоторые формы HTML + CSS + Javascript, которые могут использоваться администратором (путем доступа к ним через браузер) для выполнения операций с коммутатором, например. просматривать политики QoS. Я, однако, понимаю вашу точку зрения, что lighttpd и FastCGI могут быть не лучшим решением. – baltoro