Amazon предоставляет два типа веб-сервисов. Первый не отступает от формализма SOAP (Simple Object Access Protocol), тогда как второй просто осуществляет передачу XML через HTTP с помощью упрощенного подхода, известного как REST (Representational State Transfer). Веб-сервисы первого типа используются для B2B-транзакций (например, между Amazon и розничными партнерами), но 95 процентов всех операций проводится с помощью REST.
То же стремление к простоте наблюдается и у других «настоящих» веб-компаний. Возьмем Google Maps. Простой AJAX-интерфейс был быстро «разобран» хакерами, которые затем сумели использовать поставляемые данные для организации новых сервисов.
Картографические веб-сервисы были доступны и раньше: от GIS-вендоров (ESRI, например) и таких компаний, как MapQuest и Microsoft MapPoint. Однако Google Maps завоевал мир, благодаря своей простоте. И если экспериментирование с данными веб-сервисов от «настоящих» вендоров требовало заключения контракта, то Google Maps был спроектирован так, что данные можно было сразу использовать в своих целях - и хакеры очень скоро научились это делать.
Отсюда можно вынести несколько важных уроков:
Поддерживайте упрощенные модели программирования и вы получите свободно-связанных партнеров. Проблема корпоративных веб-сервисов в том, что они предполагают жестко оговоренное партнерство. Во многих случаях это оправданно, но зачастую самые интересные приложения могут быть построены на весьма хрупкой основе.
Думайте о синдикации, а не о координации. Простые веб-сервисы - как RSS или сервисы на базе REST - занимаются синдикацией данных, не пытаясь контролировать, что происходит с информацией на другом конце цепочки. Идея сквозной передачи данных является одной из базовых идей самого Интернета.
Проектируйте с учетом возможных переделок и улучшений. Системы, подобные вебу, RSS и AJAX, сходны тем, что особых помех для их повторного использования не существует. Большая часть полезного софта находится в открытых исходниках, а если и нет, то имеется не так уж много способов защитить свою интеллектуальную собственность. Стандартная браузерная функция «посмотреть исходник» позволяет любому человеку скопировать любую веб-страницу. RSS был спроектирован для того, чтобы пользователь мог читать контент тогда, когда это удобно ему, а не поставщику информации. Самые успешные веб-сервисы - это, как правило, такие службы, которые могут быть изменены неожиданным для их создателей образом (some rights reserved).
В оригинале статья Тима О’Рейли была опубликована за неделю до начала конференции Web 2.0 (web2con.org, проводилась с 5 по 7 октября 2005 года), и, несомненно, автор хотел подогреть интерес к этому событию, что ему прекрасно удалось. Но у Веба 2.0 есть и другая, темная сторона.
Многие наблюдатели отмечают, что сейчас рынок находится в состоянии ожидания. Компаний, говорящих о Вебе 2.0, появляется все больше. Штат фирм, занимающихся разработкой новых веб-решений, растет. Говорить о Вебе 2.0 модно, заниматься им - престижно. И не исключено, что в самое ближайшее время мы увидим второе пришествие доткомов - только взлет новых компаний будет короче, а падение быстрее. Дело еще и в том, что далеко не все инфраструктурные изменения, о которых пишет Тим, могут быть легко конвертированы в деньги. Идея сервисов, построенных на сервисах, которые, в свою очередь, построены на других сервисах, и так далее до бесконечности (mash-up), может, и не плоха, но при всех достоинствах конечного продукта нельзя забывать, что держится он, в общем-то, на честном слове и будет функционировать только до тех пор, пока поставщики сервисов продолжают их предоставлять. Собственных активов у таких компаний, как правило, практически нет.
Тим О’Рейли почти не касается финансовых рисков - его больше увлекают технологические аспекты. Но некоторые венчурные капиталисты, следящие за становлением новой концепции, высказываются более чем осторожно: Рик Сигел пишет о том, что само по себе применение новых технологий вовсе не гарантирует возврата инвестиций; Фред Уилсон признается, что уже вкладывать опасно даже в первые производные (производные от компаний, владеющих интеллектуальными или иными активами), а сейчас предлагается инвестировать во вторые производные (сервис, объединяющий, допустим, Google Maps и delicious, является второй производной, поскольку и Google, и delicious [в меньшей степени] являются в данном случае не владельцами исходных данных, а посредниками).
Собираем по-новому
Упрощенные бизнес-модели - это естественный спутник упрощенного программирования и свободного партнерства. В Вебе 2.0 повторное использование не осуждается. Новые сервисы, такие как housingmaps.com, являются простым совмещением двух существующих служб. У Housingmaps.com нет бизнес-модели (пока), но множество небольших сервисов живет за счет Google AdSense (или, возможно, амазоновских программ, или - и тех и других).
Эти примеры иллюстрируют еще один ключевой принцип Веба 2.0 - то, что мы называем «сборка по-новому». Когда вокруг столько дешевых компонентов, вы можете создавать нечто ценное, просто собирая из них неожиданные или эффективные комбинации. Точно так же, как ПК-революция дала «путевку в жизнь» компаниям, собирающим компьютеры из обычной комплектухи, Веб 2.0 предоставляет возможности компаниям, собирающим свои приложения из чужих компонентов.
Софт работает поверх устройств
Еще одна особенность Веба 2.0, которая заслуживает упоминания, это то, что теперь веб не привязан к платформе ПК. Перед уходом из Microsoft разработчик Дэйв Стац (Dave Stutz) дал своему бывшему работодателю совет: «обеспечить высокую прибыль способно программное обеспечение, работающее поверх устройств».
Конечно, так можно охарактеризовать практически все веб-приложения. В конце концов, простейшее приложение требует для своей работы по крайней мере два компьютера: один - для хостинга сервера, второй - для браузера. И как мы уже обсуждали, развитие веба как платформы расширяет эту идею до синтетических приложений, составленных из сервисов, которые предоставляются множеством компьютеров.
Но - с Вебом 2.0 такое случается частенько - «2.0» означает не что-то совершенно новое, а развитие и углубление существующих концепций. И фраза Стаца поясняет, как нужно проектировать приложения для новой платформы.
В настоящий момент лучшим примером нового подхода является iTunes. Это приложение без проблем соединяет карманное устройство с грандиозной веб-базой, оставляя ПК роль локального кэш-сервера и контрольной станции. Попытки донести веб-контент до мобильных устройств, разумеется, предпринимались и раньше, но связка iPod/iTunes является одним из первых приложений, соединяющих в единую цепочку сразу несколько устройств. Другой хороший пример подобного подхода - TiVo.
iTunes и TiVo также демонстрируют другие ключевые принципы Веба 2.0. Они не являются веб-приложениями сами по себе, однако используют мощь веб-платформы, превращая веб в незаметную, практически невидимую часть своей инфраструктуры. TiVo и iTunes - сервисы, а не коробочные приложения (хотя в случае с iTunes это не совсем верно - программа вполне может использоваться и как коробочный софт, для управления пользовательскими данными). Более того, и TiVo, и iTunes пытаются использовать коллективный разум, хотя в обоих случаях эти эксперименты натыкаются на сопротивление со стороны ИС-лобби[ИС - здесь: интеллектуальная собственность. - Прим. ред.]. В iTunes архитектура взаимодействия пользователей довольно ограничена, хотя последние нововведения в области поддержки подкастинга несколько изменили положение дел в лучшую сторону.
Все это одна из областей Веба 2.0, в которой мы ожидаем тем больших изменений, чем больше устройств подключено. Какие приложения появятся, когда все наши телефоны и автомобили будут не только потребителями информации, но и ее поставщиками? Мониторинг пробок в реальном времени, флэш-мобы, любительская журналистика - вот только несколько первых ласточек, намекающих нам на возможности новой платформы.
Богатые пользовательские интерфейсы
Еще со времен браузера Viola (1992) у всех на устах слово «апплеты» и прочие способы доставки активного контента через браузер. Появление в 1995 году Java тоже сопровождалось упоминанием апплетов. JavaScript - а затем и DHTML - были представлены публике как простые пути для выполнения приложений на стороне клиента и обогащения пользовательских интерфейсов. Несколько лет спустя Macromedia использовала термин Rich Internet Applications (впрочем, им не гнушалась и Laszlo Systems - разработчик флэш-решений в открытых исходниках), чтобы подчеркнуть возможности Flash не только в области доставки мультимедиа-контента, но и как основы для построения GUI-интерфейсов.
Однако потенциал веба для постройки полномасштабных приложений не принимали всерьез до появления Gmail, за которым последовал Google Maps. В обоих случаях веб-приложения предлагали богатые пользовательские интерфейсы и почти неотличимую от ПК-приложений интерактивность. В одном из своих эссе Джесс Джеймс Гаррет из веб-студии Adaptive Path «окрестил» использованные для этой цели технологии AJAX. Он писал: