Каковы преимущества и недостатки использования pubnub по сравнению с Amazon Simple Notification Service (sns)?

Для моего командного проекта мне нужно предложить, какой из них мы должны использовать PubNub или Amazon Simple Notification Service (SNS). Я нахожу PubNub очень простым в реализации и использовании, но я не смог найти в Интернете ничего конкретного, что говорило бы о его преимуществах и недостатках по сравнению с Amazon SNS.


person chandra mohan    schedule 30.12.2013    source источник


Ответы (1)


Сеть реального времени PubNub и Amazon SNS

Исходный ответ получен из Quora: Каковы преимущества и недостатки использования PubNub по сравнению с Amazon SNS?

Каковы преимущества и недостатки использования PubNub по сравнению с Amazon SNS?

И сеть реального времени PubNub, и Amazon SNS используют метафору публикации/подписки для отправки и маршрутизации данных. Однако на этом сравнение заканчивается. Эти два сервиса предоставляют разные функции и решают разные бизнес-задачи; и одно не может заменить другое.

Публикация на устройствах конечных пользователей PubNub против SNS

PubNub специально разработан для доставки данных с низкой задержкой (менее 0,25 секунды SLA) на устройства конечных пользователей, включая смартфоны, планшеты, браузеры и ноутбуки. Эти устройства могут находиться за брандмауэрами, средами NAT, центрами вышек сотовой связи и другими труднодоступными сетевыми средами. PubNub достигает этого, поддерживая всегда открытое соединение сокета для каждого устройства и используя это соединение с открытым сокетом для «проталкивания» данных с низкой задержкой. PubNub предоставляет более 50 клиентских библиотек SDK, упрощающих «подключение» к сети реального времени PubNub с помощью простого вызова API подписки PubNub.

И наоборот, у Amazon SNS нет другого способа получить доступ к клиентским устройствам, кроме как через электронную почту или SMS-уведомления. Таким образом, для приложений, использующих данные с малой задержкой (таких как многопользовательские игры, чат-приложения, приложения для совместной работы и т. д.), Amazon SNS не является подходящим решением для этой среды. Основной способ, которым Amazon SNS отправляет данные подписчикам, — это обратные вызовы электронной почты или HTTP. Запуск HTTP-сервера на мобильных, браузерных и настольных устройствах для получения этих уведомлений нецелесообразен как из-за сетевых брандмауэров, так и из соображений безопасности устройства. Amazon SNS в основном используется для межсерверных публикаций/подписок, а также для уведомлений конечных пользователей по электронной почте и в виде текстовых сообщений. Хорошее объяснение распространенных вариантов использования Amazon SNS приведено здесь: Как можно использовать простую службу уведомлений Amazon?. Amazon SNS — неподходящий инструмент для уведомлений в приложении в режиме реального времени. Amazon SNS больше похож на Tibco или Tuxedo, которые представляют собой системы публикации и подписки между серверами.

Особенности Сеть реального времени PubNub против SNS

Помимо простой публикации/подписки, сеть реального времени PubNub предлагает набор сервисов «строительных блоков» для любых приложений реального времени. Эти услуги не предлагаются Amazon SNS или другими сервисами Amazon:

  • PubNub Presence – предоставляет в режиме реального времени обновления для тех пользователей, которые находятся в сети, и оповещения, когда они выходят из сети. Эти обновления предоставляются через мультиплексный «сестринский канал» PubNub, который передает обновления присутствия всякий раз, когда изменяется количество пользователей в приложении. Дополнительный API под названием «Here_Now()» также обеспечивает подсчет пользователей в приложении с точностью до секунды.
  • Хранение/воспроизведение PubNub. PubNub автоматически сохраняет все данные, опубликованные на каждом канале, и предоставляет два механизма для извлечения этих данных: (а) простой запрос REST для получения всех данных сразу и (б ) механизм воспроизведения для «воспроизведения» этих данных, аналогичный цифровому видеорегистратору для телезаписей.
    PubNub Аналитика в реальном времени — PubNub предоставляет различные визуализации и статистику использования для отображения действий пользователей, географии и использования. Пример скриншота ниже:

