Управляемое приложением предварительное кэширование в cdn

Иллюстрации

Показать все

Изобретение относится к области доставки контента. Техническим результатом является создание усовершенствованной серверной технологии кэширования, посредством которой повышается производительность приложений-клиентов при получении контента из сети, особенно при наличии ограниченной ширины полосы пропускания. Способ функционирования сервера кэширования содержит этапы, на которых: принимают от приложения-клиента в пользовательском устройстве запрос требуемого контента, включающий в себя указание относящегося к требуемому контенту дополнительного контента и указание вероятности, сгенерированное приложением-клиентом, при этом дополнительный контент является предсказанным в качестве того, что будет впоследствии запрашиваться приложением-клиентом, а указание вероятности показывает вероятность того, что дополнительный контент будет впоследствии запрошен приложением-клиентом; назначают приоритет передаче запроса, по меньшей мере, указанного дополнительного контента в сервер источника на основе указания вероятности; передают запрос, по меньшей мере, указанного дополнительного контента в сервер источника; принимают дополнительный контент из сервера источника; передают требуемый контент, но не дополнительный контент, в приложение-клиент в пользовательском устройстве; кэшируют дополнительный контент; принимают от приложения-клиента в пользовательском устройстве второй запрос, включающий в себя запрос дополнительного контента; и направляют котированный дополнительный контент в приложение-клиент в пользовательском устройстве. 3 н. и 17 з.п. ф-лы, 12 ил.

Реферат

Уровень техники

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

Bing®Maps корпорации "Майкрософт", Редмонд, Вашингтон, является примером онлайнового приложения, которое обеспечивает контент с использованием CDN. У этого приложения существует большой объем статического контента в виде фрагментов карты (изображений частей карты), хранящихся в серверах источника, который доставляется конечным пользователям через CDN. Например, пользователь может использовать web-браузер для просмотра карты на своем вычислительном устройстве, например, посредством панорамирования по всей карте, увеличения или уменьшения части карты и т.д. Когда пользователь просматривает карту, браузер передает в CDN запросы новых фрагментов карты.

Разработаны различные способы обеспечения возможности более быстрого предоставления контента (например, фрагментов карты) в web-браузер в пользовательском вычислительном устройстве. Согласно первому способу, сервер источника для онлайнового приложения может предсказывать будущие запросы контента. Предсказанный будущий контент может предварительно кэшироваться в CDN, чтобы пользовательское вычислительное устройство могло более быстро осуществлять доступ к нему, если этот предсказанный будущий контент фактически запрашивается. Согласно второму способу, клиентский web-браузер в пользовательском вычислительном устройстве может предсказывать то, какой контент может потребоваться в будущем, и может предварительно извлекать и доставлять контент в web-браузер. Согласно третьему способу, сервер CDN может предсказывать будущие запросы контента пользовательским вычислительным устройством и может предварительно кэшировать этот предсказанный будущий контент в CDN.

Однако, у этих способов существуют недостатки. Например, предсказание серверами источника будущего контента имеет недостаток, заключающийся в том, что контент, который должен быть предварительно кэширован, определяется заранее. В отношении предварительно извлеченного и доставленного контента в web-браузер, в случаях, когда пользователь несет затраты по передаче данных или имеет ограниченную ширину полосы пропускания (например, в мобильных приложениях), такое предварительное кэширование может являться неприемлемым и/или может не обеспечивать требуемого быстродействия. Кроме того, относительно предсказания и предварительного кэширования сетью CDN будущего контента, для правильного представления о типах запросов контента, которые принимает CDN, может потребоваться очень сложная CDN, которая может делать логический вывод о будущих запросах контента.

В связи с этим, современные способы кэширования являются неприемлемыми. В случае Bing®Maps, из-за количества фрагментов карты, которые являются доступными, и разных зон фокусировки разных пользователей, относительная величина успешных обращений к кэшу (отношение запрошенных данных, которые кэшируются, к общему количеству доступных данных) является неприемлемо низкой (например, меньше 50%). Это в результате приводит к относительно большому времени ожидания загрузки карты, потому что вместо того, чтобы извлекать фрагменты карты из кэша в CDN, фрагменты карты для пользователей зачастую должны извлекаться из серверов источника.

