Равноправные вычисления в Internet

21 май, 2002 - 23:00Леонід Бараш
Можно смело утверждать, что большую часть времени ваш компьютер простаивает. И не только ваш. Миллионы процессоров нагревают воздух, терабайты дискового пространства остаются неиспользованными, скоростные каналы доступа к Internet пустуют. А что, если заставить эти ресурсы работать? Сотни начинающих компаний мчатся наперегонки, пытаясь первыми предложить рынку технологию Peer-to-Peer Сomputing, с помощью которой 10 млрд. мегагерц процессоров и 10 тыс. терабайт дисковой памяти, подсоединенных к Internet, могут превратиться в деньги.
Прежде чем рассматривать те области, в которых равноправные (Peer-to-Peer -- P2P) вычисления могут быть применены с особым успехом, попробуем разобраться, что кроется под обозначением P2P. По своей сути эти вычисления выходят за рамки определенного класса приложений и являются, скорее, технологией или, более точно, концепцией. Они представляют собой подмножество распределенных вычислений. Под названием "Peer-to-Peer" подразумеваются не только равноправные отношения между узлами (т. е. каждый может служить как клиентом, так и сервером для других), но, что важнее, прямое взаимодействие между ними. Именно это наиболее сложно реализовать при современной структуре Internet.

Равноправные вычисления не являются чем-то абсолютно новым. Сам термин P2P, конечно, появился недавно, однако базис для такого рода вычислений был заложен еще сетями USENET и FidoNet. Первые появились еще в 1979 г. и с функциональной точки зрения реализуются как распределенное приложение, доставляющее группы новостей. Самое раннее их воплощение -- работа двух студентов Тома Траскотта (Tom Truscott) и Джима Эллиса (Jim Ellis). Обмен файлами осуществлялся группами по телефонным линиям и, как правило, по ночам. FidoNet, подобно USENET, также является децентрализованным распределенным приложением. Сеть была создана в 1984 г. Томом Дженнингсом (Tom Jennings) как способ обмена сообщениями между пользователями различных систем BBS. Эти сети интересны тем, что еще много лет назад преодолели проблемы, с которыми сталкиваются современные вычисления P2P. Последние же во многом пересекаются с задачами, являющимися общими для всяких распределенных вычислений: координация и мониторинг работы независимых узлов и обеспечение надежных коммуникаций между ними.

Равноправные вычисления в Internet
Схемы взаимодействия:
а) клиент/сервер;
б) P2P с посредником (гибридная);
в) P2P без посредника

Небезынтересно отметить, что до 1994 г. Internet имела модель связности узлов сети, поддерживающую концепцию равноправных вычислений. Мэйнфреймы университетов и правительственных учреждений были всегда включенными, и им присваивались постоянные IP-адреса. Система DNS разрабатывалась для окружения, где изменение IP-адреса считалось событием из ряда вон выходящим. Если такое и случалось, то имелось достаточно времени, чтобы оповестить об этом всю систему.

С изобретением Mosaic стала внедряться другая модель связности. К Сети с помощью модемов начали подключаться ПК со своими собственными IP-адресами. При этом ПК могли непредсказуемо устанавливать и разрывать связь с облаком Internet. Распространение технологии WWW вызвало экспоненциальный рост Internet.

Вместе с тем проблемы обеспечения безопасности привели к тому, что корпоративные локальные сети стали изолироваться от Internet с помощью брандмауэров. Если же компьютер находится позади брандмауэра, то система NAT (Network Address Translation) маскирует реальный адрес, заменяя его общим адресом для всех ПК данной локальной сети. Это значит, что внешний компьютер не может идентифицировать рабочие станции, входящие в такую сеть. Далее, вследствие нехватки IP-адресов, вызванной бурным ростом Internet, провайдеры начали присваивать их динамически, и ПК с каждой новой сессией получали другой адрес. Такие компьютеры уже не входили в базу данных DNS. В общем, для локализации узла с динамическим или NAT-транслированным IP-адресом необходимы были альтернативные способы.

Пожалуй, первой ласточкой явился выпуск в 1996 г. программы ICQ, прямо адресовавшей компьютеры, периодически подключаемые к Internet. ICQ обходила DNS, создавая свой собственный каталог протокол-специфических адресов, которые могут модифицироваться в реальном масштабе времени. Этот же трюк используют Napster, NetMeeting и компания Groove Networks в своем продукте для совместной работы (collaboration P2P). Однако ближе всех к идеалу прямых коммуникаций в Internet подошла Gnutella, разработанная Джастином Френкелем (Justin Frankel) в 1999 г. Запущенное на хостах ПО Gnutella создает временную сеть GnutellaNet, обеспечивающую прямую связь между ними. Проблемы с NAT-адресами преодолеваются при условии, что NAT-брандмауэр установлен только на одной стороне канала.


