Как происходит идентификация файлов в сетяхр2р? Собственно получению файла предшествуют два действия, поддержке которых в FTP/HTTP не уделено должного внимания:
1. Пользователь выбирает файл на сервере.
2. Клиентская программа получает от сервера идентификатор файла, после чего отправляет запросы на файл с данным идентификатором другим клиентам.
Перечислим сведения о файле, которые сервер в принципе может сообщить пользователю, чтобы тот сделал выбор:
>- имя, размер, время создания и прочие метаданные, предоставляемые файловой системой;
>■ сведения из файлов-описателей, расположенных в том же каталоге (file_id.diz, readme.txt, description и др.);
>■ если файл хранит текст (расширение .doc, .txt, .pdf и т.д.), то начальную часть текста;
> если в формате файла предусмотрено место для комментариев (МРЗ, EXE, ZIP, RAR и т.д.), то содержимое комментариев;
>■ любые дополнительные описания, которые публикатор решит ввести для файла вручную.
Что является надежным идентификатором для файла ? Во-первых, GUID- так называемый глобалъноуникалъный идентификатор, автоматически генерируемый и назначаемый файлу в момент публикации. Во-вторых, контрольная сумма, вычисляемая по содержимому файла. Даже если файл будет опубликован ^независимо несколькими узлами, каждый из которых присвоит ему свой собственный GUID, по контрольной сумме все равно можно будет понять, что это один и тот же файл. Хотя вычисление контрольных сумм занимает много времени, многие р2р программы умеют производить его в фоновом режиме.
•За счет чего пиринговая сеть совершеннее HTTP/FTP?
Сеть р2р является полноценной распределенной системой,
|го есть:
і
^ одни и те же данные резервируются на множестве узлов; ^ список узлов формируется и обновляется автоматически;
>■ у клиента существует возможность также автоматически выбирать узлы для получения данных;
>■ при выходе из строя части узлов система остается работоспособной.
В то же время FTP/HTTP используют только информацию о файле, предоставляемую им файловой системой, на которой файл расположен: имя, размер, дата создания и последнего доступа (все эти метаданные не уникальны). По этой причине ни базовый FTP, ни базовый HTTP распределенными системами не являются. Один и тот же файл или вебстраница на разных узлах могут иметь разное имя. И наоборот, разные файлы и страницы на разных узлах могут называться одинаково. У клиента нет надежного способа определить, на каких узлах находятся требуемые данные. И, как уже говорилось, FTP/HTTP-клиенты по мере получения данных не становятся их распространителями и не разгружают от запросов оригинальный сервер. Конечно, широко практикуется создание так называемых зеркал (mirrors), автоматически синхрони' зируемых с сайтом-оригиналом, однако ручными операциями остаются как создание сайта-зеркала (для администратора), так и выбор ближайшего зеркала (для пользователя).
Что такое DRUMS?
Разработчик музыкального сервиса Andromeda опубликовал интересное предложение: создать для пиринговых музыкаль ных сетей своеобразный аналог системы DNS. Сервис унифицированных метаданных о цифровых права) DRUMS (Digital Rights Uniform Metadata Service) будет вклю чать в себя централизованную/распределенную метабаз) данных и центр авторизации, который имеет право обнов лять и дополнять БД.