Сущность изобретения

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

Предложены способы, системы и компьютерные программные продукты для кэширования контента до фактического запроса этого контента. Приложение-клиент может предсказывать контент, который может быть запрошен впоследствии, для требуемого контента (в отличие от предсказания, выполняемого на сервере источника или на сервере сети доставки контента). Кроме того, предсказанный контент может кэшироваться на сервере кэширования сети доставки контента (вместо того чтобы кэшироваться в web-браузере). Такие способы могут увеличивать относительные величины успешных обращений к кэшу, сокращать время ожидания и/или иметь дополнительные преимущества.

В одной реализации способа в сервере кэширования из приложения-клиента принимается первый запрос требуемого контента. В первом запросе также может указываться дополнительный контент, относящийся к требуемому контенту, который может быть запрошен приложением-клиентом впоследствии. Указанный дополнительный контент в данный момент не указывается как требуемый для использования, но предсказывается, что он возможно потребуется для использования в будущем. Требуемый контент и указанный дополнительный контент извлекаются из сервера источника. Требуемый контент передается в приложение-клиент в устройстве пользователя, а дополнительный контент кэшируется на сервере кэширования. Впоследствии, из приложения-клиента может быть принят второй запрос, который включает в себя запрос упомянутого дополнительного контента (например, потому что в настоящее время этот дополнительный контент требуется для использования в приложении-клиенте). Упомянутый дополнительный контент, который кэшируется на сервере кэширования в ответ на первый запрос, направляется сервером кэширования в приложение-клиент в ответ на второй запрос.

Первый запрос требуемого контента может включать в себя указание вероятности, которое указывает вероятность того, что впоследствии упомянутый дополнительный контент может быть запрошен приложением-клиентом. Запросу указанного дополнительного контента на сервере источника может быть назначен приоритет на основе упомянутого указания вероятности (относительно других запросов контента) и/или другой информации.

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

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

В одной реализации приложения-клиента, приложение-клиент может включать в себя интерфейс связи и средство предсказания дополнительного контента. Средство предсказания дополнительного контента принимает указание в данный момент требуемого контента для приложения-клиента и предсказывает дополнительный контент, который может быть впоследствии запрошен приложением-клиентом. Интерфейс связи генерирует первый запрос требуемого контента, который также указывает предсказанный дополнительный контент. Интерфейс связи принимает требуемый контент из сервера кэширования, который извлек требуемый контент из сервера источника в ответ на первый запрос. Впоследствии, интерфейс связи генерирует второй запрос, который является запросом предсказанного дополнительного контента в качестве в данный момент требуемого контента. Предсказанный дополнительный контент принимается из сервера кэширования. Сервер кэширования ранее извлек дополнительный контент из сервера источника и кэшировал этот дополнительный контент в ответ на первый запрос.

Кроме того, средство предсказания дополнительного контента может включать в себя блок назначения приоритета дополнительному контенту. Блок назначения приоритета дополнительному контенту генерирует указание вероятности, которое указывает вероятность того, что упомянутый дополнительный контент может быть впоследствии запрошен приложением-клиентом.

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

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

Краткое описание чертежей

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

На фиг. 1 представлена структурная схема сети доставки контента, которая доставляет контент в устройства пользователя, согласно иллюстративному варианту осуществления.

На фиг. 2 представлена структурная схема сети доставки контента, в которой предсказанный контент извлекается и кэшируется сервером кэширования, согласно иллюстративному варианту осуществления.

На фиг. 3 представлена блок-схема, иллюстрирующая процесс кэширования контента, который может быть в будущем запрошен приложением-клиентом, для сервера кэширования, согласно иллюстративному варианту осуществления.

На фиг. 4 представлена блок-схема, иллюстрирующая процесс обеспечения ранее кэшированного контента в приложение-клиент, согласно иллюстративному варианту осуществления.

На фиг. 5 представлена блок-схема, иллюстрирующая процесс запроса и приема требуемого контента и указания контента, который может быть запрошен в будущем, для приложения-клиента, согласно иллюстративному варианту осуществления.

