Название: Организация взаимодействия прикладного и веб-сервера Отправлено: sergek от Август 25, 2016, 18:34 Коллеги, проблема, вроде простая, но у меня нет нужного опыта.
Имеется серверное приложение, задача которого - обеспечение взаимодействия с различными устройствами (опрос состояния и управление этими устройствами). Сейчас пользователи подключаются к нему через интернет с клиентского приложения, которое может работать в синхронном (запрос/ответ) и асинхронном режиме (сервер сам чего-то там делает, например, опрашивает устройства, а клиент просто получает результаты опроса и отображает их). Клиентская программа должна работать на разных платформах - компьютерах, смартфонах, планшетах. Поэтому решено сделать веб-интерфейс с таким же функционалом (в дополнение к существующему клиенту). Поднимаем веб-сервер там же, где и серверное приложение. Все три компонента (клиент, сервер и веб-сервер) написаны на Qt. Пока не соображу, как обеспечить взаимодействие серверного приложения с веб-сервером. Я вижу два пути: - на веб-сервере разместить весь функционал серверного приложения. Но что-то мне не нравится это - оба сервера многопотоковые, два типа соединения, два протокола, какая-то каша получается; - межпроцессное взаимодействие. А тут много вариантов. Может, в моей ситуации есть что-то очевидное? Я поэтому и описал задачу, как мне кажется, излишне подробно. Помогите с советом, пожалуйста. Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: VPS от Август 25, 2016, 19:56 Я бы, наверное, остановился на взаимодействии web-приложения с серверным по протоколу, который уже используется для взаимодействия с desktop-ным клиентом.
P/S: а правильно я понял, что пользователи будут работать через браузер? Если так, то для оповещения клиентов в асинхронном режиме можно использовать WebSocket. Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: sergek от Август 25, 2016, 20:00 P/S: а правильно я понял, что пользователи будут работать через браузер? Если так, то для оповещения клиентов в асинхронном режиме можно использовать WebSocket. Да, через браузер. Насчет WebSocket - мне казалось, что далеко не все браузеры его поддерживают, или я ошибаюсь?Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: VPS от Август 25, 2016, 20:13 Да, через браузер. Насчет WebSocket - мне казалось, что далеко не все браузеры его поддерживают, или я ошибаюсь? Да, вроде не все.Но тогда Вам надо будет на самой странице настраивать интервал опроса web-сервера, чтобы имитировать работу асинхронной части. Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: qate от Август 26, 2016, 13:06 но зачем менять хорошее решение с клиентом на qt на веб браузер ?
Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: sergek от Август 26, 2016, 17:57 Чтобы не ставить программу пользователям. И чтобы не делать клиентских програм под винды, андроид и линукс.
Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: qate от Август 26, 2016, 21:41 Чтобы не ставить программу пользователям. И чтобы не делать клиентских програм под винды, андроид и линукс. это иллюзия, ибо браузерное решение очень плохое, интерфейс нормальный написать или нельзя или сложно, да и неудобно кроме плюса "что не писать клиента" одни минусы а еще сам браузер глючит говорю как переходящий от браузера на "клиент" ) Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: Bepec от Август 27, 2016, 09:09 Моё мнение - надо писать отдельно веб сервер и расширять протокол под него. Ибо с клиентским апи сделать нормальную веб морду не получится. Точнее нормальную можно, но она будет дырявой :D
Название: Re: Организация взаимодействия прикладного и веб-сервера Отправлено: sergek от Август 27, 2016, 12:04 Спасибо, именно к этому выводу я тоже пришел.
|