LINUX.ORG.RU

архитектура приложения, встраиваемый сервер и фронтенд на HTML5/CSS3


0

1

Начал делать не совсем обычное приложение. Функционал уже разработан в виде библиотеки. Теперь надо сделать GUI-фронтенд.

Проблема в том, что GUI там нужен не совсем обычный и WPF/GTK не подходят. Из существующих технологии очень хорошо вписываются HTML5/CSS3. Но сделать как SaaS нельзя. Так как приложение(бинарник) нужно запускать из флешки и на клиентских машинках не всегда есть сеть.

Думаем, что можно было бы сделать так: бинарник запускает легкий веб-сервер и рендерит приложение написанное на HTML5/CSS3/JS через WebKit.

Теперь вопросы:

а) Есть ли подвох в такой архитектуре приложения? (встроенный веб-сервер и кнопочки написанные на HTML5/CSS3)

б) Можно ли сделать как-нибудь так, чтобы общение между фронтендом и встроенным сервером шло не через порт? Т.е. чтобы встроенному серверу не приходилось открывать в системе порт? (В голову приходят только временные файлы в ФС, что не есть хорошо).



Последнее исправление: Rimbaud (всего исправлений: 2)

Есть ли подвох в такой архитектуре приложения?

Смотря что понимать под «подвохом».

Можно ли сделать как-нибудь так, чтобы общение между фронтендом и встроенным сервером шло не через порт?

Не знаю ни одного браузера, который работал бы с чем-то отличным от TCP.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

«Смотря что понимать под „подвохом“.»

на данном этапе любая критика приветствуется

«Не знаю ни одного браузера, который работал бы с чем-то отличным от TCP.»

браузеры же могут еще и с хтмл файламы из локальной ФС работать без TCP...

___


Если я не ошибаюсь, то эта архитектура приложения немножко повторяет клиент кошелька вебмани - там тоже встроенный сервер и само приложение имитирует что-то вроде ослика. Или я ошибаюсь?

Rimbaud
() автор топика
Ответ на: комментарий от Rimbaud

браузеры же могут еще и с хтмл файламы из локальной ФС работать без TCP...

Кхм. Если очень упрощенно, браузеры не умеют писать запросы в файлы, т.е. взаимодействовать с твоим сервером.

на данном этапе любая критика приветствуется

Единственный подвох, который вижу лично я - то, что ты мало знаешь об HTTP.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Единственный подвох, который вижу лично я - то, что ты мало знаешь об HTTP.

Это не так.

Если очень упрощенно, браузеры не умеют писать запросы в файлы, т.е. взаимодействовать с твоим сервером.

Вообще, в посте ясно сказано, что и браузер, и сервер встроенны в программу. Т.е. документ для рендеринга собственному браузеру можно отдавать прямо из программы без HTTP. Что касается всяких POST-запросов, что с ними конечно чуть сложнее, но тоже реализируемо.

Rimbaud
() автор топика

GUI там нужен не совсем обычный

А какой? Возможно вам хватит любого движка SVG? Его проще встроить в приложение.

belous_k_a
()
Ответ на: комментарий от Rimbaud

Вообще, в посте ясно сказано, что и браузер, и сервер встроенны в программу

В посте сказано: «бинарник запускает легкий веб-сервер и рендерит приложение написанное на HTML5/CSS3/JS через WebKit» - ничего о том, что веб-сервер и браузер исполняются в одном процессе (== встроены в одну программу).

документ для рендеринга собственному браузеру можно отдавать прямо из программы без HTTP.

Но, если уж они встроены и ты можешь обойтись без HTTP, то ты уж точно можешь обойтись и без веб-сервера (это, в конце концов, HTTP-сервер). Наверное, можно дергать твою библиотеку прямо из JS, но вот как раз здесь я вижу очень большой подвох %)

Если же ты хочешь иметь HTTP-сервер и браузер в одном процессе, и при этом общаться с HTTP-сервером через сокет, наверняка можно похачить браузер так, чтобы он использовал pipe (или socketpair на Linux) ;)

tailgunner ★★★★★
()
Ответ на: комментарий от drakmail

Кто ко мне взывал?
По теме - легкий веб-сервер - nodejs,klone. Вьювер - мелкое Qt приложение с компонентом вебкита, статически слинкованное со всем, включая libc.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

мелкое Qt приложение с компонентом вебкита, статически слинкованное со всем, включая libc.

ууууу... это уже метров 20 будет - не очень мелкое.

Kosyak ★★★★
()
Ответ на: комментарий от Rimbaud

Извините, но прошу вас уточнить ваш вопрос, в частности вам требуется документация по формату SVG или по «движкам» его воспроизводящим?

Если по первому то, по моему скромному мнению, наилучшим решением будет чтение спецификации: http://www.w3.org/TR/SVG11/ и изучение исходного кода изображений выполненных в Inkscape.

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

belous_k_a
()
Ответ на: комментарий от Rimbaud

Извините, сразу не сообразил, для так сказать, вхождения можно изучить множество вводных и бестолковых статей, как на источнике самого большого количества бестолковых статей так и в других местах. Также в поставке Qt раньше были примеры с SVG, и, повторюсь, посмотрите на inkscape.

belous_k_a
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.