Распределение ресурсов
Web-ресурсы очень богаты и продолжают непрерывно пополняться. Это web-страницы (содержащие текст, изображения, Java-апплеты, фреймы и т. д.), музыкальные файлы в формате МРЗ, записанное потоковое аудио и видео, виртуальные миры. Ресурсы распределены между огромным количеством серверов, разбросанных по всему миру, и доступны миллионам пользователей.
Протокол HTTP является средством, позволяющим любому пользователю получить любой объект независимо от того, сколькими тысячами километров измеряется расстояние между хостом пользователя и удаленным сервером и сколько Интернет-провайдеров находится на пути запроса. Тем не менее время доступа к web-ресурсам иногда бывает весьма значительным. Ниже перечислены некоторые причины такой ситуации.
□ На пути объекта к хосту пользователя имеются низкоскоростные линии связи, что приводит к значительным задержкам передачи. Как было показано в главе 1, задержка передачи для линии связи может быть рассчитана как L/R, где L представляет объем объекта, a R — скорость передачи по линии связи.
□ На пути объекта находится хотя бы один перегруженный узел, в котором велико значение задержки ожидания и имеет место потеря пакетов (см. раздел «Задержки и потери данных в сетях с коммутацией пакетов» в главе 1). Перегрузки (приближение коэффициента интенсивности трафика к 1) могут происходить даже в тех случаях, когда входы узла представляют собой высокоскоростные линии связи.
□ Web-сервер, которому адресован запрос, перегружен, и время ожидания обслуживания запроса может быть весьма значительным.
Для решения проблемы задержек используется нехитрый прием: один и тот же ресурс располагают на нескольких серверах, и запрос переадресуется «наилучшему» серверу. Для web-страницы или МРЗ-файла «наилучшим» будет тот сервер, время выполнения запроса которым минимально. Зачастую такой сервер принадлежит наиболее близкому к пользовательскому хосту Интернет-провайдеру.
Распределение ресурсов подразумевает механизмы дублирования ресурсов, а также способы определения хостами серверов, наиболее подходящих для выполнения запросов. Во второй половине 1990-х годов средства распределения ресурсов получили широкое распространение; в настоящее время они активно применяются, особенно в сфере аудио- и видеоинформации. Существуют несколько крупных компаний, занимающихся распределением ресурсов. Компании Cisco, Lucent, Inktomi и CacheFlow разрабатывают соответствующее аппаратное и программное обеспечение, a Akamai, Digital Island и AT&T реализуют услуги распределения ресурсов компаниям-поставщикам ресурсов, таким как Yahoo! и CNN. Распределение ресурсов является полем для активных исследований как с научной, так и с промышленной точек зрения.
За прошедшие годы инженеры и исследователи предложили множество решений, касающихся распределения ресурсов. Эти решения можно приближенно разделить на три группы: web-кэширование, сети распределения ресурсов (Content Distribution Networks, CDN) и одноранговое разделение файлов. Ниже мы рассмотрим каждую из технологий, однако сначала немного уточним терминологию. Поставщиком ресурсов мы будем считать любое лицо, организацию или компанию, которые располагают ресурсом, доступным для пользователей Интернета. Под сервером-источником объекта будет подразумеваться сервер, на котором первоначально находился объект и где всегда можно найти копию этого объекта.