Я бы начал с создания обычного HTTP-сервера, такого как lighttp или Apache httpd.
Вы говорите, что у вас уже есть программа командной строки, которая делает фактическую работу - в качестве первого шага, я бы повторно использовать это, и настроить веб-сервер для вызова программы с использованием CGI - см Forexample http://httpd.apache.org/docs/2.2/howto/cgi.html для апача
Наконец, я бы выбрал некоторую инфраструктуру javascript, такую как jQuery или YUI с возможностями Ajax, чтобы делать запросы на сервер, чтобы вызвать скрипт CGI с веб-страницы. Вы также можете создать веб-приложение на основе формы без ajax или любой фреймворк, но для этого вам потребуется заполнить все виды логики в вашей программе для создания HTML-страниц. Используя Ajax, вы можете оставить приложение командной строки как есть и проанализировать любые ответы, которые он дает с помощью javascript, а затем использовать это для динамического изменения веб-страницы таким образом, чтобы это имело смысл для пользователя.
Если все это работает, я попытаюсь выяснить, как упаковать все эти компоненты. Возможно, вам просто нужно создать простой архив со всеми программами внутри, или, может быть, вы хотите дойти до фактического внедрения веб-сервера в свою программу. Кроме того, вы можете сделать это по-другому и переписать свою программу как модуль ISAPI, который вы можете подключить к своему веб-серверу. Или, если это недостаточно, вы можете написать свой собственный (частичный) HTTP-сервер.Это действительно зависит от вас (я, вероятно, потрачу время и силы на поиск самого скудного, самого известного существующего сервера http с открытым исходным кодом и использую это вместо этого)
Во всяком случае, предыдущие шаги не будут утеряны. Скорее всего, разработка веб-страницы будет составлять значительную часть работы, поэтому я, вероятно, создаю быстрое и грязное рабочее решение сначала с использованием старинного трюка CGI, а затем разработаю веб-страницу для моего удовлетворения. В этом случае у вас уже может быть приемлемое распределяемое решение, просто поместив все программы в один архив (конечно, вам также придется настраивать конфигурацию веб-сервера, например, менять порт по умолчанию, чтобы он не мешал существующим веб-серверам.) после этого я потратил бы время на создание более интегрированного причудливого решения.
спасибо за подробное объяснение. Я не уверен, насколько размер программы будет увеличиваться при встраивании веб-сервера или добавлении пакета, но я дам эту попытку. – 2010-03-02 01:10:51