На фиг. 6 представлена структурная схема устройства пользователя, содержащего приложение-клиент, сконфигурированное для запроса и приема требуемого контента и для указания контента, который может быть запрошен в будущем, согласно иллюстративному варианту осуществления.

На фиг. 7 представлена структурная схема средства предсказания дополнительного контента, которое включает в себя блок назначения приоритета дополнительному контенту, согласно иллюстративному варианту осуществления.

На фиг. 8 представлен процесс указания вероятности того, что в будущем контент может быть запрошен приложением-клиентом, согласно иллюстративному варианту осуществления.

На фиг. 9 представлена структурная схема сервера кэширования согласно иллюстративному варианту осуществления.

На фиг. 10 представлена структурная схема модуля извлечения контента, который включает в себя блок назначения приоритета запросу, согласно иллюстративному варианту осуществления.

На фиг. 11 представлен процесс назначения приоритетов запросам в сервер источника на предмет контента, который в будущем может быть запрошен приложением-клиентом, согласно иллюстративному варианту осуществления.

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

Признаки и преимущества настоящего изобретения станут более очевидными из подробного описания, изложенного ниже, при рассмотрении вместе с чертежами со сквозной нумерацией. На чертежах одинаковые ссылочные позиции обычно указывают на идентичные, функционально аналогичные и/или структурно аналогичные элементы. На чертеж, в котором элемент появляется впервые, указывает крайняя левая цифра(ы) в соответствующей ссылочной позиции.

Подробное описание

I. Введение

В настоящем описании изобретения раскрыты один или несколько вариантов осуществления, которые объединяют признаки изобретения. Раскрытый вариант(ы) осуществления просто иллюстрирует изобретение на примере. Объем изобретения не ограничивается раскрытым вариантом(ами) осуществления. Изобретение определяется прилагаемой формулой изобретения.

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

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

II. Иллюстративные варианты осуществления

Сеть доставки контента (CDN) является сетью компьютеров, содержащих копии данных, размещенных в различных узлах сети. CDN обеспечивает интерфейс для данных между компьютерами конечного пользователя и серверами источника. Серверы источника являются первичными источниками контента, и серверы CDN кэшируют копии контента из серверов источника, являющегося самым востребованным. Серверы CDN стратегически могут быть организованы так, чтобы находиться ближе к компьютерам конечного пользователя, чем к серверам источника. Компьютеры конечного пользователя могут осуществлять доступ к наиболее востребованным данным на серверах CDN, а не быть вынужденными осуществлять доступ к этим данным непосредственно из серверов источника. По существу, CDN улучшает доступ к данным посредством увеличения ширины полосы пропускания для доступа, увеличения избыточности и сокращения времени ожидания доступа. Типы контента, который может быть кэширован в сетях CDN, включают в себя web-объекты (текст, графика, URL и скрипты), скачиваемые объекты (файлы мультимедиа, программные средства, документы), приложения, потоковую передачу мультимедиа в режиме реального времени и запросы к базам данных.

Разработаны различные способы обеспечения возможности более быстрого предоставления контента (например, фрагментов карты) в web-браузер в пользовательском вычислительном устройстве. Согласно первому способу, сервер источника для онлайнового приложения может предсказывать будущие запросы контента. Предсказанный будущий контент может предварительно кэшироваться в CDN, чтобы пользовательское вычислительное устройство могло более быстро осуществлять доступ к нему, если этот предсказанный будущий контент фактически запрашивается. Согласно второму способу, клиентский web-браузер может предсказывать то, какой контент может потребоваться в будущем, и может предварительно извлекать и доставлять контент в web-браузер в пользовательском вычислительном устройстве (например, с использованием способов AJAX (асинхронный JavaScript)). Например, пользователь может использовать web-браузер для просмотра последовательности изображений в вычислительном устройстве. Каждый раз, когда просматривается изображение, на сервере источника может быть предсказано следующее изображение, которое будет просматриваться, и это предсказанное следующее изображение может быть предварительно выбрано и доставлено в web-браузер для обеспечения возможности плавного и мгновенного перехода от текущего изображения к следующему изображению. Согласно третьему способу сервер CDN может предсказывать будущие запросы контента пользовательским вычислительным устройством и может предварительно кэшировать этот предсказанный будущий контент в CDN.

