Управляемое приложением предварительное кэширование в 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 может включать в себя один или несколько из любого типа механизма запоминающего устройства для кэширования контента, включая магнитный диск (например, в дисководе жесткого диска), оптический диск (например, в оптическом дисководе), магнитную ленту (например, в накопителе на магнитной ленте), запоминающее устройство, например, устройство RAM (ОЗУ, оперативное запоминающее устройство), и т.д., и/или любой другой подходящий тип носителя информации. Кроме того, в одном варианте осуществления запоминающее устройство 222 может совместно использоваться множеством серверов кэширования.

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

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

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

На этапе 404 кэшированный дополнительный контент передается в приложение-клиент, находящееся в устройстве пользователя. В одном варианте осуществления, сервер 202 кэширования может анализировать второй запрос 218 требуемого контента для определения того, кэширован ли уже на сервере 202 кэширования (например, в запоминающем устройстве 222) какой-либо запрашиваемый в нем контент. Например, в одном варианте осуществления, сервер 202 кэширования может осуществлять доступ к карте кэшированного контента или другой структуры данных, которая соотносит идентификаторы контента (например, идентификационные номера, например, значения хеш-функции и т.д.) с контентом, кэшированным в запоминающем устройстве 222. Сервер 202 кэширования может сравнивать идентификатор контента, принятый во втором запросе 218 требуемого контента для требуемого контента, с идентификаторами контента в карте кэшированного контента для определения того, кэширован ли уже требуемый контент. Если идентификатор контента для требуемого контента найден в карте кэшированного контента, то требуемый контент уже кэширован на сервере 202 кэширования. В таком случае сервер 202 кэширования может осуществлять доступ к упомянутому кэшированному контенту в запоминающем устройстве 222 (например, в виде кэшированного контента 224) и может направлять этот кэшированный контент в приложение-клиент 204 при передаче ответа 220 с кэшированным контентом.

Если требуемый контент, указанный во втором запросе 218 требуемого контента, еще не кэширован на сервере 202 кэширования, то сервер 202 кэширования может запросить требуемый контент с сервера 102 источника, как описано выше со ссылкой на этапы 304 и 306 блок-схемы 300 (фиг. 3). Кроме того, во втором запросе 218 требуемого контента может по выбору указываться следующий дополнительный контент, в отношении которого устройство 208 предсказания дополнительного контента предсказало, что он впоследствии может быть затребован так же, как и первый запрос 210 требуемого контента. В таком случае сервер 202 кэширования может запрашивать указанный следующий дополнительный контент из сервера 102 источника, и может кэшировать указанный следующий дополнительный контент в запоминающем устройстве 222 для последующих запросов контента, способом, аналогичным описанному выше согласно этапам 304, 306 и 310 блок-схемы 300.

Иллюстративные варианты осуществления для приложений-клиентов и серверов кэширования описаны в следующих подразделах.

A. Иллюстративные варианты осуществления приложений-клиентов

Как описано выше, в одном варианте осуществления, приложение-клиент (например, приложение-клиент 204) может предсказывать контент, доступ к которому должен быть осуществлен в будущем, и этот предсказанный контент может кэшироваться на серверах кэширования для получения более быстрого ответа. Например, на фиг. 5 представлена блок-схема 500, обеспечивающая процесс запроса и приема требуемого контента и указания контента, который может быть запрошен в будущем, для кэширования для приложения-клиента, согласно иллюстративному варианту осуществления. В одном варианте осуществления, блок-схема 500 может выполняться приложением-клиентом 204 по фиг. 2. Блок-схема 500 описана со ссылкой на фиг. 6. На фиг. 6 представлена структурная схема устройства 600 пользователя, которое включает в себя иллюстративный вариант осуществления приложения-клиента 204. Как представлено на фиг. 6, приложение-клиент 204 включает в себя интерфейс 602 связи и средство 208 предсказания дополнительного контента, и интерфейс 602 связи включает в себя средство 604 форматирования запроса. Кроме того структурные и функциональные варианты осуществления будут очевидны специалистам в данной области(ях) техники на основе нижеследующего обсуждения, касающегося блок-схемы 500 и приложения-клиента 204 по фиг. 6.

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

