Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.186.201] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Вопрос пока не касаемо реализации на конкретной СУБД, хочется обсудить возможные подходы, их плюсы и минусы ...
Ситуация У пользователя есть некий интерфейс, назовем, к примеру, его "Таблица Заказов". Нужно чтобы в многопользовательском режиме отображались данные по заказам и обновлялись по мере их обработки другими пользователями в реальном масштабе времени или близко к тому. Варианты которые приходят на ум: 1) Тупо обновляться раз в N сек 2) Пользователь при модификации данных пишет в специальную таблицу временной_штамп::название_таблицы или временной_штамп::название_запроса. Мы читаем его раз в N сек, и если старый временной штамп меньше того, что помним - обновляемся по п.1 3) Завязать работу клиента через программного тонко клиента на сервере, и тонкий клиент будет уведомлять о необходимости обновления данных в интерфейсе 4) После модификации клиентом данных рассылается бродкаст по сегметну сети по UDP, клиентская программа "слушает" и обновляет по мере прихода уведомлений 5) Похожее на п.4, клиентская программа связывается с тонким программным клиентом на сервере по TCP и "уведомляет" его, а он уже такие же уведомления рассылает другим клиентским программам 6) (Касаемо PostgreSQL) Написать свой "обработчик языкового расширения", в котором реализовать функцию раccылки уведомлений по UDP Ваши соображения? |
Сообщ.
#2
,
|
|
|
Push-сервер.
|
Сообщ.
#3
,
|
|
|
MS SQL Query Notification
Добавлено Цитата Query notifications allow programmers to design applications that query the database only when there is a change to information that the application has previously retrieved. |
Сообщ.
#4
,
|
|
|
Всем спасибо!
Блин, вот что значит не прочесть всю документацию - нашел таки свой вариант для PostgreSQL. Буду запускать отдельный поток с ожиданием, использовать буду это. Думаю вопрос закрыт, осталось только попробовать. Добавлено Цитата Akina @ Push-сервер. Кстати, а что это за чудо? Гугыль толком ничего не сказал мне, или я неправильно спрашивал. По аббревиатуре понятно вроде, про реализации - ничего. |
Сообщ.
#5
,
|
|
|
Цитата JoeUser @ что это за чудо? Технология, комплементарная аяксу... например, что такое RSS - знаешь ведь? чистой воды push-технология... |
Сообщ.
#6
,
|
|
|
RSS, имхо тут никаким боком. По RSS уведомления клиента нет, есть только агрегация новостей в ленту. Иными словами пока RSS клиент не опросит сервер, новостей не получит.
По поводу AJAX тож сомнения. Ибо основная фишка - фоновый обмен, и/или модификация HTML-странички без перегрузки. Но ... изменение данных инициируется клиентом. Возможно тут есть механизмы поддержки постоянных каналов, тогда и сервер может уведомить ... но я пасс. Знания концептуальные. Из более правильного: ICQ, Jabber ... подобное, но там постоянный коннект. |
Сообщ.
#7
,
|
|
|
Цитата JoeUser @ RSS, имхо тут никаким боком. По RSS уведомления клиента нет, есть только агрегация новостей в ленту. Иными словами пока RSS клиент не опросит сервер, новостей не получит. Это ты говоришь о наиболее часто встречающейся реализации. Она как раз однобока... Цитата JoeUser @ По поводу AJAX тож сомнения. Ибо основная фишка - фоновый обмен, и/или модификация HTML-странички без перегрузки. Но ... изменение данных инициируется клиентом. Вот именно. А пуш - его антипод. Изменение локальной HTML-страницы вызывается фоновым обменом, который инициирует пуш-сервер. А клиентский код в браузере формирует сокет, который принимает этот трафик и соответствующим образом модифицирует отображаемую веб-страницу (хотя чаще выполняется простая замена веб-страницы блока или фрейма на свежеполученную). Посмотри для начала (чтобы было, откуда отталкиваться), вот это, например... |
Сообщ.
#8
,
|
|
|
Пасип! Теперь буду знать как это называется. Как-то писал на PHP страничку с бесконечным соединением, которая порциями выплевывала контент. Не знал, что это подобие push
Добавлено Кстати ... Вернусь от клиента, проверю как работает ICQ (Miranda) over HTTPS, поснифаю чуток ... заинтересовало! |
Сообщ.
#9
,
|
|
|
Да, пуш-технология, само собой, подразумевает периодическое (обычно настраивают 1..5 минут) подтверждение, что клиент ещё жив (эдакий keep-alive), чтобы пуш-сервер не слал свои изменения до второго пришествия.
|
Сообщ.
#10
,
|
|
|
Все верно
|