Однако у этих способов существуют недостатки. Например, предсказание серверами источника будущего контента имеет недостаток, заключающийся в том, что контент, который должен быть предварительно кэширован, определяется заранее. В отношении предварительно извлеченного и доставленного контента в web-браузер, в случаях, когда пользователь несет затраты по передаче данных или имеет ограниченную ширину полосы пропускания (например, в мобильных приложениях), такое предварительное кэширование может являться неприемлемым и/или может не обеспечивать требуемого быстродействия. Кроме того, относительно предсказания и предварительного кэширования сетью CDN будущего контента, для правильного представления о типах запросов контента, которые принимает CDN, может потребоваться очень сложная CDN, которая может делать логический вывод о будущих запросах контента.

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

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

По существу, варианты осуществления обеспечивают возможность предварительного кэширования контента в серверах кэширования CDN, а не в приложениях-клиентах непосредственно. Обеспечивается возможность размещения бизнес-логики в приложении-клиенте, которая принимает решение относительно того, какой контент должен предварительно кэшироваться. Приложение-клиент может подсказывать CDN то, какой контент должен быть предварительно кэширован, непосредственно на основе пользовательского контекста/поведения и/или других факторов. Подсказка (hint) относительно предварительного кэширования может по выбору включать в себя указание вероятности того, что контент будет использоваться в будущем, с предоставлением возможности CDN назначать приоритеты запросам на предварительное кэширование согласно доступной емкости.

Варианты осуществления могут быть реализованы в CDN любого типа. Например, на фиг. 1 представлена структурная схема CDN 100, которая доставляет контент в устройства пользователя, согласно иллюстративному варианту осуществления. CDN 100 представлена как иллюстративный тип сети доставки контента и не является исчерпывающей. Как представлено на фиг. 1, CDN 100 включает в себя сервер 102 источника и первый и второй серверы 104a и 104b кэширования. Кроме того, как представлено на фиг. 1, CDN 100 доставляет контент в с первого по четвертое устройства 106a-106d пользователя. Несмотря на то, что для иллюстрации на фиг. 1 представлен один сервер 102 источника, два сервера 104a и 104b кэширования и четыре устройства 106a-106d пользователя, может присутствовать любое количество этих признаков по фиг. 1, включая один или несколько дополнительных серверов источника, один или несколько дополнительных серверов кэширования и/или одно или несколько дополнительных устройств пользователя, в том числе десятки, сотни, тысячи и даже большее количество серверов и/или устройств пользователя. В одном варианте осуществления серверы 104a и 104b кэширования могут быть или не быть включены в кластер серверов кэширования (так же, как и по выбору дополнительные серверы кэширования), и может присутствовать любое количество кластеров серверов кэширования.

Каждое из устройств 106a-106d пользователя может являться любым типом стационарного или мобильного вычислительного устройства, в том числе настольным компьютером (например, персональным компьютером и т.д.), мобильным компьютером или вычислительным устройством (например, устройством Palm®, устройством RIM Blackberry®, персональным цифровым секретарем (PDA), ноутбуком, блокнотным компьютером, планшетным компьютером (например, Apple iPad ™), нетбуком и т.д.), смартфоном (например, Apple iPhone, телефоном Google Android™, телефоном Microsoft Windows® и т.д.) или другим типом вычислительного устройства.

Как представлено на фиг. 1, сервер 102 источника и серверы 104a и 104b кэширования коммуникативно соединены через сеть 108a, и серверы 104a и 104b кэширования и устройства 106a-106d пользователя коммуникативно соединены через сеть 108b. Сети 108a и 108b могут являться отдельными сетями, либо они могут быть включены в единую сеть. Примеры сетей 108a и 108b включают в себя LAN (локальная сеть), WAN (глобальная сеть) или комбинацию сетей, например, Internet. Примеры линий связи, которые могут быть включены в сети 108a и 108b, включают в себя линии радиосвязи беспроводных LAN (WLAN) IEEE 802.11, линии связи стандарта Общемировой совместимости широкополосного беспроводного доступа (Wi-MAX), линии связи сотовой сети, линии связи беспроводной персональной сети (PAN) (например, линии связи Bluetooth™), линии связи Ethernet, линии связи USB (универсальная последовательная шина) и т.д. Каждый из сервера 102 источника и серверов 104a и 104b кэширования может являться любым типом вычислительного устройства, описанного в этом документе, или известного из других источников.

