для одного из моих приложений я хотел бы предоставить минимальный веб-интерфейс. Это основное приложение написано на C ++ и использует Qt4 в качестве фреймворка. Поскольку я также использую некоторые библиотеки, которые я написал, чтобы вычислить некоторые вещи и выполнить сложное управление данными, я хотел бы использовать этот существующий код в качестве бэкэнда для веб-интерфейса.
Идея 1. Использование встроенного веб-сервера
Первое, что я попробовал (и в какой-то степени работало), - это использовал встроенный веб-сервер ( mongoose ). Как вы можете себе представить, это просто очень тонкая библиотека, и вы должны реализовать множество вещей самостоятельно (например, управление сеансами, файлы cookie и т. Д.).
Идея 2. Использование обычного веб-сервера и добавление бэкэнда fcgi / cgi / scgi в мое приложение
Следующим, что пришло мне в голову, было использование зрелого, но компактного веб-сервера (например, lighttpd) и простого предоставления ему бэкэнда fcgi / scgi / cgi. Я мог бы написать веб-приложение, используя хороший фреймворк, такой как Pylons, PHP или RoR, (...) и просто иметь префикс URL, такой как /a/...
, который позволяет мне напрямую общаться с бэкэндом.
Я пытался внедрить libfcgi в свое приложение, но оно выглядит более грязным, чем нужно (например, вам нужно будет внедрить собственные сокеты TCP / IP для передачи данных между вашим приложением и веб-сервером и туннелирования через Библиотека FCGI, мех)
Идея 3: Создание версии моего приложения для командной строки, которая выполняет самые основные функции и использует обычный веб-сервер и инфраструктуру для выполнения всего остального
Это третья идея, которая пришла мне в голову. В основном речь идет о создании веб-приложения с использованием традиционного способа (PHP, RoR и т. Д.) И использовании версии моего приложения из командной строки для обработки данных и их возврата при необходимости.
У меня есть некоторый опыт создания веб-приложений, но мне никогда не приходилось делать что-то подобное, поэтому я хотел бы услышать некоторые идеи или предложения. Я хотел бы использовать JavaScript в браузерах (то есть AJAX) и передавать некоторые конструкции JSON между веб-браузером и сервером, чтобы сделать работу пользователя немного более гладкой.
Так каковы ваши предложения, идеи по этому поводу? Честно говоря, я не хочу заново изобретать колесо.