Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / взаимодействие программы и базы данных на сайте / 15 сообщений из 15, страница 1 из 1
16.01.2014, 21:50
    #38528919
registered
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
здравствуйте
есть сайт с определённой базой данных (mysql)
каким образом можно сделать stand-alone приложение, позволяющее взаимодействовать с БД (типа, как клиент, front-end), при условии, что, на хостинге разрешено работать с базой только через localhost
каким образом сделать связь программы и базы? то есть, нужен какой-то протокол, туннель. а через HTTP - это, наверно, будет не слишком надёжно
к тому же, должна быть возможность работать офф-лайн, то есть, должна быть какая-то локальная база, а при соединении с интернетом - синхронизировать
какие выбрать средства разработки для подобной "задачи"?
или, предоставлять отдельное (исполняемое) приложение для доступа к сайту - плохая затея? ну есть же всякие клиенты жж, вконтактов. но эти жж, вконтакты, наверняка, представляют какой-то API
...
Рейтинг: 0 / 0
16.01.2014, 22:10
    #38528937
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registeredпри условии, что, на хостинге разрешено работать с базой только через localhost
менять хостинг
...
Рейтинг: 0 / 0
16.01.2014, 22:22
    #38528949
Дринкинс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registered, с базой взаимодействовать с помощью JSON. HTTP - чем не надёжно? Надёжнее не придумаешь. Если хочется push'ей и прочего - можно заюзать WebSockets.

Десктоп-приложение можно реализовать на Qt. При желании можно даже ВЕБ-морду в Stand-Alone приложении заюзать, взяв QtWebKit, и запихав все ресурсы в приложение.

В качестве "оффлайн"-базы заюзать SQLite. Синхронизацию прийдется писать самому. ИМХО - по-другому никак.
...
Рейтинг: 0 / 0
16.01.2014, 22:26
    #38528954
Дринкинс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
Опять же непонятна цель этой задачи... Да, ВК и прочие предоставляют АПИ. Базируется он на всё том же HTTP и JSON. Так что сложности никакой нет: как к БД отправляешь запрос -> получаешь ответ - так же и к сайту: запрос-ответ, только в JSON'е. Опять же имеется плюс - асинхронность.
...
Рейтинг: 0 / 0
16.01.2014, 22:37
    #38528969
registered
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
веб-морды, собственно, нету. её тоже нужно сделать
по-хорошему, хотят 2 приложения - одно через сайт, а другое - отдельно. "там, где нет интернета" (где тут смайлик с выпученными глазами?)
хотелось бы отделаться одним
делать только одно приложение, а на сайт - только выгружать данные (когда онлайн - работать напрямую с базой данных). а веб-интерфейс - обойдутся
или делать прогу со встроенной веб-мордой, и на сайте использовать оную же?
то есть, нужно делать всё то же "веб-приложение"
...
Рейтинг: 0 / 0
16.01.2014, 22:38
    #38528971
registered
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
непонятно, что первично. то есть, всё-таки, придётся делать на сайте
...
Рейтинг: 0 / 0
16.01.2014, 23:51
    #38529027
Дринкинс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registered, и всё же непонятно, зачем это. Для целей администрирования? Администратор сайта что, в хате-мазанке, в глухой деревне сидит, через пиратский спутниковый интернет, заюзанный через метеоспутник с помощью антенны из ржавого тазика? Для клиента, которому новости/каменты почитать? В зависимости от задачи уже и надо плясать. Может убедить заказчика, что интернет с более-менее нормальной скоростью есть уже везде, и городить подобные костыли нет никакой необходимости? В этом случае всё решается "толстым" ВЕБ-приложением, взаимодействующим по AJAX с сервером, чтоб страницу на каждый чих не перегружать.
...
Рейтинг: 0 / 0
17.01.2014, 10:09
    #38529180
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
ДринкинсМожет убедить заказчика, что интернет с более-менее нормальной скоростью есть уже вездеФормально - да, но как только появляются конкретные требования к минимальной скорости, стабильности и количеству обрывов, внезапно оказывается, что далеко не везде даже внутри МКАД... Желающие продемонстрировать бесперебойный беспроводной интернет на скорости хотя бы 100 кбит/с без обрывов хотя бы в течение 4 часов на лыжном стадионе в Химках (на ул. Мичурина) и в здании по адресу Волоколамское шоссе, д. 84, к. 9 могут даже рассчитывать на денежную компенсацию в случае удачи...
...
Рейтинг: 0 / 0
17.01.2014, 10:17
    #38529191
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registeredделать только одно приложение,
можно и так. Один сайт на хостинге, другой - локальный
и репликация между базами
...
Рейтинг: 0 / 0
17.01.2014, 10:20
    #38529194
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registeredна хостинге разрешено работать с базой только через localhost
каким образом сделать связь программы и базы?Зачастую возможен вариант работы через SSH-туннель.
...
Рейтинг: 0 / 0
17.01.2014, 15:10
    #38529710
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
каким образом можно сделать stand-alone приложение, позволяющее взаимодействовать с БД (типа, как клиент, front-end), при условии, что, на хостинге разрешено работать с базой только через localhost


