вторник, 28 июля 2009 г.

The Pushbutton Web: работа в реальном времени становиться реальной

Перевод статьи Anil Dash "The Pushbutton Web: Realtime Becomes Real"

"Pushbutton" это название, которое я полагаю приобретет веб, где любой сайт или приложение смогут в реальном времени отправлять сообщение веб-масштабируемой аудитории, используя бесплатные и открытые технологии при низких затратах и не полагаясь на какие либо одиночные компании, такие как Twitter или Facebook. Что бы дать возможность развиться комплексу нового функционала и приложений, которые до этого невозможно было построить среднестатистическому разработчику, кусочки этой платформы необходимо собрать вместе.

Основа


Наиболее интересный участок новых разработок в вебе являются нововведения возникающие вокруг обмен сообщениями в реальном времени, способность доставлять обновление от веб сайта или приложения в одну или две секунды. В то время как разносторонние системы, подобно "Yahoo News Alerts", или feed readers, подобно "Google Reader", предлагают простой путь к передачи довольно быстрых уведомлений, они до сих пор строят инфраструктуру которая полагается на многократно опрашиваемые веб страницы. Эти системы равноценны постоянному нажатию в веб браузере кнопки "Обновить".
Pushbutton Flow

Пока такие системы используют этот неэффективный метод передачи изменений, новые платформы, подобно Twitter, Facebook и FriendFeed, фокусируются на построении инфраструктуры действительно масштабируемых решения по передаче обновлений используя свои проприетарный сети. Много внимания приходится уделять для отслеживания ограничения Twitter-а в 140 символов, или новостную ленту Facebook-а, но для применения опыта пользователя на этих платформах используется вынужденная технология непосредственно которая доставляет такие изменения. Первые системы, подобно мгновенного обмена сообщениями или чат, позволяют в реальном времени обмениваться сообщениями между двумя людьми или небольшой группой, но тяжело доставлять такие сообщения в реальном времени к любому человеку в мире который хочет получать их, если только вы не имеете много денег, квалификации и инфраструктуры.

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

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

Определение "Pushbutton"


Концепция и потенциал "Pushbutton" очень широк, как и Ajax - это не одна технология или изобретение, это целое семейство технологий, некоторые из них были в разработки или развертывании в течении почти 10 лет, что в совокупности дает этот новый веб в реальном времени. "Pushbutton" основа построена на следующих системах:
  • Atom и RSS: Наиболее общие feed формыты для синдикатов в вебе
  • PubSubHubBub и RSSCloud: Мощные новые "узлы"(hub) для распространения сообщений
  • Web Hooks: Простые веб-сервисы для получения сообщений, а не для отправка их

"Pushbutton" системы полагаются на главный веб протокол HTTP для коммуникации между составными частями. Архитектура доставки сообщений "Pushbutton" также проста в понимании. До "Pushbutton", в сегодняшних системах, при создание сообщений (пост в блоге, tweet-е или другие изменения) они публикуются в вашем RSS или Atom feed, все приложения или сайты которых хотят получить изменения от вас многократно опрашивают ваш feed что бы узнать когда он измениться. По выбору вы можете уведомлять("ping")некоторые приложения о том что пришло время для сбора изменений, но это отнимает много времени и ресурсоёмко на обеих сторонах, особенно если вы хотите уведомить большинство людей.

В лучшем случае, система сейчас аналогична человеку пришедшему в ваш дом и сказавшему "Эй, сегодня появилось новое издание твоей любимой газеты. Ты должен ее получить." И тогда что бы забрать ее вам придется идти в типографию газеты. В вебе "Pushbutton" этот человек доставляет каждую историю к вам в момент ее завершения.

Вот почему приложение в стиле "Pushbutton" улучшит текущее состоянию дел в направлении активной доставки, не только уведомляя о новом сообщении, но и непосредственно доставляя само сообщение. И вместо того, что бы требовать посетить ваш сайт и прочитать изменения, нужно использовать узловые сервера("hub") в облаке передавая сообщение прямо на все приемники, которые заинтересованы в нем.
pushbutton delivery
  1. Отправитель создает сообщение для передачи чарез RSS или Atom
  2. Ваше приложение дает сообщение одному или нескольким активным узлам PubSubHubBub или RSSC, которые находятся в Облаке
  3. PubSubHubBub или RSSC активный узел("hub") доставляет сообщение на любой получатель, приложение или сайт который ожидает изменений от вас

