0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 11
1

Органайзер на С++ с веб-интерфейсом

09.03.2016, 22:38. Показов 2837. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Очень нужен совет в непростом деле разработки архитектуры клиент-серверного приложения. Если вкратце, суть такова. Необходимо создать некоторую специализированную программу, которая будет получать от клиента записи о мероприятиях, с указанием даты, временного интервала и соответственно идентификатором клиента, разместившего данную запись. Хранить всё это добро она будет в базе и собственно на работе с неким набором таблиц её возможности и заканчивались бы, если бы не было необходимости принимать и выдавать информацию клиенту через веб-интерфейс. И тут возникает загвоздка - в классы, сокеты и прочие радости можем, но организация веб-интерфейса натуральная Терра Инкогнита.

Мало того, что он должен обновляться в реальном времени, отражая изменения в базе, поддерживать блокировки при открытии базы на запись и прочее. Он ещё должен быть по идее независимым и находиться вне сишного кода. Поскольку не является основным.

Вопрос - как лучше организовать такого рода "плагин"? Очень мало опыта в этом вопросе и на ум приходят какие-то совершенно топорные варианты. А хотелось бы подойти к делу обстоятельно и без костылей.

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2016, 22:38
Ответы с готовыми решениями:

База данных с веб-интерфейсом
Задача создать базу данных и прикрутить к ней веб интерфейс, как это можно реализовать?. ...

Базы данных с веб интерфейсом
Задача следующая: Необходимо создать базу данных с веб интерфейсом, то есть при открытии окна...

БД с веб-интерфейсом: на чем можно реализовать
Здраствуйте. Не судите строго, может вопрос не совсем коректний но все же: Я хочу сделать базу...

Как настроить почтовый сервер с веб-интерфейсом?
Добрый день All. Прошу помощи, т.к. недавно работаю линуксом. Есть дедик сервер на CentOS...

13
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 12:09 2
А нужно именно сервер на С++ запилить? Просто можно написать (F)CGI приложение, которое будет крутиться под тем же апачем. В разы упрощает задачу.
Цитата Сообщение от John Smith Посмотреть сообщение
Мало того, что он должен обновляться в реальном времени, отражая изменения в базе, поддерживать блокировки при открытии базы на запись и прочее.
сделать опрос на AJAX'е, либо использовать Websocket (есть библиотека для плюсов Websocket++). Через Websocket сложнее, т.к. придется дополнительный код на С++ писать.
Цитата Сообщение от John Smith Посмотреть сообщение
Он ещё должен быть по идее независимым и находиться вне сишного кода.
Естественно, это будет HTML/CSS/JS
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 11
10.03.2016, 14:42  [ТС] 3
Цитата Сообщение от Kastaneda Посмотреть сообщение
Естественно, это будет HTML/CSS/JS
Да, но возникает вопрос что будет генерировать этот HTML/CSS/JS и самая животрепещущая проблема - как правильно передавать информацию из веб-формы в С-приложение. На глаза попадалось решение, которое собирало из данных веб-формы некую консольную команду с заполнением нужных параметров и соответственно вызывало С-приложение этой командой. Но это не вариант. Хотелось бы каким-то образом организовать прослойку (тот самый, упомянутый выше, "плагин"), который будет перекладывать данные из С-программы в веб-форму и обратно.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 14:58 4
Цитата Сообщение от John Smith Посмотреть сообщение
Да, но возникает вопрос что будет генерировать этот HTML/CSS/JS и самая животрепещущая проблема - как правильно передавать информацию из веб-формы в С-приложение.
Во многом зависит от ответа на этот вопрос
Цитата Сообщение от Kastaneda Посмотреть сообщение
А нужно именно сервер на С++ запилить? Просто можно написать (F)CGI приложение, которое будет крутиться под тем же апачем.
Еще как вариант под виндой можно использовать ATL server, жесткая вещь, но удобней, чем обычный (F)CGI.

А так пишем HTML (CSS/JS будут написаны 1 раз и меняться не должны). Пусть этот HTML содержит что-нибудь типа такого
HTML5
1
<span>Username: {{USERNAME}}</span>
В С++ читаем HTML файл и заменяем строку {{USERNAME}} на реальное значение. Результат отдаем клиенту.