Никаким. Если не пробросить порт MySQL наружу через тунель.


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

Через SSH или VPN.

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

Должна -- так пусть будет. синхронизировать надо -- синхронизируй.

какие выбрать средства разработки для подобной "задачи"?

Голова, руки, мозг.

или, предоставлять отдельное (исполняемое) приложение для доступа к сайту - плохая затея? ну есть же всякие клиенты жж, вконтактов. но эти жж, вконтакты, наверняка, представляют какой-то AP

Смотря кому предоставлять.
...
Рейтинг: 0 / 0
17.01.2014, 15:25
    #38529744
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registered,

ну и пускай себе работают с локальной базой. А синхронизацию сделать по различиям... то есть при работе с локальной базой ведём учёт запросов на вставку/удаление/изменение записей в базе (если не предусмотрено создание/изменение/удаление таблиц разумеется). Как я понимаю, само приложение рассчитано на работу с записями по отдельности, а значит никаких доп. действий выполнять не придётся (иначе, все where надо заменять на список выбранных id записей, предварительно запуская "select id ..." по тем же условиям). После каждого insert надо получаться список вставленных строк. Итак, есть список для синхронизации...

Соединяемся с удалённым скриптом синхронизации по имени пользователя и паролю, запрашиваем все изменения на сервере после последней синхронизации. выполняем у себя, при том, все delete запросы уменьшают id всех манипуляций в нашем "логе" с большим id на 1, а insert - увеличивают на 1.

соединяемся снова, что бы отправить свои "логи" на сервер. На сервере просто выполняем все запросы.

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

Не знаю, возможно есть уже готовые механизмы двусторонней синхронизации, у меня просто нету опыта с базами данных на десктопах. (это так, мысли... вдруг помогут)
...
Рейтинг: 0 / 0
17.01.2014, 16:26
    #38529863
registered
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
Изопропилregisteredделать только одно приложение,
можно и так. Один сайт на хостинге, другой - локальный
и репликация между базамину из сообщения Дринкинса мне показалось, что веб-морду можно автономно использовать в приложении. а если поднимать целиком локальный сайт, то не годится

если она будет подгружаться с сервера, то какая разница между приложением и браузером?

Дринкинси всё же непонятно, зачем этонапример, есть на сайте информация об определённых мероприятиях, участниках, и результатах оных (т.е., база, с возможностью выборки о том, кто, где, когда, а не просто список. каждому сопоставлены свои поля, которые рассчитываются так-то и так-то)
часть - проходит в интернете, часть - очные
то, что проходит в интернете, заполняется через сайт, то, что проходит на местах - вносится в программу, потом обработанные результаты на сайт вставляются вручную
сейчас вручную вставляется всё - просто в виде таблиц, скриншотов, т.е., нет ни веб-морды, ни обычной морды. в программу вставляют из excel-таблиц, на сайт постят в виде скриншотов и html-таблиц.

собственно, смысл - одна общая база на сайте, и "две" оболочки к ней (одна - через веб, другая - в виде приложения)
и всё делать через интернет "на местах" - даже если он и есть, то всё делать через браузер - ждать, пока загрузится, то там обрывы связи- даже если их и нет, то как-то спокойнее, и быстрее. - обычное приложение как-то надёжнее.

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

но тогда если делать только одно приложение, то надо смириться, что "через браузер" ничего изменить будет нельзя, и на каждый чих запускать программу (даже когда нужно заполнять проходящие в онлайне мероприятия, когда было бы разумнее всё делать, "не отходя от браузера")
а делать два - собственно, но зачем?
...
Рейтинг: 0 / 0
17.01.2014, 16:33
    #38529880
registered
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
собственно, вносятся в программу не по окончании. а непосредственно в момент проведения, и от этого будет зависеть, какие будут следующие участники, т.д.
т.е., это не как просто информация (типа такого-то числа состоялось ...), а интерактивный "процесс"
...
Рейтинг: 0 / 0
17.01.2014, 16:37
    #38529888
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие программы и базы данных на сайте
registeredсобственно, две программы с одинаковым функционалом делать было бы неразумно.
по мне, так стандартные приложения (вообще все) намного лучше, чем все эти веб-интерфейсы, с перезагружаемыми формами, и т.д. - вообще веб-интерфейс как класс.

функционал делайте в виде вебсервиса

броузерное и декстопное приложение - просто легковесные пользовательские оболочки
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / взаимодействие программы и базы данных на сайте / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]