Таким образом, каждый раз, когда вы создаете новое сообщение, большое количество приемников может получить без большой сложности его за время близкое к передаче в реальном времени(обычно меньше чем секунда). Такого рода передача сообщений стала возможной при использовании систем в прошлом изготовленных по заказу или более неясными манипуляциями технологий, но экосистема "Pushbutton" это прорыв по некоторым причинам:
  • Отправка сообщений только требует незначительных изменений RSS или Atom feed, а также простого, четкого уведомления о изменениях, вместо значительных изменений в приложениях создающих ваши сообщения.
  • Прием сообщений также очень прост, требуется только разработчик для написание кода по обработке входящих уведомлений о изменениях.
  • Большая часть систем сложного управление узловыми серверами, которые хорошо документированы, реализуемыми в различных языках программирования, а также построены вокруг открытого исходного кода который возможно привлечет большую аудиторию разработчиков.
  • Большинство усилий и затрат масштабирования возникших на уровне hub и все текущие hub-ы предназначены для запуска на недорогих облачных системах, подобно Google App Engine или Amazon's EC2
  • Программное обеспечение для Отправки, Получения, или запуска hub бесплатное с открытым исходным кодом и доступно на большинстве платформ.
  • Сообщение отправленные на платформу "Pushbutton" будут доставляться через HTTP которые привычный любому веб разработчику и хорошо работает в любой среде хостинга. Все запросы между разными слоями "Pushbutton" системы могут быть как простые REST вызовы.
  • Технология "Pushbutton" может быть принята постепенно, таким образом функциональность может быть добавлена частями на стороне отправителя или получателя без массовой замены инфраструктуры или архитектуры приложения

Кто стоит за Pushbutton?


Технология Pushbutton была создана и рекомендована некоторыми из наиболее авторитетных разработчиков социальных веб технологий. Вот краткий обзор впечатляющего происхождения этих компонентов:
  • PubSubHubBub был совместно создана Brad Fitzpatrick и Brett Slatkin из Google. Brad был основателем LiveJournal, и создал или был совместным создателем основных принципов социальных веб технологий, подобно Memcached, OpenID и т.д.
  • Dave Winer был первооткрывателем XML-RPC ping изменений, RSS и идеи Облачного RSS, он был активным разработчиком открытой реализации каждой из этих технологий.
  • Jeff Lindsay был евангелистом Web Hooks, и развернул множество платформ в разных компаниях, которые независимо разработали методики.



Кроме того, Google поддержал Brad и Brett разработки PubSubHubBub, и включил его в Google FeedBurner сервисы. Ряд более мелких компаний успешно развернули большую часть этой инфраструктуры. Короче говоря, некоторые открытые системы с отличной репутацией в программирование сделали возможным Pushbutton от гигантских тех. компаний до многочисленным преданным независимым разработчикам в вебе.

Похожие идеи и предыдущие искусство

Есть множество существующих технологий которое оказывают влияние на создание и развитие технологии Pushbutton; Если вы хорошо знакомы с любыми из этих системам, вероятно вы уже понимаете ту часть, что Pushbutton возникает уже сейчас.
  • Twitter Firehose, FriendFeed SUP, TypePad Update Stream: это системы передачи данных в реальном времени, предлагают контент своих платформ как бесконечный поток, который разработчики могут потреблять и использовать в своих приложениях. На текущий момент, они все меняют условие лицензирования и степень открытости, и имеют немного отличающийся формат передачи изменений, но уже доказали полезность по части "отправки" из Pushbutton функционала.
  • XMPP (Jabber), NNTP (Usenet), IRC: это старые интернет протоколы, каждый из них имеет разную степень передачи сообщений в реальном времени и разнообразные способности распространения сообщений, и может служить базовым опытом при обучении разработчиков технологии Pushbutton. В некоторых случаях, основным архитектурным решением безопасности была авторизация и аутентификация, тогда Интернет был менее заселенный и менее сложный, что делает их неподходящими для сегодняшних приложений. Во всех случаях, эти протоколы менее известны современным веб разработчикам, итак отсутствие хорошо знакомых инструментов и ресурсов разработки делает их весьма сложным в развертывание.
  • TrackBack и Pingback: Эти системы передают изменения между системами блогов, были очень эффективны для передачи rich разговора в начальные дни блогосферы. Их применимость упало из за слабой или вообще отсутствующей реализации аутентификации, которая привела к проблеме со спамом, и общим непониманием их полезности во многих новых блогах. Pushbutton есть возможность восстановить некоторое значение этих систем.
  • Reverse HTTP может быть полезным компонентом для конечной стадии развертывания Pushbutton, в качестве компонента или симбиоза с технологией Comet и связаных с ней.