Как представлено на фиг. 1, каждое из устройств 106a-106d пользователя включает в себя соответствующее одно из приложений-клиентов 110a-110d. Приложения-клиенты 110a-110d являются приложениями, исполняющимися в устройствах 106a-106d пользователя, которые осуществляют доступ к контенту через CDN 100. Примеры приложений-клиентов 110a-110d включают в себя web-браузеры, медиаплееры (например, видеоплееры, средства просмотра изображения, аудиоплееры и т.д.) и другие типы приложений-клиентов. Как представлено на фиг. 1, на сервере 102 источника в запоминающем устройстве хранится контент 112, доступ к которому может потребоваться приложениям-клиентам 11Oa-11Od. Контент 112 может являться любым типом контента, в том числе web-объектами (например, текст, графика/изображения/видео, URL (унифицированные указатели ресурсов), скрипты и т.д.), скачиваемыми объектами (например, файлы мультимедиа, программные средства, документы и т.д.), приложениями, потоковой передачей мультимедиа в режиме реального времени и данными базы данных. В некоторых случаях приложения-клиенты 110a-11Od могут осуществлять доступ к контенту 112 непосредственно на сервере 102 источника. Кроме того, каждый из серверов 104a-104b кэширования может кэшировать части контента 112 в виде кэшированного контента 114a и кэшированного контента 114b, соответственно. В связи с этим, в некоторых случаях, приложения-клиенты 110a-110d могут осуществлять доступ к контенту 112 на серверах 104a и 104b кэширования как и кэшированному контенту 114a и 114b, а не быть вынуждены получать контент 112 непосредственно из сервера 102 источника, что может являться узким местом.

Например, как представлено на фиг. 1, приложение-клиент 110a устройства 106a пользователя может передавать запрос 116 контента в сервер 104a кэширования. В запросе 116 контента указывается контент, запрос в будущем которого предсказан приложением-клиентом 110a, и контент, который приложение-клиент 110a требует немедленно. Следовательно, приложение-клиент 110a передает в сервер 104a кэширования контент, который может быть запрошен в будущем и, следовательно, кэширование которого сервером 104a кэширования может являться целесообразным. Отметим, что в варианте осуществления по фиг. 1, в запросе 116 контента указывается как контент, требуемый приложением-клиентом 110a, так и контент, запрос в будущем которого предсказан приложением-клиентом 110a. В другом варианте осуществления, в запросе 116 контента может указываться контент, запрос в будущем которого предсказан приложением-клиентом 110a, а контент, требуемый приложением-клиентом 110a, может быть указан в отдельном запросе, передаваемом из приложения-клиента 110a в сервер 104a кэширования.

Сервер 104a кэширования может генерировать запрос 118 контента, который передается в сервер 102 источника, с запросом предсказанного будущего контента, указанного в запросе 116 контента. Если требуемый контент, запрошенный приложением-клиентом 110a, еще не кэширован на сервере 104a кэширования, то сервер 104a кэширования может указывать требуемый контент в запросе 118 контента или может передавать отдельный запрос требуемого контента в сервер 102 источника (или в другой сервер источника). Сервер 102 источника может передавать контент контента 112 в сервер 104a кэширования в ответе 120 на запрос 118 контента. Ответ 120 может включать в себя требуемый контент и предсказанный будущий контент. В качестве альтернативы, требуемый контент и предсказанный будущий контент могут передаваться из сервера 102 источника в сервер 104a кэширования в отдельных передачах, или требуемый контент и предсказанный будущий контент могут передаваться из разных серверов источника. Сервер 104a кэширования может кэшировать требуемый контент и предсказанный будущий контент как кэшируемый контент 114a и может передавать требуемый контент в приложение-клиент 110a как требуемый контент 122. Если приложение-клиент 110a впоследствии действительно запрашивает из сервера 104a кэширования контент, который предсказан как будущий контент, то сервер 104a кэширования может передавать кэшированный контент 114a в приложение-клиент 110a, который включает в себя упомянутый предсказанный будущий контент. Приложения-клиенты 110b-110d могут аналогично взаимодействовать с любым из серверов 104a и 104b кэширования или с ними обоими для приема контента исходного сервера 102 более эффективным способом, чем обычные способы, вследствие кэширования предсказанного будущего контента на сервере 104a и 104b кэширования.