В одном варианте осуществления средство 208 предсказания дополнительного контента приложения-клиента 204 предсказывает дополнительный контент, относящийся к требуемому контенту, который может впоследствии быть запрошен приложением-клиентом 204. Например, как представлено на фиг. 6, средство 208 предсказания дополнительного контента может принимать указание 606 требуемого контента. Указание 606 требуемого контента может генерироваться внутри приложения-клиента 204 и/или может быть введено пользователем в интерфейс пользователя, обеспечиваемый приложением-клиентом 204. Указание 606 требуемого контента указывает контент, который требуется вывести на экран, воспроизвести или с которым требуется взаимодействовать иным образом. Например, указание 606 требуемого контента может указывать один или несколько из фрагмента карты, видеокадра, аудиокадра, изображения, web-страницы и т.д. (например, посредством URL, имени файла и т.д.). Средство 208 предсказания дополнительного контента может предсказывать дополнительный контент на основе требуемого контента, указанного посредством указания 606 требуемого контента, и может выводить предсказанный дополнительный контент в виде указания 608 предсказанного дополнительного контента.

Например, когда указание 606 требуемого контента указывает фрагмент карты просматриваемой карты как требуемый контент, устройство 208 предсказания дополнительного контента может предсказывать один или несколько дополнительных фрагментов карты упомянутой карты, которые впоследствии будут просматриваться пользователем. В таком случае средство 208 предсказания дополнительного контента может генерировать указание 608 предсказанного дополнительного контента для указания одного или нескольких фрагментов карты, которые являются пространственно смежными с указанным фрагментом карты, которые являются фрагментами карты в пределах указанного фрагмента карты (увеличенного), которые являются фрагментами карты, которые включают в себя указанный фрагмент карты (уменьшенный), и/или которые являются другими фрагментами карты упомянутой карты, которые впоследствии, возможно, будут просматриваться пользователем.

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

В другом примере, в котором указание 606 требуемого контента указывает видеокадр видео в качестве требуемого контента, средство 208 предсказания дополнительного контента может предсказывать один или несколько дополнительных видеокадров видео, которые впоследствии будут просматриваться пользователем, например, один или несколько последующих видеокадров видео (включая в себя всю оставшуюся часть видео).

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

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

Как представлено на фиг. 6, интерфейс 602 связи принимает указание 606 требуемого контента и указание 608 предсказанного дополнительного контента. В одном варианте осуществления, средство форматирования 604 запроса генерирует один или несколько запросов для запрашивания требуемого контента, указываемого указанием 606 требуемого контента, и предсказанного дополнительного контента, указываемого указанием 608 предсказанного дополнительного контента. Интерфейс 602 связи сконфигурирован для передачи запроса(ов), сгенерированного средством 604 форматирования запроса, из приложения-клиента 204 в качестве первого запроса 210 требуемого контента. В вариантах осуществления средство 604 форматирования запроса может генерировать запрос(ы), имеющий любой формат, требуемый для конкретного способа связи.

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

GET /images/logo.png HTTP/1.1

HINTS: <URL1>=20; <URL2>=60