Визуальные данные глобальной карты PubNub Real-Time Network (RTN)

  • PubNub Offline Mobile Push. PubNub также предоставляет резервный механизм для сообщений на мобильные устройства, когда мобильное приложение не работает (или находится в фоновом режиме). PubNub может вернуться к мобильному «push-уведомлению», гарантируя, что мобильный конечный пользователь будет уведомлен, даже когда телефон находится в его кармане. Как только приложение будет запущено, оно снова начнет использовать сеть реального времени PubNub.
  • Шифрование AES — PubNub предлагает встроенную поддержку шифрования AES 256, гарантируя, что данные останутся зашифрованными при маршрутизации через сеть PubNub. Хотя Amazon SNS обеспечивает HTTPS, это означает, что данные не шифруются при маршрутизации через сеть Amazon. Это немедленно делает недействительным использование Amazon SNS для HIIPA, SAS70 и других приложений, ориентированных на безопасность.
  • Мультиплексирование. PubNub улучшает многоканальную связь с помощью механизма, который позволяет передавать все темы данных через одно TCP-сокетное соединение. Благодаря мультиплексированию PubNub экономия наиболее очевидна при использовании ресурсов мобильных устройств, таких как телефоны, работающие от батареи, и более медленное подключение к сети. Данные сжимаются и объединяются с помощью настраиваемого режима работы с окнами, что обеспечивает более длительный срок службы батареи и улучшенное взаимодействие с конечным пользователем в постоянно меняющихся сетевых условиях.

Задержка (т.е. «в реальном времени») PubNub против SNS

Поскольку PubNub доставляет данные через существующий открытый сетевой сокет, задержка между публикацией и подпиской составляет менее 0,25 секунды в процентиле 95% подписанных устройств. Большинство людей воспринимают что-то как «в реальном времени», если событие воспринимается в пределах 0,6–0,7 секунды. Amazon SNS не предоставляет никаких гарантий задержки, и подавляющее большинство задержек измеряется в течение 1 секунды, а часто и на несколько секунд дольше. Опять же, это несколько не имеет значения; Amazon SNS предназначен для межсерверных уведомлений (или по электронной почте/SMS), когда задержка в несколько секунд часто является приемлемой и ожидаемой.

Каналы/темы и мультиплексирование PubNub и SNS

Amazon SNS позволяет создавать до 100 «тем» в учетной записи (см. Amazon Simple Notification Service (SNS )). «Тема» эквивалентна каналу PubNub. И наоборот, PubNub поддерживает неограниченное количество каналов PubNub. Некоторые клиенты сегодня регулярно используют более 1 миллиона каналов каждый месяц. Это позволяет каждому устройству конечного пользователя иметь собственный канал для прямого подключения.

Кроме того, поддержка PubNub для мультиплексирования позволяет клиентскому устройству одновременно подключаться к нескольким каналам PubNub, продолжая использовать один сетевой сокет. Это позволяет клиенту одновременно подписываться, например, на «частный» канал, специально связанный с одним устройством или набором устройств, принадлежащих одному и тому же лицу, и на «общедоступный» канал, на который также может подписаться группа или все население. .

Другим вариантом использования мультиплексирования может быть приложение для потоковой передачи цен на акции: предположим, вы хотите передавать изменения цен на акции для 1000 различных акций. У каждой акции будет свой собственный канал PubNub. Устройство конечного пользователя будет использовать мультиплексирование PubNub для подписки только на каналы PubNub, связанные с акциями, которые они хотят отслеживать.

Поскольку Amazon SNS не поддерживает мультиплексирование, такой вариант использования невозможен.

Надежность и избыточность Сеть реального времени PubNub против SNS

Сеть реального времени PubNub распределена по всему миру в 12 центрах обработки данных и продолжает расти. Все данные, публикуемые в глобальном облаке PubNub, автоматически реплицируются по всему миру, обеспечивая как низкую задержку по всему миру, так и непревзойденную надежность даже в случае отказа всего центра обработки данных. PubNub предлагает SLA до 99,999% времени безотказной работы для своей сети реального времени. Amazon SNS находится в стадии бета-тестирования и поэтому не имеет соглашения об уровне обслуживания.