Как описано выше, в одном варианте осуществления приложения-клиенты могут предсказывать контент, доступ к которому должен быть осуществлен в будущем, и этот предсказанный контент может кэшироваться на серверах кэширования для получения более быстрого ответа. В одном варианте осуществления, приложения-клиенты 110a-110d по фиг. 1 могут предсказывать контент, доступ к которому должен быть осуществлен в будущем, и могут указывать предсказанный будущий контент серверам 104a и 104b кэширования для кэширования. Например, на фиг. 2 представлена структурная схема CDN 200, согласно иллюстративному варианту осуществления. Как представлено на фиг. 2, CDN 200 включает в себя сервер 102 источника, сервер 202 кэширования и устройство 106a пользователя. Сервер 202 кэширования является примером одного из серверов 104a и 104b кэширования по фиг. 1. Как представлено на фиг. 2, устройство 106a пользователя включает в себя приложение-клиент 204, и приложение-клиент 204 включает в себя средство 208 предсказания дополнительного контента. Приложение-клиент 204 является примером одного из приложений-клиентов 110a-110d по фиг. 1. На фиг. 2, приложение-клиент 204 сконфигурировано для предсказания контента, который впоследствии может быть запрошен, и этот предсказанный контент извлекается и кэшируется сервером 202 кэширования.

Фиг. 2 описывается следующим образом со ссылкой на фиг. 3. На фиг. 3 представлена блок-схема 300, представляющая процесс кэширования контента, который может быть в будущем запрошен приложением-клиентом, для сервера кэширования, согласно иллюстративному варианту осуществления. В одном варианте осуществления, блок-схема 300 может выполняться сервером 202 кэширования по фиг. 2. В одном варианте осуществления блок-схема 300 может выполняться совместно множеством серверов кэширования, которые совместно используют запоминающее устройство-кэш. Кроме того, обмен информацией в блок-схеме 300 в отношении сервера источника может выполняться с одним сервером источника или множеством серверов источника. Кроме того структурные и функциональные варианты осуществления будут очевидны специалистам в данной области(ях) техники на основе нижеследующего обсуждения, касающегося блок-схемы 300 и сервера 202 кэширования.

Блок-схема 300 начинается с этапа 302. На этапе 302, из приложения-клиента, находящегося в устройстве пользователя, принимается запрос требуемого контента, причем в этом запросе указывается дополнительный контент, относящийся к требуемому контенту, который может впоследствии быть запрошен упомянутым приложением-клиентом. Например, как представлено на фиг. 2, сервер 202 кэширования может принять первый запрос 210 требуемого контента из приложения-клиента 204 устройства 106a пользователя. Первый запрос 210 требуемого контента является запросом требуемого контента, например, фрагмента карты, просматриваемой пользователем с использованием приложения-клиента 204, изображения в последовательности изображений, просматриваемых пользователем с использованием приложения-клиента 204, видеокадра видеообъекта (например, видеофайла), просматриваемого пользователем с использованием приложения-клиента 204, аудиокадра аудиообъекта (например, аудиофайла), воспроизводимого пользователем с использованием приложения-клиента 204, элемента контента web-страницы, который должен быть просмотрен пользователем с использованием приложения-клиента 204, и/или другого контента, описанного в этом документе, или о котором известно из других источников.