В этом примере сообщение-запрос HTTP включает в себя строку запроса, в которой запрашивается web-объект "/images/logo.png" с сервера как требуемый контент. Кроме того, иллюстративное сообщение-запрос HTTP включает в себя заголовок HTTP "HINTS", в котором указываются два URL - URL1 и URL2 - как предсказанный дополнительный контент. В этом примере каждый из "URL1" и "URL2" в заголовке "HINTS" может быть заменен полными URL на соответствующий предсказанный дополнительный контент (например, http://tv.msn.com/tv/article.aspx?news=xyz" и т.д.). Несмотря на то, что в вышеупомянутом иллюстративном заголовке представлены два URL, таким способом, посредством URL или другого идентификатора, в заголовке может быть указано любое количество элементов предсказанного дополнительного контента.

Соответственно, в одном варианте осуществления, средство 604 форматирования запроса может генерировать сообщение-запрос HTTP, в котором указывается требуемый контент (например, с использованием команды "GET") и в котором указывается предсказанный дополнительный контент в заголовке (например, "HINTS" или другой предопределенный тип заголовка для предсказанного дополнительного контента). В других вариантах осуществления, посредством средства 604 форматирования запроса в запросе требуемый контент и предсказанный дополнительный контент могут быть указаны другими способами. Отметим, что в сообщении-запросе HTTP может присутствовать один заголовок "HINTS", как представлено в вышеупомянутом примере, или может присутствовать множество заголовков "HINTS". Кроме того, в одном варианте осуществления, в сообщении-запросе HTTP может указываться предсказанный дополнительный контент без указания какого-либо требуемого контента (то есть, задается/запрашивается только предсказанный дополнительный контент). В таком сообщении-запросе HTTP, команда "GET" может использоваться для задания предсказанного дополнительного контента, а "HINTS" или другой заголовок может не использоваться, или заголовок может присутствовать (например, заголовок "CACHEONLY") для указания серверу кэширования на то, что запрошенный контент должен кэшироваться, но пока не возвращаться клиенту.

Интерфейс 602 связи может передавать первый запрос 210 требуемого контента в сервер кэширования. В вариантах осуществления, интерфейс 602 связи может быть сконфигурирован для передачи первого запроса 210 требуемого контента в сообщении HTTP, и/или может быть сконфигурирован для передачи запросов другими способами, которые могут быть известны специалистам в данной области(ях) техники.

Согласно фиг. 5 на этапе 504 требуемый контент принимается из сервера кэширования, который извлек требуемый контент из сервера источника в ответ на первый запрос требуемого контента. Например, как представлено на фиг. 6, интерфейс 602 связи может принять первый ответ 216 с требуемым контентом из сервера кэширования в ответ на первый запрос 210 требуемого контента. Первый ответ 216 с требуемым контентом включает в себя требуемый контент, запрошенный в запросе 210. Приложение-клиент 204 может выводить на экран, воспроизводить и/или иным образом обеспечивать возможность пользователю в устройстве 600 пользователя взаимодействовать с принятым требуемым контентом.

На этапе 506 генерируется второй запрос дополнительного контента. Например, как представлено на фиг. 6, приложение-клиент 204 может генерировать второй запрос 218 требуемого контента. Как описано выше, второй запрос 218 требуемого контента является запросом контента для приложения-клиента 204 (например, фрагменты карты, изображения, видео, аудио, web-страницы и т.д.), в отношении которого ранее предсказано, что он может быть впоследствии запрошен приложением-клиентом 204, и который в связи с этим был указан в первом запросе 210 требуемого контента. Второй запрос 218 требуемого контента может генерироваться аналогичным способом, как первый запрос 210 требуемого контента. Например, средство 208 предсказания дополнительного контента может принимать второе указание 606 требуемого контента, которое указывает контент, который требуется вывести на экран, воспроизводить или с которым требуется взаимодействовать иным образом. Средство 208 предсказания дополнительного контента может по выбору предсказывать дополнительный контент на основе требуемого контента, указанного посредством второго указания 606 требуемого контента, и может выводить предсказанный дополнительный контент в виде второго указания 608 предсказанного дополнительного контента. Интерфейс 602 связи принимает второе указание 606 требуемого контента и, в необязательном порядке, принимает второе указание 608 предсказанного дополнительного контента. В одном варианте осуществления, средство 604 форматирования запроса генерирует запрос второго требуемого контента и по выбору включает второй предсказанный дополнительный контент в этот сгенерированный запрос. Интерфейс 602 связи сконфигурирован для передачи запроса из приложения-клиента 204 в качестве второго запроса 218 требуемого контента.

На этапе 508 дополнительный контент принимается из сервера кэширования, который извлек этот дополнительный контент из сервера источника и кэшировал этот дополнительный контент в ответ на первый запрос требуемого контента. Например, как представлено на фиг. 6, интерфейс 602 связи может принимать ответ 220 с кэшированным контентом, который включает в себя кэшированный контент, с сервера кэширования как требуемый контент, указанный во втором запросе 218 требуемого контента. Сервер кэширования ранее получил требуемый контент из сервера источника и кэшировал этот требуемый контент на тот случай, когда он впоследствии может быть запрошен.

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

Например, на фиг. 7 представлена структурная схема средства 208 предсказания дополнительного контента, включающего в себя блок 702 назначения приоритета дополнительному контенту, согласно иллюстративному варианту осуществления. Блок 702 назначения приоритета дополнительному контенту сконфигурирован для анализа предсказанного дополнительного контента для определения того, насколько является вероятным его фактический запрос приложением-клиентом впоследствии. Например, в одном варианте осуществления, блок 702 назначения приоритета дополнительному контенту может выполнять операции согласно этапу 802, представленному на фиг. 8. На этапе 802 генерируется указание вероятности, которое указывает вероятность того, что дополнительный контент впоследствии может быть запрошен приложением-клиентом. В одном варианте осуществления, для каждого элемента предсказанного дополнительного контента, блок 702 назначения приоритета дополнительному контенту может генерировать соответствующее указание вероятности, которое указывает вероятность того, что этот дополнительный контент впоследствии может быть запрошен приложением-клиентом 204. Сгенерированное указание вероятности может быть ассоциировано с соответствующим элементом предсказанного дополнительного контента и включено в запрос требуемого контента, передаваемый в сервер кэширования. Сервер кэширования может использовать указание вероятности для назначения приоритета кэширования элементу предсказанного дополнительного контента относительно другого контента. Кроме того, сервер кэширования может передавать указание вероятности в сервер источника при запрашивании предсказанного контента для возможности назначения приоритета сервером источника обеспечения предсказанного контента в сервер кэширования.

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

Например, в иллюстративном сообщении HTTP, представленном выше, для URL1 может быть сгенерировано указание вероятности, имеющее значение 20, и для URL2 может быть сгенерировано указание вероятности, имеющее значение 60. В таком примере, указания вероятности могут иметь значения в диапазоне 1-100, причем меньшие значения вероятности означают то, что соответствующий элемент предсказанного дополнительного контента имеет меньшую вероятность его фактического запроса в будущем приложением-клиентом, а большие значения вероятности означают то, что соответствующий элемент предсказанного дополнительного контента имеет большую вероятность его фактического запроса в будущем приложением-клиентом. В связи с этим, в этом примере, URL2 имеет большую вероятность запроса приложением-клиентом в будущем по сравнению с URL1, и, следовательно, может быть кэширован до URL1.

B. Иллюстративные варианты осуществления сервера кэширования

На фиг. 9 представлена структурная схема сервера 902 кэширования, согласно иллюстративному варианту осуществления. Сервер 902 кэширования является примером сервера 202 кэширования, изображенного на фиг. 2. Как представлено на фиг. 9, сервер 902 кэширования включает в себя модуль 904 извлечения контента, синтаксический анализатор 906 запроса контента, модуль 908 поставщика контента и запоминающее устройство 222. Сервер 902 кэширования может предварительно кэшировать предсказанный будущий контент различными способами. Например, сервер 902 кэширования может выполнять блок-схемы 300 и 400, в вариантах осуществления.

Например, синтаксический анализатор 906 запроса контента может выполнить этап 302 блок-схемы 300, на котором из приложения-клиента, находящегося в устройстве пользователя, принимается запрос требуемого контента, причем в этом запросе указывается дополнительный контент, относящийся к требуемому контенту, который может впоследствии быть запрошен приложением-клиентом. Синтаксический анализатор 906 запроса контента может принимать и проводить синтаксический анализ первого запроса 210 требуемого контента для идентификации какого-либо требуемого контента и какого-либо предсказанного дополнительного контента. Синтаксический анализатор 906 запроса контента передает первый идентифицированный требуемый контент и предсказанный дополнительный контент 912 в модуль 904 извлечения контента.

Модуль 904 извлечения контента может выполнять этап 304 блок-схемы 300, на котором в сервер источника передается запрос указанного дополнительного контента. Как представлено на фиг. 9, модуль 904 извлечения контента может передавать запрос 212 сервера в сервер источника, в котором указывается предсказанный дополнительный контент, и может указывать требуемый контент (если еще не кэширован). Модуль 904 устройства для извлечения контента может включать в запрос 212 сервера как запрос предсказанного дополнительного контента, так и запрос требуемого контента, или может передавать их в отдельных передачах информации.

Модуль 904 извлечения контента может выполнять этап 306 блок-схемы 300, на котором с сервера источника принимаются требуемый контент и дополнительный контент. Модуль 904 извлечения контента может принимать ответ 214 сервера из сервера источника, который включает в себя требуемый контент (если запрошен) и предсказанный дополнительный контент, или может принимать требуемый контент и предсказанный дополнительный контент в отдельных передачах информации.

Модуль 908 поставщика контента может выполнять этап 308 блок-схемы 300, на котором требуемый контент передается в приложение-клиент, находящееся в устройстве пользователя. Как представлено на фиг. 9, модуль 904 извлечения контента может передавать извлеченный требуемый контент 914, который включает в себя требуемый контент, принятый из исходного сервера в ответе 214 сервера. Модуль 908 поставщика контента может принимать извлеченный требуемый контент 914 и может передавать этот требуемый контент в приложение-клиент в первом ответе 216 с требуемым контентом.

Модуль 904 извлечения контента может выполнять этап 310 блок-схемы 300, на котором дополнительный контент кэшируется. Как представлено на фиг. 9, модуль 904 извлечения контента может кэшировать предсказанный дополнительный контент в запоминающем устройстве 222 как кэшированный контент 224.

Синтаксический анализатор 906 запроса контента может выполнять этап 402 блок-схемы 400 (фиг. 4), на котором из приложения-клиента принимается второй запрос, который включает в себя запрос дополнительного контента. Как представлено на фиг. 9, синтаксический анализатор 906 запроса контента может принимать второй запрос 218 требуемого контента из приложения-клиента. Синтаксический анализатор 906 запроса контента может принимать и проводить синтаксический анализ второго запроса 218 требуемого контента для идентификации какого-либо требуемого контента и какого-либо предсказанного дополнительного контента. Синтаксический анализатор 906 запроса контента передает второй идентифицированный требуемый контент и предсказанный дополнительный контент 916 в модуль 904 извлечения контента. В примере по фиг. 9, второй идентифицированный требуемый контент и предсказанный дополнительный контент 916 включают в себя предсказанный дополнительный контент первого идентифицированного требуемого контента и предсказанный дополнительный контент 912 как требуемый контент.

Модуль 904 извлечения контента и модуль 908 поставщика контента могут выполнять этап 404 блок-схемы 400, на котором кэшированный дополнительный контент направляется в приложение-клиент, находящееся в устройстве пользователя. Модуль 904 извлечения контента может анализировать второй идентифицированный требуемый контент и предсказанный дополнительный контент 916 для определения того, кэширован ли уже в запоминающем устройстве 222 какой-либо контент, запрошенный в нем. Например, в одном варианте осуществления, модуль 904 извлечения контента может осуществлять доступ к карте кэшированного контента или другой структуре данных, описанной выше, которая соотносит идентификаторы контента с контентом, кэшированным в запоминающем устройстве 222. Если модуль 904 извлечения контента определяет то, что требуемый контент уже кэширован в запоминающем устройстве 222, то модуль 904 извлечения контента может осуществить доступ к этому кэшированному контенту в запоминающем устройстве 222 (например, как к кэшированному контенту 224) и может обеспечить этот кэшированный контент в модуль 908 поставщика контента как кэшированный контент 918. Модуль 908 поставщика контента может направить этот кэшированный контент в приложение-клиент в ответе 220 с кэшированным контентом.

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

Отметим, что модуль 904 извлечения контента, синтаксический анализатор 906 запроса контента и модуль 908 поставщика контента могут быть сконфигурированы для генерации запросов и приема ответов согласно любым подходящим протоколам связи и форматам, включая сообщения HTTP и т.д., которые могут быть известны специалистам в данной области(ях) техники.

Кроме того, как описано выше, запросам контента для кэширования может по выбору быть назначен приоритет относительно обычных запросов контента в CDN. Например, на фиг. 10 представлена структурная схема модуля 904 извлечения контента по фиг. 9, включающего в себя блок 1002 назначения приоритета запросу, согласно иллюстративному варианту осуществления. Блок 1002 назначения приоритета запросу сконфигурирован для назначения приоритетов запросам контента для кэширования. Например, в одном варианте осуществления, блок 1002 назначения приоритета запросу может выполнять операции согласно этапу 1102, представленному на фиг. 11. На этапе 1102, передаче запроса указанного дополнительного контента в сервер источника назначается приоритет на основе указания вероятности, принятого в запросе. Например, в одном варианте осуществления, для каждого элемента предсказанного дополнительного контента, блок 1002 назначения приоритета запросу может назначать приоритет запросу элемента предсказанного дополнительного контента относительно другого контента на основе соответствующего указания вероятности, принятого из приложения-клиента 204.

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

Например, со ссылкой на иллюстративное сообщение HTTP, представленное выше, блок 1002 назначения приоритета запросу может поддерживать (например, сохранять и обновлять по мере необходимости) список предсказанного дополнительного контента, который включает в себя URL1 и URL2 и их соответствующие указания вероятности. Поскольку значение указания вероятности URL2 равно 60, URL2 назначается приоритет выше, чем URL1, значение указания вероятности которого равно 20. В связи с этим, в этом примере, модуль 904 извлечения контента извлекает контент URL2 из сервера источника до извлечения контента URL1 из сервера источника, согласно приоритету, поддерживаемому блоком 1002 назначения приоритета запросу.

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

III. Иллюстративные варианты осуществления вычислительного устройства

Приложения-клиенты 110a-110d, приложение-клиент 204, средство 208 предсказания дополнительного контента, интерфейс 602 связи, средство 604 форматирования запроса, блок 702 назначения приоритета дополнительному контенту, модуль 904 извлечения контента, синтаксический анализатор 906 запроса контента, модуль 908 поставщика контента, блок 1002 назначения приоритета запросу, блок-схема 300, блок-схема 400, блок-схема 500, этап 802 и этап 1102 могут быть реализованы в аппаратных средствах, программных средствах, программно-аппаратных средствах (Sirmware) или любой их комбинации. Например, приложения-клиенты 110a-110d, приложение-клиент 204, средство 208 предсказания дополнительного контента, интерфейс 602 связи, средство 604 форматирования запроса, блок 702 назначения приоритета дополнительному контенту, модуль 904 извлечения контента, синтаксический анализатор 906 запроса контента, модуль 908 поставщика контента, блок 1002 назначения приоритета запросу, блок-схема 300, блок-схема 400, блок-схема 500, этап 802 и/или этап 1102 могут быть реализованы в виде логики/инструкций/кода компьютерной программы, сконфигурированных для исполнения в одном или нескольких процессорах. В качестве альтернативы, приложения-клиенты 110a-110d, приложение-клиент 204, средство 208 предсказания дополнительного контента, интерфейс 602 связи, средство 604 форматирования запроса, блок 702 назначения приоритета дополнительному контенту, модуль 904 извлечения контента, синтаксический анализатор 906 запроса контента, модуль 908 поставщика контента, блок 1002 назначения приоритета запросу, блок-схема 300, блок-схема 400, блок-схема 500, этап 802 и/или этап 1102 могут быть реализованы в виде аппаратной логики/электросхемы. Например, в одном варианте осуществления, одно или несколько из приложений-клиентов 110a-110d, приложения-клиента 204, средства 208 предсказания дополнительного контента, интерфейса 602 связи, средства 604 форматирования запроса, блока 702 назначения приоритета дополнительному контенту, модуля 904 извлечения контента, синтаксического анализатора 906 запроса контента, модуля 908 поставщика контента, блока 1002 назначения приоритета запросу, блок-схемы 300, блок-схемы 400, блок-схемы 500, этапа 802 и/или этапа 1102 могут быть реализованы вместе в системе на кристалле (SoC). SoC может включать в себя кристалл интегральной схемы, который включает в себя одно или несколько из процессора (например, микроконтроллер, микропроцессор, цифровой сигнальный процессор (DSP) и т.д.), памяти, одного или нескольких интерфейсов связи, и/или дополнительные схемы и/или встроенные программно-аппаратные средства для выполнения своих функций.

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

Как представлено на фиг. 12, компьютер 1200 включает в себя один или несколько процессоров 1202, системную память 1204 и шину 1206, которая соединяет различные элементы системы, включая системную память 1204, с процессором 1202. Шина 1206 представляет один или несколько из любых из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину с использованием любой из множества шинных архитектур. Системная память 1204 включает в себя постоянное запоминающее устройство (ПЗУ, ROM) 1208 и оперативное запоминающее устройство (ОЗУ, RAM) 1210. Базовая система 1212 ввода/вывода (BIOS) хранится в ROM 1208.

Компьютер 1200 также содержит один или несколько из нижеследующих дисководов и накопителей: накопителя 1214 на жестких дисках для считывания с жесткого диска и записи на него, магнитного дисковода 1216 для считывания со съемного магнитного диска 1218 или записи на него и оптического дисковода 1220 для считывания со съемного оптического диска 1222 или записи на него, например, CD-ROM, DVD-ROM, или других оптических носителей. Накопитель 1214 на жестких дисках, магнитный дисковод 1216 и оптический дисковод 1220 связаны с шиной 1206 интерфейсом 1224 накопителя на жестких дисках, интерфейсом 1226 магнитного дисковода и интерфейсом 1228 оптического дисковода, соответственно. Упомянутые накопители и дисководы и связанные с ними машиночитаемые носители информации обеспечивают энергонезависимое хранилище машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера. Несмотря на то, что описаны жесткий диск, съемный магнитный диск и съемный оптический диск, для хранения данных могут использоваться другие типы машиночитаемых носителей информации, например, карты флэш-памяти, DVD-диски, оперативные запоминающие устройства (ОЗУ, RAM), постоянные запоминающие устройства (ПЗУ, ROM) и т.п.

На жестком диске, магнитном диске, оптическом диске, ROM (ПЗУ) или RAM (ОЗУ) может храниться несколько программных модулей. Эти программы включают в себя операционную систему 1230, одну или несколько прикладных программ 1232, другие программные модули 1234 и данные 1236 программ. Прикладные программы 1232 или программные модули 1234 могут включать в себя, например, логику компьютерной программы (например, код компьютерной программы) для реализации приложений-клиентов 110a-110d, приложения-клиента 204, средства 208 предсказания дополнительного контента, интерфейса 602 связи, средства 604 форматирования запроса, блока 702 назначения приоритета дополнительному контенту, модуля 904 извлечения контента, синтаксического анализатора 906 запроса контента, модуля 908 поставщика контента, блока 1002 назначения приоритета запросу, блок-схемы 300, блок-схемы 400, блок-схемы 500, этапа 802 и/или этапа 1102 (в том числе любой этап блок-схем 300, 400 и 500) и/или дополнительных вариантов осуществления, описанных в этом документе.

Пользователь может вводить команды и информацию в компьютер 1200 через устройства ввода, например, клавиатуру 1238 и указательное устройство 1240. Другие устройства ввода (не изображены) могут включать в себя микрофон, джойстик, игровой планшет, параболическую спутниковую антенну, сканер и т.п. Указанные и другие устройства ввода часто соединяют с процессором 1202 через интерфейс 1242 последовательного порта, который соединен с шиной 1206, но они могут быть подсоединены через другие интерфейсы, например, через параллельный порт, игровой порт или универсальную последовательную шину (USB).

Дисплей 1244 также соединен с шиной 1206 через интерфейс, например, видеоадаптер 1246. Наряду с монитором, компьютер 1200 может включать в себя другие периферийные устройства вывода (не изображены), например, динамики и принтеры.

Компьютер 1200 соединен с сетью 1248 (например, Internet) через адаптер или сетевой интерфейс 1250, модем 1252 или другие средства для установления связи через эту сеть. Модем 1252, который может быть внутренним или внешним, может быть соединен с шиной 1206 через интерфейс 1242 последовательного порта, как представлено на фиг. 12, или может быть соединен с шиной 1206 с использованием другого типа интерфейса, включая параллельный интерфейс.

Как используется в этом документе, термины "носитель компьютерной программы", "машиночитаемый носитель" и "машиночитаемый носитель информации" используются для общей ссылки на носители, например, жесткий диск, ассоциированный с накопителем 1214 на жестких дисках, съемный магнитный диск 1218, съемный оптический диск 1222, а также другие носители, например, карты флэш-памяти, DVD-диски, оперативные запоминающие устройства (ОЗУ, RAM), постоянные запоминающие устройства (ПЗУ, ROM) и т.п. Такие машиночитаемые носители информации отличаются от сред связи и не пересекаются с ними (не включают в себя среды связи). Среды связи обычно воплощают машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, например, несущей волне. Термин "модулированный сигнал данных" означает сигнал, одну или несколько характеристик которого установили или изменили так, чтобы закодировать в этом сигнале информацию. В качестве примера, среды связи включают в себя, например, беспроводные среды, такие как, акустические, радиочастотные, инфракрасные и другие беспроводные среды. Варианты осуществления также ориентированы на такие среды связи.

Как отмечено выше, компьютерные программы и модули (включающие в себя прикладные программы 1232 и другие программные модули 1234) могут храниться на жестком диске, магнитном диске, оптическом диске, ROM (ПЗУ) или RAM (ОЗУ). Такие компьютерные программы также могут быть приняты через сетевой интерфейс 1250, интерфейс 1242 последовательного порта или любой другой тип интерфейса. Такие компьютерные программы, при их исполнении или загрузке приложением, обеспечивают возможность реализации компьютером 1200 признаков вариантов осуществления настоящего изобретения, обсуждаемого в этом документе. Соответственно, такие компьютерные программы представляют контроллеры компьютера 1200.

Изобретение также ориентировано на компьютерные программные продукты, содержащие программные средства, хранящиеся на любом используемом компьютером носителе. Такие программные средства, при их исполнении на одном или нескольких устройствах обработки данных, вызывают функционирование устройств(а) обработки данных, описанное в этом документе. В вариантах осуществления настоящего изобретения применяется любой используемый компьютером или машиночитаемый носитель информации, известный в настоящее время, или который будет известен в будущем. Примеры машиночитаемых носителей информации включают в себя, например, такие запоминающие устройства, как RAM (ОЗУ), жесткие диски, гибкие диски, CD-ROM, DVD-ROM, zip-диски, магнитные ленты, магнитные запоминающее устройства, оптические запоминающее устройства, MEM, запоминающие устройства, основанные на нанотехнологиях, и т.п.

IV. Вывод

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

1. Способ функционирования сервера кэширования, содержащий этапы, на которых:

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

назначают приоритет передаче запроса, по меньшей мере, указанного дополнительного контента в сервер источника на основе указания вероятности;

передают запрос, по меньшей мере, указанного дополнительного контента в сервер источника;

принимают дополнительный контент из сервера источника;

передают требуемый контент, но не дополнительный контент, в приложение-клиент в пользовательском устройстве;

кэшируют дополнительный контент;

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

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

2. Способ по п. 1, в котором во втором запросе указывается второй дополнительный контент, относящийся к первому дополнительному контенту, который является предсказанным в качестве того, что будет впоследствии запрошен приложением-клиентом, причем способ дополнительно содержит этапы, на которых:

передают запрос указанного второго дополнительного контента в сервер источника;

принимают второй дополнительный контент с сервера источника; и

кэшируют второй дополнительный контент.

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

4. Способ по п. 1, в котором запрос требуемого контента, принятый из приложения-клиента, является сообщением HTTP (протокола передачи гипертекстовых файлов), в заголовке которого указывается дополнительный контент.

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

6. Способ по п. 1, в котором требуемый контент включает в себя первый видеокадр, а дополнительный контент представляет собой второй видеокадр, следующий за первым видеокадром в видеопотоке.

7. Сервер кэширования, содержащий:

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

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

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

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

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

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

9. Сервер кэширования по п. 7, при этом требуемый контент включает в себя первый элемент контента, на который ссылается web-страница, а дополнительный контент включает в себя второй элемент контента, на который ссылается эта web-страница.

10. Сервер кэширования по п. 7, при этом требуемый контент включает в себя первый видеокадр, а дополнительный контент представляет собой второй видеокадр, следующий за первым видеокадром в видеопотоке.

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

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

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

14. Считываемый компьютером информации, на котором воплощены инструкции компьютерной программы для приложения-клиента, причем инструкции компьютерной программы содержат:

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

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

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

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

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

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

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

18. Считываемый компьютером информации по п. 14, при этом приложением-клиентом является web-браузер.

19. Считываемый компьютером информации по п. 14, при этом приложением-клиентом является медиаплеером web-приложения.

20. Считываемый компьютером информации по п. 14, при этом требуемый контент включает в себя первый элемент контента, на который ссылается web-страница, причем считываемый компьютером информации дополнительно содержит пятые инструкции компьютерной программы для определения дополнительного контента являющимся вторым элементом контента, на который ссылается эта web-страница.



 

Похожие патенты:

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

Изобретение относится к управлению конфигурацией прикладного программного обеспечения (ПО) в компьютере пользователя. Технический результат заключается в снижении количества ошибок пользователя, сокращении трудозатрат пользователя в ходе проведения конфигурации ПО; упрощении процесса конфигурации ПО для пользователя.

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

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

Изобретение относится к компьютерным технологиям, а именно к начальной загрузи компьютерной системы, имеющей множество центральных процессоров. Технический результат – уменьшение времени начальной загрузки компьютерной системы с множеством CRU.

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

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

Изобретение относится к средствам частичного обновления приложений. Технический результат заключатся в уменьшении ошибок при обновлении приложений.

Изобретение относится к области микропрограммного обеспечения. Техническим результатом является сжатие и распаковка микропрограмм.

Изобретение относится к области обновления программного обеспечения. Технический результат – обеспечение совместимости приложений при обновлении операционной системы на вычислительной системе транспортного средства.

Изобретение относится к технологиям сетевой связи. Технический результат заключается в повышении безопасности передачи данных.

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

Изобретение относится к серверам и способам создания страницы результатов поиска (SERP). Технический результат заключается в повышении релевантности результатов поиска.

Изобретение относится к области компьютерных технологий. Технический результат заключается в оптимизации качества ранжирования.

Изобретение относится к области создания списка поисковых предложений. Технический результат – обеспечение возможности создания списка поисковых предложений.

Изобретение относится к области поисковых систем в целом и конкретно к системе и устройству ранжирования поисковых результатов и создания страницы результатов поиска (SERP) для поискового запроса.

Изобретение относится к области поисковых систем в целом и конкретно к системе и способу создания уточненной поисковой выдачи для поискового запроса. Техническим результатом является повышение релевантности результатов поиска.

Изобретение относится к системам и способам обработки поисковых запросов, введенных в сервис поисковой системы. Техническим результатом является уменьшение вычислительных ресурсов за счет того, что разрешается проблема комбинаторного взрыва при обработке длинных поисковых запросов.

Изобретение относится к способу и системе создания модели прогнозирования и определения параметра точности обученной модели прогнозирования в виде дерева принятия решений.

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

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