Журнал «Компьютерра» № 30 от 22 августа 2006 года
Шрифт:
Когда говоришь о технологиях, которые являются неотъемлемыми элементами Web 2.0, складывается парадоксальная ситуация: ирония в том, что большинство из них появилось задолго до того, как О’Рейли провозгласил наступление новой эры.
В этой статье речь пойдет о решении одной древней проблемы. Разработчики долго бились над задачей быстрой доставки информации заинтересованным читателям и ее ретрансляции во всевозможных клиентах. Поиск одновременно простого, функционального и унифицированного решения шел несколько лет. Что только за это время не появилось — от глобальной концепции Semantic Web до многочисленных прикладных решений и технологий. Так были разработаны Channel Definition Format (CDF) от Microsoft, PointCast, поддерживавшийся Netscape, Marimba Castanet
Из множества конкурирующих стандартов до наших дней благополучно дожили лишь два: RSS и Atom. При этом RSS является действительно «народным» форматом, практически синонимичным для многих самому понятию синдикация. И RSS, и Atom — основанные на XML форматы, предназначенные для сбора информации, то есть аггрегирования. Эти стандарты, как, впрочем, и все основанные на XML, реализуют давнюю идею разделения оформления и содержания и лишены одного из главных недостатков HTML — запутанности и перегруженности служебными и «оформительскими» элементами, которые сильно затрудняют автоматическое унифицированное получение и обработку информации: в данном случае транслируется только полезное содержание без каких-либо элементов дизайна, навигации и т. д.
RSS — это семейство стандартов формирования XML-документа, в который сохраняется информация об обновлениях. (Этот документ называется потоком или фидом — от англ. feed — питание, кормить.) В подавляющем большинстве случаев речь идет об обновлении в новостной ленте, но в принципе это могут быть любые изменения. Впрочем, об этом мы поговорим чуть позже. Взаимоотношения между отдельными версиями RSS довольно запутаны. Представители семейства частично несовместимы друг с другом, но для конечного пользователя это практически не имеет значения — любая современная программа для работы с RSS понимает все его версии.
Формат Atom тоже предназначен для аггрегирования информации об обновлениях, в первую очередь с веб-сайтов.
Идея стандартизировать процесс оповещения о появлении новых данных и изменении существующих, а также ретрансляцию информации появилась давно. Прообразы современных стандартов синдикации начали разрабатывать еще в 1997 году.
Первым на сцену вышел RSS, разработанный легендарной компанией Netscape, которая использовала его для наполнения своего портала Netcenter. Вскоре RSS-ленты уже активно использовались для трансляции новостей на многих сайтах — в том числе таких крупных и авторитетных, как CNN, BBC, ZDNet, CNET, Forbes, Slashdot и многих других.
Дебютной версии RSS был присвоен номер 0.90. Однако стандарт, как сочли и пользователи, и эксперты, оказался слишком сложным и запутанным. Так что вскоре Netscape выпустила следующую, упрощенную версию RSS 0.91. Затем корпорация потеряла интерес к своему детищу. Разработку формата продолжила компания UserLand Software. К тому моменту у UserLand в активе была собственная схожая по задачам технология ScriptingNews, наработки из которой были включены в выпущенные вскоре версии RSS 0.92, 0.93, 0.94 и в итоге 2.0. Параллельно RSS-DEV Working Group развивала свою версию RSS и выпустила RSS 1.0, а затем и 1.1. В результате на сегодня существуют семь (!) версий RSS. Наиболее популярны 0.91, 1.0 и, конечно же, 2.0.
Подобная неупорядоченность и постоянные склоки в среде разработчиков и сторонников RSS неизбежно должны были привести к появлению конкурента. Им стала уже упоминавшаяся технология Atom, построенная на тех же принципах и с теми же целями, но изначально учитывавшая недостатки RSS, гораздо более четко стандартизованная и более функциональная.
Как ни странно, войны форматов не получилось:
Бурное развитие RSS, больше похожее на триумфальное шествие, началось в 2003 году. Появлялось все больше сайтов, поддерживавших RSS и другие форматы синдикации, все привычнее становились блоги — а почти все блог-движки, будь то хостинговый LiveJournal или персональный WordPress, поддерживали RSS. Таким образом, рост числа блогов означал и рост числа фидов, дальнейшее развитие синдикации, появление программ для работы с потоками.
Успех, основы которого были заложены в 2003-м, стал очевиден уже на следующий год — количество фидов выросло многократно. Взгляните на график, он отчетливо показывает, как стремительно росла популярность формата. Его распространению способствовало и то, что появились программы, в которых функция чтения потоков RSS и atom была необязательным, но очень интересным дополнением. RSS-аггрегаторы (в том или ином виде) были добавлены в Mozilla Firefox, Opera и Safari. Теперь можно было познакомиться с новой технологией, не ставя каких-либо дополнительных программ. Да и появление первых онлайновых аггрегаторов позволило создавать на сайтах свою персональную новостную ленту, показывающую автоматически обновляемые новости из интересующих именно вас источников.
Вышло так, что самым ярым сторонником Atom стал Google, Microsoft же поддерживает RSS. Именно Atom используется в Blogger.com, Google News, Gmail и других сервисах поисковика. Google также развивает стандарт и вводит дополнения к нему. Так появился GData, формат, основанный на Atom. Именно GData используется в последних сервисах компании, таких как Google Calendar.
Microsoft стала далеко не первым, но, пожалуй, самым полезным сторонником RSS. Сначала корпорация завела фиды у себя на сайтах, потом ее разработчики решили расширить RSS. В 2005 году Microsoft представила расширение Simple Sharing Extensions, призванное превратить RSS в средство двусторонней синхронизации данных, то есть добавить в RSS функционал, уже присутствовавший в Atom. Правда, это расширение так и осталось бумажным тигром — приложений, использующих этот формат, я назвать не могу.
Поддержка RSS включена в готовящиеся Internet Explorer 7.0, Outlook и Windows Vista. RSS становится стандартом де-факто для автоматизированного обмена информацией.
Важным плюсом синдикации для разработчиков является тот факт, что потоки не накладывают ограничение на характер передаваемой информации и ее адресата. Через фиды вы можете информировать пользователей о чем угодно — о публикации новостей и статей, о появлении на ftp-сервере нового файла, об изменении страницы в wiki… да мало ли о чем еще! Главное, что произошло изменение, информация о котором вносится в фид.
Использование XML, формата гибкого и расширяемого, позволяет легко приспосабливать RSS и Atom под самые разнообразные задачи. Так, появление подкастов и видкастов поставило ту же проблему, что уже была решена для текстовой информации, — быстрая и максимально автоматизированная передача информации заинтересованному пользователю. Использование опционального элемента enclosure, описывающего подключаемый объект (аудиозапись, видеофайл, картинка), позволило распространять через RSS любой медиа-контент. Поддержка этого тега в программном обеспечении может сделать работу и вовсе прозрачной — пользователь может даже не догадываться, что данные передаются через RSS. Скажем, iTunes позволяет подписаться на RSS-фид с подкастом, просто перетащив ссылку в соответствующий раздел, и затем автоматически закачивать новые аудиозаписи на iPod.