Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая
Вид материала | Курсовая |
- Калининградский Государственный Технический университет Экономический факультет Кафедра, 305.66kb.
- Курсовая работа защищена с оценкой, 18.89kb.
- Конференция «Безопасность информационных систем предприятия», 59.58kb.
- Московская финансово-юридическая академия «Согласовано» «Утверждено на 2007 / 2008, 21.72kb.
- О защите конкуренции, 1152.72kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий., 195.33kb.
- Институт информационных технологий Кафедра информационных и коммуникационных технологий, 207.89kb.
- Уголовный кодекс российской федерации, 3723.74kb.
- Титульный лист программы обучения по дисциплине Syllabus, 456.17kb.
- Принят Государственной Думой 8 декабря 1995 года Глава I. Общие положения статья, 545.05kb.
7.2.Согласованность кэша
Исходный сервер определяет время актуальности кэшированного ответа. Кэш же должен перед тем, как отправить запрашивающему клиенту кэшированный ресурс, убедиться, что он еще актуален. Согласованность кэша - хорошо изученная проблема для всех форм кэширования на компьютерах. Первоначально согласованность изучалась в связи с использованием многоуровневой памяти компьютера - кэшированная копия файла могла измениться на диске. Были предприняты попытки минимизировать объем затрат, требуемых для проверки актуальности, однако цена поддержания согласованности менялась в зависимости от контекста. Для Web-кэшей в последнее время были предложены различные алгоритмы поддержания согласованности. Согласованность кэша может зависеть от ресурсов и политики сохранения элементов в кэше. Кэши могут просто возвращать более старое кэшированное значение с добавлением признака устаревания ресурса. Одна из причин такого поведения - отключение исходного сервера или перегрузка кэша. Заголовок Warning протокола НТТР/1.1 может использоваться для указания того, что возвращаемое кэшированное значение возможно уже устарело. Агент пользователя может сделать эту информацию доступной пользователю.
В распределенных файловых системах проблема кэширования была также глубоко изучена. Web отличается от распределенных файловых систем по ряду признаков. Обновление ресурса происходит только в одном месте - на исходном сервере, а в распределенных файловых системах это обновление может происходить в различных местах. Однако в Web присутствие большого числа прокси-серверов и возможность кэшировать части ответа меняют картину. Кроме того, в Web цепа проверки актуальности выше из-за необходимости установления соединения с исходным сервером.
Протокол НТТР/1.1 обеспечивает несколько путей для поддержания согласованности кэша. Если исходный сервер задает определенное время истечения срока годности ресурса, то прокси-сервер, обеспечивающий семантическую прозрачность кэширования, обязан строго придерживаться этих сроков. Единственным исключением может быть наличие в заголовке запроса клиента директивы Cache-Control: only-if-cached, которая заставляет прокси-сервер возвратить кэшированный ответ без проверки его актуальности на исходном сервере. Если же исходный сервер не задает срок годности ресурса, то прокси-сервер может использовать эвристически вычисленное время годности. Это время часто связывается с проверкой актуальности. Наиболее общим подходом к проверке актуальности в Web является запрос с методом Get или Head и заголовком If-Modified-Since. Этот заголовок включает время последней модификации ресурса, который был указан исходным сервером. В некоторых случаях время создания ответа может совпадать со временем последней модификации. Атрибуты содержимого протокола НТТР/1.1 в совокупности с заголовком if-Match могут быть использованы для выполнения проверки актуальности для версий ресурсов. Исходный сервер может вернуть полную копию ресурса (вместе с ответом 200 OK) или ответ 304 Not Modified без тела ответа. Однако проверка актуальности требует полного цикла HTTP-обмена запросом и ответом.
Если кэширующий прокси-сервер посылает запрос для проверки актуальности при каждом запросе ресурса, то такая политика кэша называется строго согласованной. Если кэш использует эвристические процедуры для оценки сроков годности кэшированного ответа без взаимодействия с исходным сервером, то такая политика называется слабо согласованной. В зависимости от вида кэша и типичного набора кэшированпых ответов может быть подходящей либо первая, либо вторая политика. Эвристика, основанная на фиксированном времени храпения, а также эвристики, основанные на времени жизни, относятся к слабо согласованным политикам. Эти слабо согласованные подходы отличаются тем, какой компонент берет ответственность за определение периода актуальности ресурса:
- ^ Эвристика, основанная на фиксированном времени хранения. Кэш может хранить ответ в течение фиксированного интервала времени без проверки актуальности. Однако сервер обещает уведомить кэш в случае изменения ресурса в течение периода храпения. После истечения этого периода, кэш может проверить ресурс на актуальность. Данный подход, описанный в [LC97], переносит накладные расходы по проверке актуальности ресурсов на сервер, который теперь должен взаимодействовать со всеми кэширующими прокси-серверами, которым он обещал сообщить об обновлениях ресурсов. Если исходный сервер должен уведомить большое число прокси-серверов, то этот способ не слишком подходит. Отметим, что при этом требуется взаимодействие для того, чтобы сервер мог уведомить кэши об истечении времени хранения. Алгоритмы, основанные на фиксированном времени хранения, широко обсуждаются в литературе, по они еще не реализованы в популярных кэширующих прокси-серверах. Одна из причин заключается в том, что они требуют совместных действий, сервера и кэша.
- ^ Подход, основанный на времени жизни (TTL – Time То Live). С каждым ответом связано время истечения срока его годности. Когда этот интервал времени заканчивается, ответ рассматривается как устаревший. В течение срока годности кэш не перепроверяет его актуальность и, тем самым, остается возможность того, что будет использован устаревший ответ. Значение TTL может изменяться в зависимости от ресурса и основано на следующих факторах:
- ^ Время истечения срока годности определено в поле заголовка ответа. Кэш может его использовать непосредственно или модифицировать на основе своей политики. Если время годности ресурса не указано, то кэш может назначить определенное значение TTL для ресурсов данного вида.
- ^ Частота запросов кэшированного ресурса. Ресурсам, запрашиваемым чаще, можно назначить большее TTL.
- Мобильная среда. Непостоянное подключение и низкая скорость соединения пользователей мобильных устройств может привести к заданию специальных значений TTL для ответов, запрашиваемых такими пользователями.
- ^ Время последней модификации ресурса. Адаптивный алгоритм может предположить, что недавно модифицированный ресурс может снова измениться. Следовательно, кэш может назначить меньшее значение TTL для недавно измененного ресурса. Кэшированному ответу может быть назначено большее TTL, если на исходном сервере ресурс не изменялся в течение длительного времени. Информация о времени изменения берется из заголовка ответа Last Modified.
Подходы, основанные на TTL, являются достаточно популярными.
Поддержание согласованности может оказать существенное влияние на время ответа кэша, т.к. каждый запрос для проверки актуальности требует установления соединения с исходным сервером.