Добавлено через 44 секунды
Цитата Сообщение от John Smith Посмотреть сообщение
как правильно передавать информацию из веб-формы в С-приложение
Это будет POST запрос, браузер сам передаст всю информацию. Твоя задача эту информацию прочитать.
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 11
10.03.2016, 16:45  [ТС] 5
Цитата Сообщение от Kastaneda Посмотреть сообщение
А нужно именно сервер на С++ запилить?
Да. Именно на Си. Не спрашивай зачем, ибо не я это решение принимал.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 17:09 6
Ну тогда вариант как я написал выше. Я так понимаю все на сокетах? Тогда читает запрос от браузера, он тебе будет посылать GET или POST запросы. На GET отдаешь HTML, на POST читаешь данные из формы и возвращаешь HTML с ответом.
Начни с парсинга HTTP, хотя бы нужно понимать GET это или POST. Сделай 2 отдельные ф-ции для обработки GET и POST. В ответ нужно еще HTTP заголовки писать, прочитай про HTTP.
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 11
10.03.2016, 17:13  [ТС] 7
Не буду греха таить, выложу всё как есть. Собственно сама программа, которая работает с базой, обрабатывает запросы, выводит информацию в консоль уже есть. И есть задача прикрутить к ней веб-интерфейс. С такой задачей я прежде ни разу не сталкивался.

Моё видение ситуации такое (в самых простых терминах): Надо организовать некий веб-сервер, который будет отдавать клиенту страничку со спрятанным в ней своеобразным тонким клиентом, этот тонкий клиент будет цепляться к С++ приложению и работать посредником между ним и собственно веб-страницей.

Возможно всё это звучит крайне по-идиотски, но к сожалению это неизбежно, поскольку случай этот в моей практике - первый.

Цитата Сообщение от Kastaneda Посмотреть сообщение
Я так понимаю все на сокетах?
А какие ещё возможны варианты? Просто любопытно.

Цитата Сообщение от Kastaneda Посмотреть сообщение
Тогда читает запрос от браузера, он тебе будет посылать GET или POST запросы.
То есть, моя программа должна ещё и быть своего рода веб-сервером?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
10.03.2016, 17:42 8
Цитата Сообщение от Kastaneda Посмотреть сообщение
А нужно именно сервер на С++ запилить?
Цитата Сообщение от John Smith Посмотреть сообщение
Да. Именно на Си.
Так на C или на C++?
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 17:47 9
Цитата Сообщение от John Smith Посмотреть сообщение
То есть, моя программа должна ещё и быть своего рода веб-сервером?
ну если она слушает сокет, то это уже сервер.

Цитата Сообщение от John Smith Посмотреть сообщение
А какие ещё возможны варианты?
Думаю есть готовые обертки над сокетами для работы с HTTP, я с такими не работал, но уверен, что такое есть.
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 11
10.03.2016, 17:49  [ТС] 10
Спасибо. Примерно представляю теперь направление.
0
18822 / 9826 / 2401
Регистрация: 30.01.2014
Сообщений: 17,260
10.03.2016, 18:05 11
John Smith, можно еще посмотреть вот на такое решение: http://www.webtoolkit.eu/wt/ru/
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 18:17 12
DrOffset, оно же, я так понимаю, под каким-то HTTP сервером должно работать?
0
18822 / 9826 / 2401
Регистрация: 30.01.2014
Сообщений: 17,260
10.03.2016, 18:22 13
Цитата Сообщение от Kastaneda Посмотреть сообщение
оно же, я так понимаю, под каким-то HTTP сервером должно работать?
Я так понимаю нет. Оно сам себе режиссер.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
10.03.2016, 18:43 14
Цитата Сообщение от DrOffset Посмотреть сообщение
Я так понимаю нет. Оно сам себе режиссер.
я почитал не много, он может и сам, а может под каким-нибудь сервером (даже IIS). Крутая штука.

Добавлено через 14 минут

Не по теме:

Блин, там готовый чат на Websocket есть, а я его несколько месяцев при помощи Websocet++ писал. Знал бы раньше, заказчику бы предложил все равно не предложил, для меня это хороший опыт был :)

0
10.03.2016, 18:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2016, 18:43
Помогаю со студенческими работами здесь

Подскажите систему учета трафика с веб-интерфейсом
Здравствуйте. Перерыл гугл. Может кто подскажет простую систему учета трафика под ubuntu. Вот что...

Разработка приложений с веб интерфейсом для локального применения
Привет, хочу сделать приложение на ASP.NET Core с Web-приложений, скажите какие технологии надо,...

Знатоки, подскажите, пожалуйста, какую среду и СУБД лучше юзать, чтобы сделать базу данных (SQL) на Java, с веб-интерфейсом, защитой, формами и запрос
Знатоки, подскажите, пожалуйста, какую среду и СУБД лучше юзать, чтобы сделать базу данных (SQL) на...

Органайзер
Хочу написать для себя удобный органайзер. Умею работать с sql server, но не хочу так делать. Ведь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru