На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF
  
> Актуализация данных в реальном масштабе времени
    Вопрос пока не касаемо реализации на конкретной СУБД, хочется обсудить возможные подходы, их плюсы и минусы ...

    Ситуация

    У пользователя есть некий интерфейс, назовем, к примеру, его "Таблица Заказов". Нужно чтобы в многопользовательском режиме отображались данные по заказам и обновлялись по мере их обработки другими пользователями в реальном масштабе времени или близко к тому.

    Варианты которые приходят на ум:

    1) Тупо обновляться раз в N сек
    2) Пользователь при модификации данных пишет в специальную таблицу временной_штамп::название_таблицы или временной_штамп::название_запроса. Мы читаем его раз в N сек, и если старый временной штамп меньше того, что помним - обновляемся по п.1
    3) Завязать работу клиента через программного тонко клиента на сервере, и тонкий клиент будет уведомлять о необходимости обновления данных в интерфейсе
    4) После модификации клиентом данных рассылается бродкаст по сегметну сети по UDP, клиентская программа "слушает" и обновляет по мере прихода уведомлений
    5) Похожее на п.4, клиентская программа связывается с тонким программным клиентом на сервере по TCP и "уведомляет" его, а он уже такие же уведомления рассылает другим клиентским программам
    6) (Касаемо PostgreSQL) Написать свой "обработчик языкового расширения", в котором реализовать функцию раccылки уведомлений по UDP

    Ваши соображения?
    Сообщение отредактировано: JoeUser -
      Push-сервер.
        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.
          Всем спасибо! :P
          Блин, вот что значит не прочесть всю документацию - нашел таки свой вариант для PostgreSQL. Буду запускать отдельный поток с ожиданием, использовать буду это. Думаю вопрос закрыт, осталось только попробовать.

          Добавлено
          Цитата Akina @
          Push-сервер.

          Кстати, а что это за чудо? Гугыль толком ничего не сказал мне, или я неправильно спрашивал. По аббревиатуре понятно вроде, про реализации - ничего.
            Цитата JoeUser @
            что это за чудо?

            Технология, комплементарная аяксу... например, что такое RSS - знаешь ведь? чистой воды push-технология...
              RSS, имхо тут никаким боком. По RSS уведомления клиента нет, есть только агрегация новостей в ленту. Иными словами пока RSS клиент не опросит сервер, новостей не получит.

              По поводу AJAX тож сомнения. Ибо основная фишка - фоновый обмен, и/или модификация HTML-странички без перегрузки. Но ... изменение данных инициируется клиентом. Возможно тут есть механизмы поддержки постоянных каналов, тогда и сервер может уведомить ... но я пасс. Знания концептуальные.

              Из более правильного: ICQ, Jabber ... подобное, но там постоянный коннект.
                Цитата JoeUser @
                RSS, имхо тут никаким боком. По RSS уведомления клиента нет, есть только агрегация новостей в ленту. Иными словами пока RSS клиент не опросит сервер, новостей не получит.

                Это ты говоришь о наиболее часто встречающейся реализации. Она как раз однобока...

                Цитата JoeUser @
                По поводу AJAX тож сомнения. Ибо основная фишка - фоновый обмен, и/или модификация HTML-странички без перегрузки. Но ... изменение данных инициируется клиентом.

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

                Посмотри для начала (чтобы было, откуда отталкиваться), вот это, например...
                  Пасип! Теперь буду знать как это называется. Как-то писал на PHP страничку с бесконечным соединением, которая порциями выплевывала контент. Не знал, что это подобие push :P

                  Добавлено
                  Кстати ... Вернусь от клиента, проверю как работает ICQ (Miranda) over HTTPS, поснифаю чуток ... заинтересовало! :)
                    Да, пуш-технология, само собой, подразумевает периодическое (обычно настраивают 1..5 минут) подтверждение, что клиент ещё жив (эдакий keep-alive), чтобы пуш-сервер не слал свои изменения до второго пришествия.
                      Все верно :)
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0318 ]   [ 15 queries used ]   [ Generated: 7.05.24, 09:42 GMT ]