Кроме того, первый запрос 210 требуемого контента включает в себя указание дополнительного контента, относящегося к требуемому контенту, который может впоследствии быть запрошен приложением-клиентом 204. В одном варианте осуществления, устройство 208 предсказания дополнительного контента приложения-клиента 204 предсказывает дополнительный контент, относящийся к требуемому контенту, который может впоследствии быть запрошен приложением-клиентом 204. Например, предсказанный дополнительный контент может являться одним или несколькими дополнительными фрагментами карты, просматриваемой пользователем, которые, согласно предсказанию, впоследствии должны просматриваться пользователем, одним или несколькими дополнительными изображениями в последовательности изображений, просматриваемой пользователем, которые, согласно предсказанию, впоследствии должны просматриваться пользователем, одним или несколькими дополнительными видеокадрами видеообъекта, просматриваемого пользователем, которые, согласно предсказанию, впоследствии должны просматриваться пользователем, одним или несколькими дополнительными аудиокадрами аудиообъекта, воспроизводимого пользователем, которые, согласно предсказанию, впоследствии должны воспроизводиться пользователем, одним или несколькими дополнительными элементами контента, на которые ссылается web-страница, которые, согласно предсказанию, впоследствии должны просматриваться пользователем и т.д. Указание предсказанного дополнительного контента включается в первый запрос 210 требуемого контента приложением-клиентом 204.

Отметим, что первый запрос 210 требуемого контента (и ответ(ы) на него) может быть включен в одно или несколько соединений связи (например, TCP-соединение) между приложением-клиентом 204 и сервером 202 кэширования. Между приложением-клиентом 204 и сервером 202 кэширования может быть сформировано любое количество соединений, и каждое соединение может включать в себя запрос требуемого контента и/или может указывать один или несколько предсказанных дополнительных элементов контента. В некоторых случаях, требуемый контент может уже быть кэширован на сервере 202 кэширования, тогда как предсказанный будущий контент еще не кэширован. В таком случае из сервера источника сервером 202 кэширования может запрашиваться только предсказанный будущий контент (то есть, требуемый контент, который уже кэширован на сервере кэширования 202, не должен запрашиваться из сервера источника).

Согласно фиг. 3, на этапе 304 в сервер источника передается запрос, по меньшей мере, указанного дополнительного контента. Например, как представлено на фиг. 2, сервер 202 кэширования может передавать запрос 212 сервера, в котором указан дополнительный контент, указанный в первом запросе 210 требуемого контента. Запрос 212 сервера принимается сервером 102 источника. Сервер 202 кэширования может по выбору передавать запрос требуемого контента, указанного в первом запросе 210 требуемого контента, в сервер 102 источника, если требуемый контент еще не кэширован сервером 202 кэширования. В одном варианте осуществления, запрос 212 сервера может включать в себя как запрос предсказанного дополнительного контента, так и запрос требуемого контента.

На этапе 306 из сервера источника принимается дополнительный контент. Например, в ответ на запрос 212 сервера, сервер 102 источника может передавать ответ 214 сервера, который включает в себя требуемый контент, если запрашивается. Например, сервер 102 источника может осуществлять доступ к требуемому контенту в запоминающем устройстве, ассоциированном с сервером 102 источника. Сервер 202 кэширования принимает ответ 214 сервера из сервера 102 источника. Кроме того, сервер 102 источника может осуществлять доступ к предсказанному дополнительному контенту в запоминающем устройстве, ассоциированном с сервером 102 источника, и может передавать предсказанный дополнительный контент в сервер 202 кэширования в ответе 214 сервера или в отдельном ответе.

На этапе 308 требуемый контент передается в приложение-клиент, находящееся в устройстве пользователя. Например, как представлено на фиг. 2, сервер 202 кэширования может передавать запрошенный требуемый контент в приложение-клиент 204 в первом ответе 216 с требуемым контентом.

На этапе 310 кэшируется дополнительный контент. Например, как представлено на фиг. 2, сервер 202 кэширования может включать в себя запоминающее устройство 222, и предсказанный дополнительный контент, принятый из сервера 102 источника в ответе 214 сервера, может кэшироваться в запоминающем устройстве 222 в виде кэшированного контента 224. Запоминающее устройство 222 может включать в себя один или несколько из любого типа механизма запоминающего устройства для кэширования контента, включая магнитный диск (например, в ди