Peer-to-Peer не значит serverless

Было бы ошибкой полагать, что технология P2P вообще не использует централизованных серверов для выполнения некоторых функций. Современная структура Internet приводит к тому, что построение P2P-сетей в соответствии со строгим определением этой технологии существенно ограничит заложенные в ней возможности. На практике же важно обеспечить решение проблемы, а не соблюдать чистоту идеологии. Поэтому получившие сегодня наибольшее распространение P2P-приложения для установления прямых коммуникаций используют центральные серверы. Такая архитектура получила название гибридной или с посредником (Hybrid or Brokered P2P). Пожалуй, наилучшим примером такой гибридной архитектуры служит Napster. Хотя обмен MP3-файлами выполняется непосредственно между узлами, поиск осуществляется в базе данных, находящейся на центральном сервере. Рисунок иллюстрирует базовые схемы взаимодействия узлов в Internet.


Группы приложений P2P

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

Доставка контента. Служба доставки контента, известная также как разделение файлов, аналогична сервисам, предоставляемым Napster и Gnutella. Она позволяет пользователям разделять контент, хранящийся вне их локального жесткого диска. Появление таких приложений отражает растущую тенденцию децентрализации контента и, как следствие, децентрализацию управления им.

Если оставить в стороне юридические и моральные аспекты, связанные с отсутствием контроля, то можно предположить, что службы доставки контента получат широкую поддержку. Увеличение мощности ПК совместно с повышающейся доступностью скоростных каналов связи делают децентрализованное хранение контента вполне осуществимым. В потребительской сфере это сведется к разделению музыки и электронных развлечений. Но если данная технология пробьет себе дорогу в бизнес, она представит серьезную угрозу его централизованной модели. Правда, остроту конфликта может понизить гибридная архитектура P2P.

Разделение полосы пропускания. Видео- и мультимедиа-продюсеры всегда стремились поставлять пользователям свою продукцию, требующую широкой полосы пропускания, с центральных серверов. Однако практика знает ряд весьма впечатляющих отказов, когда тысячи пользователей обращались к одному сайту. В дальнейшем проблемы перегрузки каналов решались с помощью так называемых CDN-компаний (Content Distribution Networks). К примеру, Akamai сдавала в аренду тысячи серверов, располагавшихся в разных географических регионах. Когда пользователь запрашивал какой-нибудь контент, он обслуживался ближайшим сервером. Но здесь возникали свои проблемы. Необходимость обновлять устаревшую технику и логистические операции в десятках стран приводили к значительным затратам, что делало услуги таких компаний весьма дорогостоящими.

Совершенно другой подход предлагает технология P2P. Ряд компаний вербуют пользователей по всему миру, превращая их компьютеры в своего рода ретрансляционные станции. Хотя стоимость услуг получается значительно меньше, чем у CDN-компаний, тем не менее новизна отпугивает желающих поделиться своими ресурсами. Поэтому остается только наблюдать, получит ли такая схема распространение.

Сотрудничество. Хотя совместная работа предусматривает разделение полосы пропускания и дискового пространства, в действительности это отдельный класс приложений, поскольку основным здесь является обеспечение коммуникаций между группой пользователей в реальном масштабе времени. Наиболее показательным ПО в этой области является Groove от Groove Networks. Здесь в одном пакете объединены несколько P2P-технологий. С помощью Groove пользователи могут совместно редактировать документы, разделять "белую доску" и файлы, организовывать видеоконференции. В качестве собственного know how компания добавляет к пакету средства безопасности.

Сотовые вычисления (hive computing). Несмотря на столь новое звучание, это все те же распределенные вычисления. Концепция их проста и заключается в том, что для решения задачи используется несколько компьютеров. Наиболее сложной проблемой в реализации таких вычислений является координация отдельных компьютеров, дистанционно удаленных друг от друга и взаимодействующих через сеть. Так, для решения задачи могут потребоваться процессоры трех одних компьютеров, памяти пяти других и дискового пространства дюжины третьих. Поэтому наиболее подходящими для сотовых вычислений будут задачи, допускающие декомпозицию на ряд подзадач, которые могут практически независимо решаться на многомашинной системе со слабой связью. А поскольку такой метод все же требует некоторого централизованного управления, то здесь уместно будет применение гибридной архитектуры.

Наиболее известным примером сотовых вычислений является проект SETI@ Home (Search for Extraterrestrial Intelligence -- поиск внеземных цивилизаций). Правда, исследователи из Xerox PARC экспериментировали с распределенными вычислениями еще в 1970 г., а корпорация Intel использует сотовые вычисления для разработки микросхем с 1990 г.

Таким образом, мантра Sun Microsystems "Сеть -- это компьютер", похоже, становится реальностью.