Автор: Илья Щуров
Человечество уже много тысячелетий строит здание цивилизации, возводя этаж за этажом и постепенно переселяясь все выше и выше. Мы делаем это без генерального плана и каких-либо чертежей, зачастую следуя лишь интуиции - так что в результате получается не типовое панельное строение, а витиеватый замок со множеством башен, балконов и переходов. Некоторые башни этого замка оказываются интересны лишь их строителям и со временем пустеют, другие обваливаются под собственной тяжестью, третьи же, напротив, приобретают огромное значение в нашей жизни - и становятся фундаментом дальнейшего развития.
Стройка века
В мире информационных технологий многоэтажная "башня" обычно называется стеком технологий. Включая компьютер, чтобы зайти на какой-нибудь сайт, мы как раз и имеем дело с таким стеком: веб-браузер, работающий на базе операционной системы, которая, в свою очередь, работает на каком-то железе. Со стороны же сервера работает другой стек (например, LAMP - Linux+Apache+MySQL+Perl/PHP). Мы будем говорить о том, как развиваются и конкурируют такие стеки: зачастую это происходит по одной и той же схеме.
Сценарий таков. В какой-то момент на базе существующего верхнего технологического "этажа" происходит Инновация, позволяющая создать продукт с невиданными доселе свойствами. Обычно за его реализацию берется сразу несколько разработчиков, и появляется несколько различных конкурирующих продуктов, обладающих близкими потребительскими качествами. (Пользуясь приведенной аналогией, это можно представить себе как строительство нескольких похожих "башенок" на одном фундаменте.) Конкурируя, продукты совершенствуются, усложняются, и в какой-то момент становится ясно, что некоторые из этих "башен" уже достаточно широки, чтобы открыть простор для творчества и самим стать фундаментом для новых инновационных решений, которые неведомы даже их "архитекторам", - достаточно впустить "независимых строителей" (ISV) и снабдить их необходимыми инструментами (API, SDK). Когда это происходит, компании собирают журналистов и выпускают гордые пресс-релизы, в которых сообщают, что их продукт уже не просто продукт, а платформа. И тут начинается самое интересное.
Тот разработчик, которому первым удается правильным образом использовать платформообразующий потенциал своего решения, получает огромное конкурентное преимущество: положительную обратную связь, коими столь богат наш мир. Новые независимые разработчики выпускают новые приложения, которые повышают популярность платформы и делают ее более привлекательной для разработчиков… дальше вы знаете.
Если появляется несколько конкурирующих платформ, каждая из них пытается выжать из этого эффекта максимум - то есть какая-либо совместимость им противопоказана. Напротив, они всеми силами пытаются привязать к себе как можно больше пользователей и разработчиков, переманивая их у конкурентов всеми правдами, а то и неправдами. Действовать иначе означает заведомо проиграть. Как правило, чья-то платформа становится доминирующей (по крайней мере, в своей рыночной нише), и реальная конкуренция замирает - а с нею прекращается и развитие. На какое-то время.
Конкурентам, а порой и собственным клиентам, которых не устраивает стагнация, ничего не остается, кроме как объединить силы, а для этого - договориться об общих подходах (открытые стандарты), а иногда и просто начать совместную разработку альтернативного решения (свободное и открытое ПО). Не всегда это приводит к быстрому изменению баланса сил, но обычно позволяет сдвинуть ситуацию с мертвой точки и вынудить компанию-монополиста мало-помалу открывать свою платформу, двигаясь навстречу принятым стандартам и интегрируясь в строящуюся открытую инфраструктуру.
Виток развития заканчивается тем, что появляется новая стандартизованная платформа, которая становится новым верхним уровнем стека технологий. В этот момент компании, долгое время ориентировавшиеся на захват и удержание "власти платформы", вынуждены переориентировать свой бизнес, чтобы играть на этаже выше. Именно здесь появляются свои инновационные продукты, часть которых со временем вырастает в новые платформы, и круг замыкается.
Мы видели, как это было с архитектурой ПК (читатели со стажем, вероятно, помнят формулировку "IBM PC-совместимый компьютер"), с различными коммуникационными сетями (когда-то было невозможно отправить e-mail из одной сети в другую); на наших глазах происходит стандартизация операционных систем, офисных пакетов (см. тему номера "КТ" #723), IM-протоколов, веб-браузеров…
Можно предложить простой эмпирический критерий того, что некоторый набор технологий стал открытой и стандартизованной платформой: это происходит тогда, когда большинство людей перестает ожесточенно спорить о том, какая из реализаций лучше. Сам по себе веб, по-видимому, ему уже удовлетворяет - браузерные войны давно позади, и период доминирования "HTML от MSIE" сменился какой-никакой поддержкой стандартов - никто не будет всерьез рассматривать "вебдванольный" сайт, который откажется работать хотя бы в Firefox. Девиз "веб как платформа", о котором так долго говорил Тим О’Рейли со товарищи, воплотился в жизнь. Эта битва окончена. Что ждет нас дальше?
В ожидании веб-ОС
Развитие на протяжении всего минувшего года нескольких инициатив, начало которым было положено еще в 2007-м, показывает, что претендент на роль новой единой и стандартной платформы, решающей задачи "простых пользователей" (назовем ее веб-ОС), наконец, найден. Речь идет о социальных сетях, таких как Facebook и MySpace, и порожденных ими платформах для разработки социальных приложений. И, конечно, не обошлось без Google - которого так долго боялись, но который, однако, пока не слишком уверенно чувствует себя на этом поле, хоть и имеет поистине наполеоновские планы. Впрочем, обо всем по порядку.
В мае 2007 года Facebook объявила об открытии собственного API, названного F8, с помощью которого сторонние разработчики получили возможность писать веб-приложения, работающие в этой социальной сети, используя ее ресурсы (контакты, пользовательские данные и т. д.). Произносились громкие слова о "платформе", "о чем-то вроде ОС" и прочих революционных вещах. Почивать на лаврах Facebook не пришлось: в конце 2007-го Google и MySpace объявили о работе над открытым стандартизованным API, названным OpenSocial, и уже в феврале MySpace анонсировала запуск собственной платформы для написания приложений, основанной на спецификациях OpenSocial, а в мае - сообщила о старте инициативы Data Availability (позже переименованной в MySpaceID), позволяющей сторонним веб-ресурсам получать доступ к данным, хранящимся в пользовательском профайле MySpace, и использовать их для создания собственных сервисов. При этом юзеру, имеющему аккаунт в MySpace, не нужно заводить отдельную учетную запись на стороннем сервисе - социальная сеть полностью берет на себя авторизацию и работу с учетной записью.
Это было что-то новое - до сих пор такие сети не были настроены делиться своим главным богатством (пользователями, а также всем тем, что их привязывает к сети) с первым встречным. Facebook, однако, за словом в карман не полезла и уже на следующий день анонсировала собственный проект Facebook Connect, реализующий примерно те же возможности, что и Data Availability, а еще через месяц выпустила существенную часть своей платформы (ранее доступной только партнерам) под свободной лицензией (проект получил название fbOpen). Параллельно Google представил свою разработку Google Friend Connect, тоже основанную на OpenSocial, позволяющую добавить "социальные возможности" к любому веб-сайту без программирования и без привязки к какой-то одной социальной сети (в первую очередь, опять же, речь идет о возможности авторизации на сайте с помощью аккаунта, полученного где-то еще - например, в самом Google, но не только). К концу года анонсированные весной-летом сервисы наконец прошли стадию первичной отладки и заработали на полную мощность - на ряде популярных порталов появилась возможность идентифицироваться с помощью Facebook Connect или Google Friend Connect.
Расстановка сил была ясна, и все прогрессивное человечество замерло в ожидании развязки противостояния "Facebook против всех (c Google и MySpace во главе)". Казалось, мир стоит на пороге нового времени, когда множество разрозненных веб-сервисов наконец объединятся, пользователям не придется тратить время на регистрацию и запоминать десятки логинов-паролей, вручную синхронизировать списки контактов в разных сетях и рисковать потерей всего нажитого "виртуального имущества" при необходимости покинуть какой-нибудь сервис. Реальность, однако, оказалась не столь радужной - если не сказать мрачной. Революция если не отменяется, то по крайней мере откладывается на неопределенное время. Что же все-таки происходит?
Просто закрытая открытость
Если смотреть на уровне технологий, то ситуация кажется довольно простой. Как всегда, есть "хорошие парни" и есть "плохие парни". Хорошие (назовем их, условно, G, M и Y) используют, разрабатывают и поддерживают открытые стандарты, обеспечивающие интероперабельность (возможность взаимодействия) между различными сервисами, а плохие (пусть это будет F) - ни с кем не дружат, продвигают собственную проприетарную платформу, чтобы "привязать" к себе не только своих непосредственных пользователей, но и партнеров. При этом не имеет большого значения тот факт, что "клиентская" часть этой платформы распространяется под свободной лицензией - понятно, что привязка к одному поставщику (vendor lock-in) - в данном случае, к материнской социальной сети - сохраняется.
В долгосрочной перспективе, конечно, добро обычно побеждает зло: таков закон жанра. Однако зачастую, даже когда открытые решения появляются раньше проприетарных, они на начальном этапе развиваются довольно медленно и не могут похвастать сколь-нибудь широкой аудиторией. При этом параллельно может появиться удачный закрытый продукт, "доводящий до ума" уже витающие в воздухе (а иногда и реализованные в коде) идеи и делающий их более удобными для пользователя, - и тут же завоевывает огромную популярность, часто порождая монополии, не приемлющие открытые стандарты. Этот сценарий реализуется во многих случаях: в качестве примера можно привести системы мгновенного обмена сообщениями, где позиции стандартного протокола XMPP (Jabber) все еще довольно слабы, или пользовательские VoIP-решения для звонков "с компьютера на компьютер", где бал правит Skype. Все объясняется сравнительно просто: пока разработчики открытых решений договариваются о стандартах, пытаясь согласовать интересы всех заинтересованных сторон и глядя далеко в будущее, разработчик закрытого решения просто делает хороший продукт, решающий задачи пользователя "здесь и сейчас".
История с Facebook Connect этот тезис хорошо подтверждает: открытая, стандартная децентрализованная технология, позволяющая безопасно авторизоваться на одном сервисе, используя учетную запись другого сервиса, существует c 2005 года, когда Брэд Фитцпатрик (основатель LiveJournal) предложил первые спецификации OpenID. Правда, до недавнего времени OpenID использовали (помимо самого LiveJournal) в основном некрупные блог-хостинговые площадки и автономные блоги. Этот стандарт используется в OpenSocial, на его базе работает Google Friend Connect, о его поддержке говорит Microsoft, однако назвать OpenID популярным решением пока язык не поворачивается. Запуск и довольно уверенная экспансия (которую обозреватели даже окрестили "эпидемией") Facebook Connect в конце прошлого года показала, что открытость и децентрализованность - это хорошо, но малоинтересно пользователям, которым нужна простота и удобство. Одной из причин слабой распространенности OpenID эксперты называют использование "неинтуитивных" идентификаторов пользователя, в качестве которых в системе выступают обычные URL (например, openid.example.com/myusername или myusername.example.com), а также нетривиальную процедуру авторизации.
Впрочем, все технологические "болезни роста" открытых стандартов взаимодействия социальных сетей рано или поздно пройдут. Проблема в другом: а действительно ли это взаимодействие нужно современным социальным сетям?
Всех впускать, никого не выпускать
Поддержка открытых стандартов - необходимое, но далеко не достаточное условие объединения социальных сетей и различных веб-сервисов в общее информационное пространство, которое предоставило бы пользователю удобный унифицированный доступ к его данным, контактам и приложениям и сняло зависимость от конкретного поставщика услуг. Гораздо важнее, как именно существующие крупные сети будут использовать эти технологии. И тут оказывается, что у "проприетарной" Facebook и "открытой" MySpace больше сходств, чем различий.
Отношения между сетями-гигантами и сторонними ресурсами, использующими соответствующие платформы, далеки от равноправия. Вы можете использовать свой MySpace-аккаунт для того, чтобы авторизоваться на сайте, скажем, туристической фирмы, использующей MySpaceID, и там же общаться со своими MySpace’овыми друзьями, используя какие-то специфические сервисы этого сайта. Но в обратную сторону это уже не работает: нельзя прийти в MySpace, "предъявив" аккаунт, зарегистрированный где-то еще - например, в Facebook или даже в Google. Аналогично, если вы находитесь на сайте, поддерживающем только MySpaceID, вы не можете общаться с друзьями, зарегистрированными только в Facebook, - и наоборот. Социальные сети с радостью открывают "свои представительства" на чужих территориях (которые им это позволяют), но не торопятся отпускать своих пользователей вместе с "пожитками", равно как и приглашать пользователей других сервисов к себе в гости.
Все текущее развитие событий прекрасно вписывается в общую модель: мы находимся в ситуации, когда основные игроки уже начали активно строить свои платформы, привлекать независимых разработчиков и выстраивать каналы распространения с помощью множества партнеров, но пока еще далеки от того светлого момента, когда произойдет стандартизация и объединение. Действительно, нетрудно видеть, что одна из главных задач всех рассмотренных "открытых" инициатив - это дальнейший рост пользовательской базы существующих сетей (отметим, что рост того же MySpace существенно замедлился в последнее время). Больше регистраций, больше активных пользователей, больше информации об их действиях на сторонних сайтах - больше рекламы и более эффективное ее распространение.
Произойдет ли когда-нибудь Великое Объединение? Скорее всего, да. Но случится это не раньше, чем сети приблизятся к границе естественного роста популярности таким образом, что выгода от увеличения интенсивности использования ресурсов сети из-за включения интероперабельности превысит потенциальные убытки из-за уменьшения числа новых регистраций.
Какова роль Google в этих процессах? Поисковый гигант, не будучи крупным игроком среди социальных сетей (его Orkut можно рассматривать в лучшем случае как "песочницу" для отладки технологий, нежели реальную силу), по-видимому, ориентируется именно на "свободный мир" всеобщей интероперабельности и уже сейчас строит необходимую инфраструктуру в виде OpenSocial, которая пока хоть и не используется "в полную силу", по задумке должна стать именно той самой стандартной платформой. Это довольно логично, учитывая, что успех Google, ознаменовавший начало эпохи "Веб 2.0", был во многом достигнут за счет грамотного использования ресурсов "длинного хвоста" - множества мелких сайтов еще "старого" веба, которые не были интересны крупным игрокам рекламного бизнеса того времени. Удастся ли компании, одной из первых сумевшей эффективно использовать стандартизованный веб как платформу, повторить свой успех на следующем витке развития или произойдет то же самое, что произошло с Microsoft (контролируя платформу Windows и успешно "захватив веб" с помощью MSIE, компания не смогла сделать следующий шаг, хотя много раз пыталась)? Пожалуй, это ключевой вопрос развития веб-технологий на ближайший год (или даже ближайшие нескольких лет), от которого существенно зависит будущее веба и нашей повседневной жизни.
2.5 платформы
Возможности "открытых платформ" социальных сетей, в той или иной мере присутствующие во всех трех системах:
установить связь между аккаунтом на партнерском сайте и аккаунтом в материнской сети;
найти друзей из материнской сети, зарегистрированных одновременно на партнерском сайте;
зарегистрироваться на партнерском сайте, используя аккаунт материнской сети (авторизация через материнскую сеть);
публиковать информацию о своей активности на партнерском сайте в материнской сети;
транслировать информацию о своей активности в материнской сети на партнерский сайт.