Push или Pull для сервера автоматизации почти в реальном времени? - PullRequest
4 голосов
/ 12 сентября 2008

В настоящее время мы разрабатываем сервер, на котором клиент запрашивает интерес к изменениям определенных элементов данных, а когда эти данные изменяются, сервер отправляет данные обратно клиенту. В настоящее время ведутся активные дискуссии о том, лучше ли клиенту запрашивать эти данные.

Что считается идеальным методом с точки зрения производительности, масштабируемости и сетевой нагрузки передачи данных в среде, близкой к реальному времени?

Обновление: Вот ссылка , которая дает пищу для размышлений относительно обновлений пользовательского интерфейса.

Ответы [ 3 ]

3 голосов
/ 12 сентября 2008

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

Отраслевые стандарты - такие как OPC, GID - поддерживают оба. Сервер отправляет обновления подписанным клиентам, но клиент может извлекать некоторые редко используемые данные, не связываясь с подпиской.

1 голос
/ 12 сентября 2008

Пока клиент инициирует соединение (чтобы обойти проблемы брандмауэра и NAT), все в порядке.

Если вам нужно отправить несколько разных типов данных, вы можете попросить клиента указать, какой тип он хочет, но это необходимо только один раз для каждого соединения. Затем сервер может продолжать отправлять обновления, как они есть.

Было бы меньше сетевого трафика, чтобы сервер отправлял обновления без того, чтобы клиент постоянно запрашивал обновления.

0 голосов
/ 12 сентября 2008

Что у вас на стороне клиента? Многие брандмауэры разрешают исходящие запросы, но блокируют входящие. Другими словами, пул может быть единственным вариантом, если вы пересекаете Интернет, если вы не отправляете электронные письма.

...