Резюме сети реального времени PubNub и SNS

Amazon SNS имеет множество интересных применений, в основном связанных с межсерверными уведомлениями и оповещениями конечных пользователей по электронной почте/SMS. Первоначально он был разработан как способ организации данных между различными другими облачными сервисами Amazon AWS, и поэтому в основном используется для внутренних операций сервера и перемещения данных.

Сеть реального времени PubNub упрощает создание приложений реального времени для мобильных устройств, браузеров и рабочий стол, масштабируемый по всему миру до миллионов одновременных пользователей. Сегодня PubNub уже используется в более чем 2000 приложений по всему миру, охватывающих социальные сети, рекламу, игры, телекоммуникации и множество других рынков.

person Stephen Blum    schedule 31.12.2013
comment
Это неправда: Amazon SNS, наоборот, не может получить доступ к клиентским устройствам, кроме как через электронную почту или SMS-уведомления. Amazon SNS добавил нативную доставку сообщений через GCM и APNS около полугода назад. - person tster; 07.01.2014
comment
@tster, вы правильно заметили, спасибо за обновление. :-) Мы упоминаем, что Amazon SNS не может получить доступ к клиентским устройствам... и ссылается на маршруты, не являющиеся третьими лицами. По сути, GCM и APN являются сторонними поставщиками, которые загружают подключение заранее, в то время как SNS вызывает этих поставщиков подключений только издалека. Теперь, когда мы говорим о GCM и APNS, речь идет скорее о Push-уведомлениях, которые представляют собой решение другого типа и также предлагаются другими компаниями. - person Stephen Blum; 08.01.2014
comment
SNS также может доставлять в SQS или HTTP. HTTP не будет работать для мобильных устройств, но с доставкой в ​​SQS и приложением с длительным опросом SQS вы можете достичь большинства вещей, о которых вы говорите. - person tster; 08.01.2014
comment
Очевидно, вы откровенно говорите о том, кто вы есть, но то, что вы пишете о социальных сетях в целом, в некоторых случаях является преувеличением. Хотя ваше утверждение о том, что SNS предназначено для связи между серверами, верно, и вы правы в том, что эти варианты использования могут быть не самыми простыми или лучшими в SNS. Вот некоторые исправления: 1) Мультиплексирование - упомянутые вами варианты использования могут быть легко достигнуты с помощью комбинации SNS и SQS с SQS с длительным опросом клиента. - person tster; 08.01.2014
comment
2) 100 тем. Вы можете запросить увеличение количества тем здесь: aws.amazon.com/contact-us/ - person tster; 08.01.2014
comment
3) Задержки — я не знаю, откуда вы взяли цифры для SNS, но они определенно не такие, как у меня. Это может быть верно для сообщений электронной почты и SMS, но для сообщений http и SQS задержки 95-го процентиля должны быть намного лучше. Кроме того, вы ошибаетесь, полагая, что межсерверные приложения не чувствительны к задержкам. - person tster; 08.01.2014
comment
Хороший вопрос о задержках, и вы делаете отличные замечания, которые я хочу обязательно обсудить в нашем разговоре. SNS настраивается как установка для каждого региона, это не глобальный мультицентр обработки данных автоматически; Я знаю, что вы можете достичь этого каким-то образом, приложив некоторые усилия. Для сравнения, PubNub — это глобальная сеть реального времени с 14 центрами обработки данных, а также с автоматической репликацией для глобальной доступности и максимальной производительности. Ознакомьтесь с глобальными измерениями задержки для отправки и получения туда и обратно: uptime.pubnub.com/302344 - person Stephen Blum; 08.01.2014
comment
Да это правда. Я никоим образом не хочу принижать сервис pubnub. Мне он кажется лучшим во многих отношениях, если вы ищете обмен сообщениями в реальном времени с приложениями, работающими на пользовательских устройствах (телефонах, ПК и т. д.). - person tster; 09.01.2014