2010-07-31 2 views
3

Я хотел бы реализовать механизм, который предоставит RESTful API, который позволяет клиенту регистрировать интерес к теме с помощью сервера и получать асинхронные уведомления с сервера после регистрации процента. В архитектуре предприятия (обмена сообщениями) это известно как публикация/подписка «шаблон».Масштабируемое решение для нажатия на сервер?

С настольными приложениями это легко реализуется - однако с веб-приложениями это оказывается более сложным.

есть (предпочтительно с открытым исходным кодом) структура или библиотека, которая позволяет применять шаблон публикации/подписки к веб-приложениям ?.

Использование технологии Server может осуществляться одним из следующих языков: C, C++, PHP, Python, Ruby.

Я бегу на Ubuntu Linux 10.0.4

ответ

2

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

RSS, Atom довольно успешны, хотя они используют pull. Причина: нет необходимости иметь администрацию на сервере людей, которые подписались, чтобы определить, кто больше не интересуется (он не работает в течение долгого времени) или имеет механизм для получения всех данных для подписчиков. Используя push, вам нужно сделать очень мало на сервере, в то время как клиенты будут извлекать только небольшое количество данных каждый раз.

Pull стоит немного больше пропускной способности, что в любом случае дешево, в то время как это значительно экономит ваше время на CPU и программном обеспечении, что довольно дорого.

0

Я предлагаю вам ознакомиться с протоколом STOMP и его клиентами-питонами (я использую stomp.py). Это должно удовлетворить все ваши потребности.

+0

Хм, только проблема в том, что клиенты, о которых я думаю (веб-браузеры), не могут запускать python AFAIK (по крайней мере, НЕ без плагина, который является целым другим чайником рыбы). – morpheous

+0

В браузерах не нужно запускать python, они могут запускать клиент STOMP javascript, например, если браузеры принимают веб-сокеты. То же самое для сервера (его можно реализовать на любом другом языке). STOMP - это всего лишь спецификация. Клиенты Javascript STOMP выглядят интересными. Вот интересная страница об этом: http://www.kaazing.org/confluence/display/Doc/JavaScript+STOMP+Client+How-To – marbdq

Смежные вопросы