Такие сети, как NPL в Великобритании и ARPANET в Соединенных Штатах, были первыми сетями с коммутацией пакетов, но к началу 1970-х годов существовали десятки, если не сотни несовместимых сетей, и стало очевидно, что необходим какой-то метод обеспечения совместимости. (Надо отдать должное, Д. К. Р. Ликлайдер, легендарный руководитель программы Управления перспективных исследовательских проектов Министерства обороны США (DARPA), призывал к совместимости сетей еще десять лет тому назад.)
В 1973 году Боб Кан и Винт Серф поняли, что верным решением проблемы совместимости будет вывести обмен информацией из сети и переложить задачу по повторной сборке пакетов и по запросу на повторную передачу в случае потери какого-либо пакета на конечные точки сети. Как ни парадоксально, они выяснили, что наилучший способ сделать сеть более надежной – это позволить ей выполнять меньше задач. В течение следующих пяти лет, при содействии множества других людей, они разработали два протокола, TCP (протокол управления передачей) и IP (интернет-протокол), которые, как правило, упоминаются вместе как TCP/IP и которые успешно устранили различия между базовыми сетями. Однако только в 1983 году TCP/IP стал официальным протоколом ARPANET и уже потом стал основой для того, что иногда называют глобальной сетью и в конечном итоге для Интернета, каким мы его знаем сегодня.
Гениальность протокола TCP/IP состояла в том, как мало он делал. Вместо того чтобы для удовлетворения дополнительных потребностей сделать протоколы более сложными, интернет-сообщество просто разработало дополнительные протоколы, которые устанавливались поверх TCP/IP. Дизайн был весьма специфическим. Любая группа, которая хотела предложить новый протокол или формат данных, публиковала рабочее предложение (RFC), описывающее предлагаемую технологию. Оно рассматривалось и выдвигалось на голосование среди членов сообщества под названием Инженерный совет Интернета (IETF), осуществляющего свою деятельность с января 1986 года. Никаких формальных требований для вступления в сообщество не было. В 1992 году профессор информатики Массачусетского технологического института Дэйв Кларк так описал определяющий философский принцип IETF: «Мы отказываемся от «королей», «президентов» и голосования. Мы верим в примерное согласие и работающий код».
В рабочем предложении Джона Постела содержалось это наивное, блистательное обращение: «Реализация протокола TCP должна следовать общему принципу надежности. Будьте консервативны в том, что вы делаете. Будьте либеральны в том, что вы перенимаете от других». Это звучит как нечто из Библии – золотое правило применительно к компьютерам.
В 1980-х годах также был организован отдельный, более традиционный комитет по вопросам международных стандартов, чтобы определить будущее компьютерных сетей. Полученная в результате базовая эталонная модель взаимодействия открытых систем (ЭМВОС), или OSI, была полной и всеобъемлющей, и один из экспертов в отрасли в тот день написал: «В долгосрочной перспективе большинство поставщиков будет переходить с протокола TCP/IP на четвертый, транспортный уровень модели OSI. Однако в краткосрочной перспективе TCP/IP предоставляет организациям достаточный функционал для защиты их инвестиций в имеющееся оборудование, а в долгосрочной перспективе TCP/IP обещает обеспечить легкую миграцию на OSI».
Но это не сработало. Это были чрезвычайно простые протоколы Интернета, которые становились все богаче и сложнее, тогда как статус протокола OSI был низведен до академической справочной модели, используемой для описания сетевой архитектуры. Архитектура Всемирной паутины, которая повторяла радикальный дизайн базовых интернет-протоколов, стала основой для следующего поколения компьютерных приложений и подарила миллиардам людей то, что некогда было непонятной сетевой технологией.
В этом заключается основной урок для сетей, которые желают достичь максимальных масштабов. Проекты открытого программного обеспечения, такие как Linux, и открытые системы, такие как Интернет и Всемирная паутина, работают не потому, что существует официальный Центральный совет, выдающий разрешения на каждое новое дополнение, а потому, что первоначальные разработчики системы установили четкие правила сотрудничества и взаимодействия.
Взаимодействие запроектировано в самой системе.
Этот принцип является ключом к пониманию не только успеха современных гигантов интернет-технологий, но и того, что не так с современной WTF-экономикой.
Глава 6. Мыслить в перспективе
Трансформационное воздействие сетевых бизнес-компаний на общество легко распознать, даже не понимая, насколько по-разному они устроены внутри своих стен.
В течение нескольких лет после проведенного мной в 1998 году саммита по открытому исходному коду я писал «агитационную речь» о руководящих принципах открытого программного обеспечения, хакерской культуре и об Интернете. В слайде, отражающем мое видение того, что сделало рынок разработки открытого программного обеспечения или не требующую разрешений сеть, такую как Интернет, столь влиятельными, были зафиксированы следующие позиции:
• Партнерская архитектура означает, что ваши пользователи помогают развитию вашей платформы.
• Низкие барьеры для экспериментов означают, что система «дружелюбна к хакерам», чтобы быть максимально инновационной.
• Взаимозаменяемость означает, что один из компонентов или одна из услуг могут быть заменены, если появится лучший вариант.
• «Программная замкнутость» достигается благодаря тому, что другие зависят от выгоды, которую приносят ваши услуги, а не потому, что вы полностью контролируете ситуацию.
Я также говорил о том, как рождаются эти платформы и как они развиваются. Прежде всего вследствие того, что хакеры и разработчики-любители исследуют потенциал новой технологии.
Новые технологии привлекают предпринимателей, и, стремясь построить бизнес, они делают вещи проще для обычных пользователей. Основные игроки разрабатывают платформу, воздвигая барьеры для входа на рынок. Прогресс резко замедляется, и тогда хакеры и предприниматели движутся вперед в поисках новых горизонтов. Но иногда (лишь иногда) индустрия выстраивает здоровую экосистему, в которой хакеры, предприниматели и платформы играют в креативную игру под названием «чехарда». Никто не получает полную власть, и все должны совершенствоваться, чтобы оставаться конкурентоспособными.
За этим следовал слайд под названием «Урок истории», концовка которого такова: «Стратегия платформы всегда одерживает победу над стратегией приложения!»
Платформа всегда одерживает победу над приложением
Джефф Безос, услышав эту речь на конференции по новым технологиям (Etech), в 2003 году попросил меня выступить с ней перед небольшой группой разработчиков Amazon.
Ранее, в марте 2001 года, во время своей поездки в Сиэтл я подбросил Джеффу идею о том, что компании Amazon следовало бы предлагать доступ к своим данным через веб-службы.
В целях исследования рынка компания O’Reilly делала запрос по Amazon через глобальный поиск по сети каждые три часа, чтобы загружать информацию о ценах, рейтинге, количестве страниц и рецензиях на наши книги и книги наших конкурентов. Глобальный поиск по сети казался мне нерациональным, поскольку нам приходилось загружать гораздо больше данных, чем требовалось, а затем извлекать только нужные биты информации. Я был убежден, что огромный каталог товаров Amazon был прекрасным примером обширного набора данных, к которому следует предоставить доступ – в программном отношении через веб-сервисы API в «операционной системе Интернета» следующего поколения, которую я проповедовал.