О чем нам следует беспокоится?

  • Война по поводу формата?Если вы знакомы с сообществами возникших вокруг технологии feeds, вы должны знать они имеют заслуженную репутацию спорщиков и даже были внутренние разногласия подогретые разногласиями вокруг тайных подробностей. Я не думаю что так произойдет и в этот раз потому, что есть всего один или два жизнеспособных формата для каждого слоя платформы, и основатель каждой "части" проявил несколько последовательных добросовестных усилий направленных на поощрение взаимодействия, где возможно, и мирное сосуществования, где необходимо. В Ajax сообществе, например, "X" в Ajax часто обозначает JSON вместо XML, но это не препятствовало широкому распостранению. Я охотно попытаюсь предотвратить любые межличностные конфликты, которые будут препятствовать принятию технологии Pushbutton. Беспокоит? Нет.
  • Вопрос масштабирования? Неминуемо будет обучение о том как масштабировать ресурсы hub слоя Pushbutton системы. Но конечно hub-ы существуют на облачных системах, которые состоят из громадного количества легкой доступности компьютерных ресурсов, потому что программисты с большим опытом построения веб масштабируемых систем создали ссылочную реализацию hub программного обеспечения, и потому что относительно просто включать новый hub по мере надобности, это вероятно не будет ключевым вопросом при принятия Pushbutton. Беспокоит? Нет
  • Вопрос интеллектуальной собственности? Я не юрист, и это не является юридической консультацией. Но уже был большой интерес к этим системах, и возможно что какой то плохой субъект, кто будет заинтересован в наводке своих юристов по патентам на этот тип систем, вероятно уже подают налево и направо иски на людей. И главные игроки, которые уже показывали последовательное стремление сделать систему с открытым исходным кодом, которые не имеют обременение IP. Проще говоря, я думаю, кто-нибудь достаточно умный, что бы придумать такие технологии, окажется достаточно умным, что бы не выглядеть болваном подавая в суд за использование этих технологий.Беспокоит?Наверное, нет.
  • Соревнование по централизации системы?Pushbutton технология это не только бесплатность и открытость, это и децентрализация, которая серьезно угроза модели ловушке лобстеров социальных программ. От систем такого типа, которые строятся в настоящие время, мы можем ожидать серьезного соревнования по централизации. Если возникнет угроза по адаптации Pushbutton, то это наиболее вероятная причина.Беспокоит?Определенно.
  • Плохое взаимодействие с пользователями? Одной из наихудших вещей которые мы можем сделать используя новые технологий это игнорировать социальные, персональные, или даже политические последствия их использования. Сообщения которые моментально будут доставляться не смогут, по своей природе, быть стертыми со всех мест где они появились. Идея постоянно архивировать такой тип сообщений незнакома многим менее технически подкованным пользователям. И когда мы видим что то светлое и новое, мы имеем соблазн использовать технологию в интересах технологии, в любом случае мы решаем реальную проблему или оказываем истинное влияние. И вот почему Pushbutton на раннем этапе может получить плохой приговор не смотря на имеющийся огромный потенциал.Беспокоит?Конечно, да.

Заключение

Я ощущаю огромное возбуждение по поводу новой эры веб приложений в реальном времени. Хоть я принципиально оптимист, я скептически отношусь к приходящей бессмысленной рекламе о новых технологиях, таким образом с небольшой неохотой я потакаю рекламе. Но я думаю веб Pushbutton имеет возможность предоставить отдельным лицам и организациям с четким и страстным голосом способность быть даже более быстрыми и выразительными в вебе, и после 10-и лет публикаций в интернете, эту часть я люблю больше всего. У меня нет никаких сомнений что некоторые скептики скажут что "Pushbutton это только PubSubHubBub с другим именем", так же как они говорили "Ajax это XMLHttpRequest под другим именем", и если это то в что супер-помешанные ребята хотят верить я соглашусь с этим. И я уверен, что там будет по-прежнему некоторые важные технические детали, нуждающиеся в решение. Но я думаю давая общую концепцию на доступном, понимаемом языке и (надеюсь!) с объяснением которое поймет каждый с малейшим интересом, он сможет стимулировать интерес к совершенно новой области инновационной деятельности в вебе. И, честно говоря, когда я вижу людей таких как Brad Fitzpatrick и Dave Winer пытающиеся решить одни и те же проблемы, я не могу помоч, но думаю что то интересное будет из этого. В ближайшие несколько дней, я напишу про очертание некоторой перспективы вокруг Pushbutton, отдаваясь больше философии которой насыщен потенциал Pushbutton с немного большим смыслом чем в большинстве новых веб технологий, а также некоторых простых объяснений о том как можно начать изучение и использовать преимущества этой технологии. Больше всего, я надеюсь что вы выскажите свою направленную критику, подумаете о рецензии, подробных исправлениях и даже лучших идеях. Я буду здесь в комментариях по блогосфере, и на Twitter с использованием тега #pshb.

Комментариев нет:

Отправить комментарий