СПОСОБ, СЕРВЕР, КОМПЬЮТЕРНАЯ ПРОГРАММА И КОМПЬЮТЕРНЫЙ ПРОГРАММНЫЙ ПРОДУКТ ДЛЯ КЭШИРОВАНИЯ
METHOD, SERVER, COMPUTER PROGRAMME AND COMPUTER PROGRAMME PRODUCT FOR CACHING

Область техники, к которой относится изобретение
Изобретение относится в целом к кэшированию и, в частности, к улучшению точности кэширования.
Уровень техники
Кэширующая среда является хорошо известной технологией для улучшения времен доступа и оптимизации использования полосы пропускания в телекоммуникационных или корпоративных сетях. Кэш использует блок памяти, такой как дисковое пространство или другое устройство хранения, для временного хранения копии некоторых данных, которые, вероятно, будут необходимы в будущем.
Когда кэш-клиенты (т.е. объекты, которые нуждаются в данных, таких как компьютеры или мобильные терминалы) пытаются получить доступ к некоторым данным, сначала они проверяют кэш. Если необходимые данные доступны в кэше ("cache hit", кэш-попадание), тогда используется кэшированная копия. Если упомянутые данные не найдены в кэше ("cache miss", кэш-промах), тогда они загружаются из первоначального источника. В случае кэш-промаха копия данных временно сохраняется в кэше для последующего доступа.
Когда новые данные сохраняются в кэше, часто некоторые ранее кэшированные данные должны быть удалены для того, чтобы освободить емкость для хранения. Стратегии, которые определяют, какие из старых данных должны быть удалены, называются алгоритмами кэширования или алгоритмами замещения кэша.
Любые улучшения в кэшировании, которые увеличивают точность, приносят большую пользу. Это обеспечит больше попаданий и меньше промахов, что улучшает производительность и уменьшает перегрузку сети.
Сущность изобретения
Целью изобретения является, таким образом, улучшение кэширования.
В соответствии с первым аспектом изобретения, представлен способ для кэширования, содержащий этапы: определения, в кэширующем сервере телекоммуникационной сети, пользовательского профиля для анализа; получения, в кэширующем сервере, группы пользовательских профилей; получения корреляционных измерений для каждого пользовательского профиля в группе пользовательских профилей по отношению к пользовательскому профилю для анализа; и вычисления приоритета кэширования контента для по меньшей мере одной части контента из истории контента, ассоциированной с группой пользовательских профилей, принимая во внимание корреляционное измерение.
За счет учета корреляции между пользователями будет достигнута улучшенная точность кэширования. Это приведет к меньшему числу кэш-промахов и большему числу кэш-попаданий, что улучшит производительность кэширования с использованием упомянутого способа. Соответственно, кэширование улучшается.
Этап получения корреляционных измерений может содержать получение корреляционных измерений от центрального поставляющего корреляционные измерения сервера в телекоммуникационной сети. Использование центрального поставляющего корреляционные измерения сервера предоставляет возможность устойчивой целостности данных. Необязательно, корреляционные измерения могут распределяться регулярно или по требованию (т.е. проталкиваться или выталкиваться) из центрального поставляющего корреляционные измерения сервера вниз по сети.
Корреляционные измерения могут вычисляться при запросе на этапе получения корреляционных измерений. За счет вычисления корреляционного измерения только при запросе, т.е. по требованию, могут рассматриваться самые последние данные, что приводит к более точному корреляционному измерению. Это может быть сделано централизованно или в узле на более низком уровне сетевой иерархии, то есть узле, который находится ближе к клиентам.
Корреляционные измерения могут вычисляться с использованием статических корреляционных данных и/или динамических корреляционных данных. Это обеспечивает большую гибкость в использовании источников данных для получения корреляционного измерения.
Корреляционные измерения могут вычисляться с использованием корреляционных данных, предоставляемых третьей стороной через внешний интерфейс прикладного программирования. Третьи стороны могут иметь больше данных по взаимосвязям между пользователями в системе, что таким образом дает более точное корреляционное измерение и тем самым лучшее кэширование.
Этап получения группы пользовательских профилей может содержать получение группы всех пользовательских профилей, в настоящее время ассоциированных с кэширующим сервером. Другими словами, связи со всеми пользователями, ассоциированными с кэширующим сервером, обрабатываются так, чтобы не пропускать любую потенциальную связь между подвергнутым анализу пользователем и пользователями под контролем кэширующего сервера.
Этап получения группы пользовательских профилей может содержать получение группы пользовательских профилей, ассоциированных с пользовательским профилем для анализа. Другими словами, сначала определяется, какие пользователи имеют какую-либо взаимосвязь с пользователем для анализа, и только те пользователи проверяются на наличие корреляции. Это позволяет улучшать эффективность.
Способ может начинаться в ответ на то, что к части контента осуществляется доступ посредством пользовательского профиля для анализа. Это позволяет обновлять кэш на основе наиболее актуальных данных, к которым осуществляется доступ.
Способ может начинаться в ответ на то, что пользовательский профиль для анализа становится ассоциирован с кэширующим сервером. Например, это может происходить в сети мобильной связи, когда пользователь пользовательского профиля перемещается в область ответственности кэширующего сервера.
Этап вычисления приоритета кэширования контента из истории контента может быть подмножеством более крупной истории контента для группы пользовательских профилей. Это предоставляет возможность более эффективной обработки, поскольку вся история контента может быть довольно обширной.
Способ может дополнительно содержать этап: определения, выполнить ли предварительную выборку контента, связанного с приоритетом кэширования контента, на основе вычисленного приоритета кэширования контента. Это может создать очень эффективную стратегию кэширования, особенно когда кэширующий сервер размещается близко к клиенту, например, в базовой станции или даже в одном месте с клиентом.
Способ может дополнительно содержать этап: определения, сохранить или отбросить контент, связанный с приоритетом кэширования контента, на основе вычисленного приоритета кэширования. Это позволяет осуществлять управление кэшем с небольшой задержкой из-за эффективного обновления.
На этапе вычисления приоритета кэширования контента может использоваться фактор типа контента, причем фактор типа контента изменяется для различных типов контента. Это позволяет оператору системы конфигурировать относительную силу между различными типами контента. Например, веб-страницы (текст и/или изображения) могут конфигурироваться, чтобы быть более важными, чем видеоконтент.
На этапе вычисления приоритета кэширования контента может использоваться весовой коэффициент для пользовательского профиля для анализа, причем весовой коэффициент для пользовательского профиля для анализа указывает уровни обслуживания. Это предоставляет возможность дифференцирования в кэшировании для различных пользователей, например бронзовая, серебряная или золотая подписки. Лучшее кэширование может таким образом быть сконфигурировано, чтобы начинать действовать с преимуществом.
Вторым аспектом изобретения является кэширующий сервер для кэширования, содержащий: кэш-хранилище; определитель пользовательского профиля, выполненный, чтобы определять пользовательский профиль для анализа; получатель группы, выполненный, чтобы получать группу пользовательских профилей; получатель корреляционных измерений, выполненный, чтобы получать корреляционные измерения для каждого пользовательского профиля в группе пользовательских профилей по отношению к пользовательскому профилю для анализа; и вычислитель приоритета кэширования контента, выполненный для вычисления приоритета кэширования контента для по меньшей мере одной части контента из истории контента группы пользовательских профилей, принимая во внимание корреляционное измерение.
За счет учета корреляции между пользователями будет достигнута улучшенная точность кэширования. Это приведет к меньшему количеству кэш-промахов и большему количеству кэш-попаданий, что улучшает производительность кэширующего сервера. Соответственно, кэширование улучшается.
Получатель корреляционных измерений может быть выполнен, чтобы получать корреляционные измерения от центрального поставляющего корреляционные измерения сервера в телекоммуникационной сети. Использование центрального поставляющего корреляционные измерения сервера позволяет обеспечивать устойчивую целостность данных. Необязательно, корреляционные измерения могут распределяться регулярно или по требованию (т.е. проталкиваться или выталкиваться) из центрального поставляющего корреляционные измерения сервера вниз по сети.
Телекоммуникационная сеть может содержать сеть мобильной связи, и кэширующий сервер может быть связан с базовой станцией сети мобильной связи. Базовая станция является точкой в сети, которая является расположенной близко к клиентам и отвечает за связь с клиентами, например часть сети радиодоступа в сети мобильной связи.
Телекоммуникационная сеть может содержать беспроводную локальную сеть, и кэширующий сервер может быть связан с беспроводным устройством точки доступа беспроводной локальной сети.
Кэширующий сервер может содержаться в мобильном терминале. При совместном размещении кэширующего сервера с клиентом, в этом случае с мобильным терминалом, большая эффективность может быть достигнута, например, с использованием предварительной выборки.
Вычислитель приоритета кэширования контента может вычислять корреляционные измерения при запросе посредством получателя корреляционного измерения. За счет вычисления корреляционного измерения только при запросе, т.е. по требованию, могут рассматриваться самые последние данные, что приводит к более точному корреляционному измерению. Это может быть сделано централизованно или в узле на более низком уровне сетевой иерархии, то есть узле, который находится ближе к клиентам.
Вычислитель приоритета кэширования контента может вычислять корреляционные измерения с использованием статических корреляционных данных и/или динамических корреляционных данных. Это обеспечивает большую гибкость в использовании источников данных для получения корреляционного измерения.
Вычислитель приоритета кэширования контента может вычислять корреляционные измерения с использованием корреляционных данных, предоставляемых третьей стороной через внешний интерфейс прикладного программирования. Третьи стороны могут иметь больше данных по взаимосвязям между пользователями в системе, что таким образом дает более точное корреляционное измерение и тем самым лучшее кэширование.
Получатель группы может быть выполнен, чтобы получать группы всех пользовательских профилей, в настоящее время ассоциированных с кэширующим сервером. Другими словами, связи со всеми пользователями, ассоциированными с кэширующим сервером, обрабатываются так, чтобы не пропускать какую-либо потенциальную связь между подвергнутым анализу пользователем и пользователями под контролем кэширующего сервера.
Получатель группы может быть выполнен, чтобы получать группу пользовательских профилей, ассоциированных с пользовательским профилем для анализа. Другими словами, сначала определяется, какие пользователи имеют какую-либо взаимосвязь с пользователем для анализа, и только те пользователи проверяются для корреляции. Это позволяет улучшать эффективность.
Вычислитель приоритета кэширования контента может быть выполнен для вычисления приоритета кэширования контента в ответ на то, что к части контента осуществляется доступ посредством пользовательского профиля для анализа. Это позволяет обновлять кэш на основе наиболее актуальных данных, к которым осуществляется доступ.
Вычислитель приоритета кэширования контента может быть выполнен для вычисления приоритета кэширования контента в ответ на то, что пользовательский профиль для анализа становится ассоциированным с кэширующим сервером. Например, это может происходить в сети мобильной связи, когда пользователь пользовательского профиля перемещается в область ответственности кэширующего сервера.
Вычислитель приоритета кэширования контента может быть выполнен для вычисления приоритета кэширования контента на основании истории контента, являющейся подмножеством более крупной истории контента для группы пользовательских профилей. Это обеспечивает более эффективную обработку, поскольку вся история контента может быть довольно обширной.
Кэширующий сервер может дополнительно содержать определитель предварительной выборки, выполненный, чтобы определять, выполнить ли предварительную выборку контента, связанного с приоритетом кэширования контента, на основе вычисленного приоритета кэширования контента. Это может создать очень эффективную стратегию кэширования, особенно когда кэширующий сервер размещается близко к клиенту, например, в базовой станции или даже в одном месте с клиентом.
Кэширующий сервер может дополнительно содержать определитель сохранения контента, выполненный, чтобы определять, сохранить или отбросить контент, связанный с приоритетом кэширования контента, на основе вычисленного приоритета кэширования. Это позволяет осуществлять управление кэшем с небольшой задержкой из-за эффективного обновления.
Вычислитель приоритета кэширования контента может быть выполнен для вычисления приоритета кэширования контента на основе фактора типа контента, причем фактор типа контента изменяется для различных типов контента. Это позволяет оператору системы конфигурировать относительную силу между различными типами контента. Например, веб-страницы (текст и/или изображения) могут конфигурироваться, чтобы быть более важными, чем видеоконтент.
Вычислитель приоритета кэширования контента может быть выполнен для вычисления приоритета кэширования контента на основе весового коэффициента для пользовательского профиля для анализа, причем весовой коэффициент для пользовательского профиля для анализа указывает уровни обслуживания. Это обеспечивает дифференцирование в кэшировании для различных пользователей, например бронзовая, серебряная или золотая подписки. Лучшее кэширование может быть таким образом сконфигурировано, чтобы начинать действовать с преимуществом.
Третьим аспектом изобретения является кэширующая система для кэширования, содержащая множество кэширующих серверов в соответствии со вторым аспектом.
Множество кэширующих серверов могут размещаться по отношению к друг к другу в иерархии. Это позволяет кэширующим серверам выше в иерархии служить как второй (или более высокой) линией кэширования в случае, когда имеется промах внизу в иерархии. Другими словами, риск того, что придется переходить к первоисточнику контента, снижается.
Четвертым аспектом изобретения является компьютерная программа для кэширующего сервера, содержащая компьютерный программный код, который, при запуске на кэширующем сервере, предписывает кэширующему серверу выполнить этапы: определения пользовательского профиля для анализа; получения группы пользовательских профилей; получения корреляционных измерений для каждого пользовательского профиля в группе пользовательских профилей по отношению к пользовательскому профилю для анализа; и вычисления приоритета кэширования контента для по меньшей мере одной части контента из истории контента группы пользовательских профилей, принимая во внимание корреляционное измерение.
Этап получения корреляционных измерений может содержать получение корреляционных измерений от центрального поставляющего корреляционные измерения сервера в телекоммуникационной сети. Использование центрального поставляющего корреляционные измерения сервера позволяет обеспечивать устойчивую целостность данных. Необязательно, корреляционные измерения могут распределяться регулярно или по требованию (т.е. проталкиваться или выталкиваться) из центрального поставляющего корреляционные измерения сервера вниз по сети.
Корреляционные измерения могут вычисляться при запросе на этапе получения корреляционных измерений. За счет вычисления корреляционного измерения только при запросе, т.е. по требованию, могут рассматриваться самые последние данные, что приводит к более точному корреляционному измерению. Это может быть сделано централизованно или в нижестоящем узле в сети.
Корреляционные измерения могут вычисляться с использованием статических корреляционных данных и/или динамических корреляционных данных. Это обеспечивает большую гибкость в использовании источников данных для получения корреляционного измерения.
Корреляционные измерения могут вычисляться с использованием корреляционных данных, предоставляемых третьей стороной через внешний интерфейс прикладного программирования. Третьи стороны могут иметь больше данных по взаимосвязям между пользователями в системе, что таким образом дает более точное корреляционное измерение и тем самым лучшее кэширование.
Этап получения группы пользовательских профилей может содержать получение группы всех пользовательских профилей, в настоящее время ассоциированных с кэширующим сервером. Другими словами, связи со всеми пользователями, ассоциированными с кэширующим сервером, обрабатываются, чтобы не пропускать каких-либо потенциальных связей между подвергнутым анализу пользователем и пользователями под контролем кэширующего сервера.
Этап получения группы пользовательских профилей может содержать получение группы пользовательских профилей, ассоциированных с пользовательским профилем для анализа. Другими словами, сначала определяется, какие пользователи имеют какую-либо взаимосвязь с пользователем для анализа, и только те пользователи проверяются на наличие корреляции. Это позволяет улучшать эффективность.
Компьютерная программа может запускаться в ответ на то, что к части контента осуществляется доступ посредством пользовательского профиля для анализа. Это позволяет обновлять кэш на основе наиболее актуальных данных, к которым осуществляется доступ.
Компьютерная программа может запускаться в ответ на то, что пользовательский профиль для анализа становится ассоциированным с кэширующим сервером. Например, это может происходить в сети мобильной связи, когда пользователь пользовательского профиля перемещается в область ответственности кэширующего сервера.
Этап вычисления приоритета кэширования контента из истории контента может быть подмножеством более крупной истории контента для группы пользовательских профилей. Это обеспечивает более эффективную обработку, поскольку вся история контента может быть довольно обширной.
Компьютерная программа может дополнительно содержать компьютерный программный код, чтобы выполнить этап: определения, выполнить ли предварительную выборку контента, связанного с приоритетом кэширования контента, на основе вычисленного приоритета кэширования контента. Это может создать очень эффективную стратегию кэширования, особенно когда кэширующий сервер размещается близко к клиенту, например в базовой станции или даже в одном месте с клиентом.
Компьютерная программа может дополнительно содержать компьютерный программный код, чтобы выполнить этап: определения, сохранить или отбросить контент, связанный с приоритетом кэширования контента, на основе вычисленного приоритета кэширования. Это позволяет осуществлять управление кэшем с небольшой задержкой из-за эффективного обновления.
Пятым аспектом изобретения является компьютерный программный продукт, содержащий компьютерную программу в соответствии с четвертым аспектом и компьютерно-читаемое средство, на котором компьютерная программа хранится.
Следует отметить, что любой признак первого, второго, третьего, четвертого и пятого аспектов может, в случае необходимости, быть применен к любым другим аспектам из этих аспектов. Все аспекты могут обеспечивать те же или подобные эффекты и/или преимущества, как первый аспект.
Как правило, все термины, используемые в формуле изобретения, должны быть интерпретированы в соответствии с их обычным значением в технической области, если явно не определено иначе в данном документе. Все ссылки на "элемент, устройство, компонент, средство, этап и т.д." должны быть интерпретированы открыто как ссылающиеся на по меньшей мере один экземпляр элемента, устройства, компонента, средства, этапа и т.д., если явно не определено иначе. Этапы любого способа, раскрываемого здесь, не обязательно должны выполняться именно в раскрываемом порядке, если это явно не указано.
Краткое описание чертежей
Изобретение теперь описывается, в качестве примера, со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1a-c являются блок-схемами окружений, где варианты осуществления настоящего изобретения могут быть применены,
Фиг. 2 является блок-схемой компонентов любого из кэширующих серверов Фиг. 1a-c,
Фиг. 3 является блок-схемой модулей компьютерного программного продукта Фиг. 2,
Фиг. 4 является блок-схемой компонентов поставляющего корреляционные измерения сервера Фиг. 1,
Фиг. 5 является примером таблицы того, как приоритет кэширования может храниться,
Фиг. 6 является блок-схемой, изображающей способ в соответствии с одним вариантом осуществления, и
Фиг. 7 является блок-схемой, иллюстрирующей корреляцию между различными пользователями Фиг. 1.
Подробное описание
Изобретение будет теперь описано более подробно далее со ссылкой на прилагаемые чертежи, на которых конкретные варианты осуществления изобретения изображены. Это изобретение может, однако, осуществляться во многих различных формах и не должно рассматриваться как ограниченное вариантами осуществления, изложенными здесь; предпочтительнее, эти варианты осуществления предоставляются в качестве примера так, чтобы это раскрытие было всестороннее и полное, и полностью передавало объем изобретения специалистам в данной области техники. Подобные цифры относятся к подобным элементам по всему описанию.
Фиг. 1a является блок-схемой окружения, где варианты осуществления настоящего изобретения могут быть применены.
Кэширующая система содержит централизованно расположенный поставляющий корреляционные измерения сервер 10, который является сервером, обеспечивающим корреляционные измерения, которые используются кэширующими серверами 12a-z, 12'. Кэширующие серверы 12a-z, 12' размещаются в различных местах в пределах кэширующей системы 1. Например, в варианте осуществления, изображенном на Фиг. 1a, кэширующие серверы 12a-z подсоединены каждый к соответствующему сетевому узлу 11a-z кэширующей системы 1. Сетевые узлы 11a-z могут, например, быть базовыми приемопередающими станциями, узлом B (в соответствии с UMTS, универсальной системой мобильной связи), улучшенным узлом B (в соответствии с LTE, долговременной эволюцией). Альтернативно, сетевые узлы 11a-z могут быть беспроводными точками доступа, например, в соответствии с любым из стандартов IEEE 802.11.
Каждый сетевой узел 11a-z имеет набор 13a-z из одного или более ассоциированных клиентов. Таким образом, каждый из кэширующих серверов 12a-z является ответственным за кэширование набора 13a-z клиентов. Клиенты 13a-z могут быть любым подходящим клиентом, способным принимать цифровой контент, например мобильный терминал, такой как мобильный телефон, персональный цифровой помощник (PDA), нетбук или ноутбук.
Альтернативно или дополнительно, клиент может быть даже в виде стационарного настольного компьютера. Пользователи клиентов 13a-z имеют ассоциированный пользовательский профиль, который идентифицируется с использованием пользовательского идентификатора. Пользовательский профиль может, например, быть подсоединен к подписке, такой как подписка мобильного телефона. Пользовательский идентификатор может быть номером телефона, адресом электронной почты или любым другим подходящим пользовательским идентификатором, который является уникальным в пределах кэширующей системы. Всякий раз, когда термин «пользователь» упоминается в данном документе, это должно интерпретироваться как «пользователь, идентифицируемый посредством пользовательского идентификатора».
Одна или более третьи стороны 16 могут быть подсоединены к поставляющему корреляционные измерения серверу 10. Это позволяет, например, третьей стороне 16 предоставлять данные поставляющему корреляционные измерения серверу 10 об использовании истории пользователя, или соединениях между различными пользователями под ответственностью кэширующей системы 1.
Например, третьей стороной 16 может быть сервер веб-сайта социальной сети, такого как FaceBook, MySpace или Twitter, или службы мгновенного обмена сообщениями, такой как Windows Live Messenger, ICQ или Google talk. Такие веб-сайты могут обеспечивать не только информацию относительно двух пользователей, которые соединены, но могут также предоставлять измерение экстента, к которому они подсоединены, например, с использованием истории соединения между двумя пользователями. Альтернативно или дополнительно, третьей стороной 16 может быть сервер с доступом к некоторой из истории контента пользователя, такой как Google, или любой поставщик контента. Например, веб-сайт с видеоконтентом может иметь информацию, что 80 процентов пользователей, которые запрашивают контент A, также запрашивают контент B. Это может, например, служить индикатором того, что две части контента являются частями контента, которые были разделены. Другими словами, в ситуации, где контент A запрашивается, было бы полезно выполнить предварительную выборку контента B. Кроме того, онлайновые торговые платформы, такие как Amazon, Ebay и т.д. могут регистрировать предпочтения для различных типов контента для каждого пользователя, наряду с взаимосвязями между пользователями. Возможности глубокого инспектирования пакетов (DPI) позволили бы выводить некоторую из этой информации из незашифрованного трафика в пределах сети.
Необязательно, кэширующие серверы могут размещаться в иерархии. Например, центральный кэширующий сервер 12' может быть снабжен большим объемом памяти и таким образом сохранять больше контента, чем каждый из кэширующих серверов 12a-z, которые размещаются в нижней точке в иерархии. Это позволяет центральному кэширующему серверу 12' служить в качестве второго кэширующего сервера, если отсутствует локальный кэширующий сервер 12a-z. Необязательно, может быть больше кэширующих серверов, обеспечиваемых на одном или более промежуточных уровнях. Необязательно, клиенты 13a-z могут также вмещать кэширующий сервер.
Фиг. 1b является блок-схемой окружения, подобного окружению Фиг. 1a, но где дополнительные поставляющие корреляционные измерения серверы 10a-z совместно размещаются с каждым из сетевых узлов 11a-z и кэширующих серверов 12a-z, соответственно. При этом может обеспечиваться функциональность, которая синхронизирует поставляющие корреляционные измерения серверы 10, 10a-z по всей сети.
Фиг. 1c является блок-схемой окружения, подобного окружению Фиг. 1b, но где поставляющие корреляционные измерения серверы 10' совместно размещаются с клиентами 13a-z и кэширующими серверами 12a-z. Опять, синхронизация может происходить между поставляющими корреляционные измерения серверами 10a-z, 10, 10'.
Фиг. 2 является блок-схемой компонентов кэширующих серверов 12a-z, 12' Фиг. 1a-z. Все кэширующие серверы могут соответствовать описанию, предоставляемому ниже, в соответствии с чем на них вместе осуществляется ссылка посредством ссылочного числа 12, даже если конфигурация может изменяться между кэширующими серверами 12a-z, 12'.
Контроллер 20 обеспечивается с использованием любого подходящего центрального процессора (CPU), микроконтроллера, цифрового сигнального процессора (DSP) и т.д., способного исполнять инструкции программного обеспечения, хранящиеся в компьютерном программном продукте 22, например, в виде памяти. Компьютерный программный продукт 22 может быть любым сочетанием памяти для чтения и записи (RAM) и памяти только для чтения (ROM). Память 22 также содержит постоянное хранилище, которое, например, может быть каким-либо одним или сочетанием из магнитной памяти, оптической памяти или твердотельной памяти. Компьютерный программный продукт 22 может совместно размещаться с памятью для хранения кэшированного контента и таблиц, описывающих кэшированный контент, включая приоритет кэширования контента для каждого находящегося на хранении контента. Приоритет кэширования контента является относительным измерением, указывающим на то, как важно хранить часть контента. Например, более высокий приоритет кэширования контента может означать, что имеет место более высокая вероятность того, что к этому контенту будет осуществляться доступ. В одном примере, приоритет кэширования контента является вычисленной вероятностью того, что к этому контенту будет осуществляться доступ. Другими словами, приоритет кэширования контента позволяет обеспечивать сравнение между различными частями контента, чтобы определить, к какому контенту более вероятно будет осуществлен доступ снова.
Интерфейс 24 ввода-вывода обеспечивается, чтобы позволить кэширующему серверу взаимодействовать с другими компонентами, такими как поставляющим корреляционные измерения сервером 10 или клиентами 13a-z. Интерфейс 24 ввода-вывода может, например, быть сетевым интерфейсом, таким как интерфейс Ethernet. В том случае, когда кэширующий сервер совместно размещается с другим устройством, таким как сетевой узел или мобильный терминал, некоторые или все из контроллера 20, компьютерного программного продукта 22 и интерфейса 24 ввода-вывода могут совместно использоваться с другим устройством или устройствами.
Необязательно, пользовательский интерфейс обеспечивается (не показано) для использования оператором. Дополнительно или альтернативно, кэширующий сервер 12 может управляться дистанционно или локально с использованием интерфейса 24 ввода-вывода.
Кэширующий сервер 12 может быть интегрированным в одном блоке, или он может быть разделен на несколько отдельных блоков, например, по причинам модернизации, простоты осуществления или избыточности. В том случае, когда имеется несколько блоков, которые составляют кэширующий сервер 12, некоторые компоненты могут присутствовать в более чем одном блоке, таком как контроллер 20 и/или хранилище 22.
Кроме того, кэширующий сервер 12 может совместно размещаться с клиентом 13a-z, используя аппаратное обеспечение клиента, но используя модули программного обеспечения, как необходимые для осуществления кэширования.
Фиг. 3 является блок-схемой модулей компьютерного программного продукта 22 Фиг. 2.
Определитель 26 пользователя выполнен для определения пользовательского профиля для анализа. Пользовательский профиль связывается с клиентом под контролем кэширующего сервера. Например, пользовательский профиль может быть соединен с подпиской мобильного терминала, где мобильный терминал является клиентом, и подписка может храниться на универсальной карте на интегральной микросхеме (UICC), помещаемой в мобильный терминал.
Получатель 27 группы выполнен для получения группы пользовательских профилей, таких как пользовательские идентификаторы под ответственностью кэширующего сервера или пользовательские идентификаторы пользователей с подсоединениями к конкретному пользователю.
Получатель 28 корреляционных измерений выполнен для получения корреляционных измерений для каждого пользовательского профиля в группе по отношению к пользовательскому профилю для анализа.
Вычислитель 29 приоритета кэширования контента выполнен для вычисления приоритета кэширования контента для по меньшей мере одной части контента из истории контента группы пользовательских профилей, принимая во внимание корреляционное измерение.
Фиг. 4 является блок-схемой компонентов поставляющего корреляционные измерения сервера 10 Фиг. 1. Контроллер 17 обеспечивается с использованием любого подходящего центрального процессора (CPU), микроконтроллера, цифрового сигнального процессора (DSP) и т.д., способного исполнять инструкции программного обеспечения, хранящиеся в компьютерном программном продукте 16, например в виде памяти. Компьютерный программный продукт 16 может быть любым сочетанием памяти для чтения и записи (RAM) и памяти только для чтения (ROM). Компьютерный программный продукт 16 также содержит постоянное хранилище, которое, например, может быть каким-либо одним или сочетанием из магнитной памяти, оптической памяти или твердотельной памяти.
Интерфейс 15 ввода-вывода обеспечивается, чтобы позволить поставляющему корреляционные измерения серверу 10 взаимодействовать с другими компонентами, такими, как кэширующие серверы 12a-z, 12'. Интерфейс 24 ввода-вывода может, например, быть сетевым интерфейсом, таким как интерфейс Ethernet. В том случае, когда поставляющий корреляционные измерения сервер 10 совместно размещается с другим устройством, таким как кэширующий сервер, сетевой узел или мобильный терминал, некоторые или все из контроллера 17, компьютерного программного продукта 16 и интерфейса 15 ввода-вывода могут совместно использоваться с другим устройством или устройствами.
Необязательно, пользовательский интерфейс обеспечивается (не показано) для использования оператором. Альтернативно, поставляющий корреляционные измерения сервер 10 может управляться дистанционно или локально с использованием интерфейса ввода-вывода 15.
Поставляющий корреляционные измерения сервер 10 может быть интегрирован в одном блоке, или он может быть разделен на несколько отдельных блоков, например по причинам модернизации, простоты осуществления или избыточности. В том случае, когда имеется несколько блоков, которые составляют поставляющий корреляционные измерения сервер 10, некоторые компоненты могут присутствовать в более чем одном блоке, таком как контроллер 17 и/или компьютерный программный продукт 16.
Поставляющий корреляционные измерения сервер 10 создает и сохраняет информацию, ссылаясь на социальные взаимосвязи между пользователями. Такая информация может, например, быть получена непосредственно поставщиком телекоммуникационных услуг из частоты передачи между пользователями (например с использованием телефонных вызовов, обмена сообщениями или других средств общения), или сходство контента, к которому ранее осуществлялся доступ, и т.д. Как упомянуто выше, вклады социальных взаимосвязей могут быть представлены другими третьими сторонами 16. Кроме того, взаимосвязь между двумя пользователями может быть получена из нахождения в одном и том же месте или схожей истории местоположений.
Поставляющий корреляционные измерения сервер 10 имеет интерфейс, осуществляемый через интерфейс 15 ввода-вывода, который может позволить обеспечить сетевые функции, например сервер службы обмена короткими сообщениями (SMS), функцию управления мобильностью, функцию служб уведомления местоположения, кэш и так далее для обновления поставляющего корреляционные измерения сервера 10 по взаимосвязям между пользователями.
В дополнение, поставляющий корреляционные измерения сервер 10 сохраняет историю того, к каким данным ранее осуществлялся доступ посредством пользователя. На основе этой информации, поставляющий корреляционные измерения сервер 10 может прогнозировать вероятность того, что часть данных будет запрашиваться посредством пользователя более сложным способом, чем способ в известном уровне техники, и поддерживает алгоритмы кэширования и предварительной выборки в сетевых узлах и/или в мобильных терминалах.
Фиг. 5 является примером таблицы 34 того, как приоритет кэширования может храниться. В этом примере есть три колонки: одна колонка для идентификатора 30 контента, одна колонка для размера 31 контента и одна колонка для приоритета 30 кэширования контента. Идентификатор 30 контента является по меньшей мере частью ключа для таблицы 34. Запись в таблице 34 соответствует конкретной части контента, такого как текст, изображение, видео, звуковой файл и т.д. Каждая запись, таким образом, имеет размер (например, в байтах, килобайтах или мегабайтах) и приоритет кэширования контента. Приоритет кэширования контента может быть любым скалярным числом, таким как число с плавающей точкой в диапазоне от 0.0 до 1.0 или целым числом между 0 и 255. В этом примере, большее число указывает на более высокий приоритет, но таблица является в равной степени пригодной для использования, если меньшее число указывает на более высокий приоритет. Кроме того, размер в этом примере измеряется в килобайтах.
Такая таблица 34 может храниться в памяти, расположенной вместе с компьютерным программным продуктом 22 (Фиг. 2) каждого из кэширующих серверов 12a-z, 12'. Таблица 34 позволяет кэширующему серверу знать, какую запись отбрасывать, когда необходимо. Например, когда осуществляется доступ к новой части контента, и кэширующему серверу необходимо отбрасывать контент в кэше, чтобы освободить место для нового контента, кэширующий сервер может отбрасывать элемент с наименьшим приоритетом, который в этом примере является записью для идентификатора z контента. Это является достаточным, если размер нового контента меньше или равен 10 килобайтам. Если необходимо отбросить больше контента, то кэширующий сервер 12a-z, 12' может просто продвигаться вверх по порядку приоритета кэширования контента и отбрасывать контент, пока достаточное количество пространства не станет доступным.
Фиг. 6 является блок-схемой, изображающей способ в соответствии с одним вариантом осуществления, исполняемый в кэширующем сервере Фиг. 1a-c. Способ может запускаться в ответ на то, что к части контента осуществляется доступ посредством пользовательского профиля для анализа. Альтернативно, способ может запускаться в ответ на то, что пользовательский профиль для анализа становится ассоциированным с кэширующим сервером, т.е. то, что клиент становится частью клиентов под ответственностью кэширующего сервера.
На начальном этапе 40 определения пользователя определяется пользовательский профиль для анализа. Это может, например, быть пользовательский профиль нового клиента кэширующего сервера.
На этапе 41 получения группы пользователей определяется группа пользовательских профилей. Это могут, например, быть пользовательские профили с показателем взаимосвязи сильнее, чем определенный порог, по отношению к пользователю для анализа. В одном варианте осуществления, этот порог равен нулю, в соответствии с чем все пользователи, которые имеют какой-либо тип корреляционного измерения по отношению к пользовательскому профилю для анализа, являются частью группы. Альтернативно, все пользовательские профили, в настоящее время ассоциированные с кэширующим сервером, являются частью группы.
На этапе 42 получения корреляционных измерений получаются корреляционные измерения между пользовательским профилем для анализа и каждым пользовательским профилем в группе пользовательских профилей (см. описание по отношению к Фиг. 7 ниже подробнее).
На этапе 43 вычисления приоритета кэширования контента вычисляется приоритет определенной части контента. Этот этап может произойти заранее, или он может произойти по требованию. Посредством вычисления корреляционного измерения только при запросе, т.е. по требованию, могут рассматриваться самые последние данные, что приводит к более точному корреляционному измерению. Это вычисление может происходить централизованно или в нижестоящем узле в сети.
Действительное вычисление может происходить с использованием любого одного из ряда подходящих алгоритмов. Например, может использоваться любой алгоритм, подобный ранжированию страниц (который используется поисковыми системами, такими как Google), считающий количество обращений или ссылок на определенную часть контента. Необязательно, внешний интерфейс может обеспечиваться на кэширующем сервере и/или поставляющем корреляционные измерения сервере, чтобы позволить операторам определить конкретный алгоритм того, как ранжировать контент.
В качестве первого примера, может использоваться формула, такая как следующая:
где
k
P = приоритет k-го элемента контента в кэше,
j
num_accesses = число обращений к контенту, сделанное пользователем j,
ij
corr_meas = значение корреляционного измерения, характеризующее силу социальных взаимосвязей между пользователем i и пользователем j,
i
user_profile_weight = весовой коэффициент, который позволяет проводить различия между различными уровнями обслуживания, например бронзовой, серебряной, золотой пользовательскими подписками,
time_in_cache = интервал времени, с которого часть контента была добавлена в кэш.
В качестве второго примера, может использоваться формула, такая как следующая
где
k
P = приоритет k-го элемента контента в кэше,
j
access_time = время, когда к контенту был осуществлен доступ пользователем j,
ij
corr_meas = значение корреляционного измерения, характеризующее силу социальных взаимосвязей между пользователем i и пользователем j,
i
user_profile_weight = весовой коэффициент, который позволяет проводить различия между различными уровнями обслуживания, например бронзовой, серебряной, золотой пользовательскими подписками,
content_type_factor = весовой коэффициент, который позволяет оператору дифференцировать политику для кэширования различных типов контента, например приоритезировать музыку над изображениями и веб-страницами.
На необязательном условном этапе 44 предварительной выборки определяется, следует ли способу выполнять предварительную выборку. Это может быть определено с использованием вычисленного приоритета кэширования контента с предыдущего этапа. Если предварительная выборка будет выполняться, то способ продолжает этап 45 предварительной выборки. Иначе, способ продолжает этап 46 обновления приоритета кэширования контента или, если имеется, необязательный этап 47 сохранения/отбрасывания.
На этапе 45 предварительной выборки, контент по вопросу подвергается предварительной выборке в кэширующий сервер.
На необязательном условном этапе 47 сохранения/отбрасывания определяется, сохранить или отбросить часть контента. Этот этап является необязательным, поскольку это решение может происходить на другом этапе в кэширующем сервере. Если определяется, что часть контента следует сохранить, то часть контента сохраняется, и способ продолжает этап 46 обновления приоритета кэширования контента. Иначе, если часть контента определяется для отбрасывания, то способ продолжает этап 48 отбрасывания.
На этапе отбрасывания часть контента отбрасывается.
На этапе 46 обновления приоритета кэширования контента таблица для приоритета кэширования контента (см. Фиг. 5) обновляется с вычисленным приоритетом кэширования контента.
Фиг. 7 является блок-схемой, иллюстрирующей корреляцию между различными пользователями клиентов Фиг. 1.
ij
ij
ij
Поставляющий корреляционные измерения сервер 10 может представлять социальные взаимосвязи, отражаемые осуществлением доступа к контенту в режиме онлайн, при обмене данными в социальной сети в базе данных, содержащей матрицу 52, где каждое поле матрицы n ссылается на взаимосвязь между пользователями i и j, выбранными из пользователей 50a-z. Значение n равно 0, если отсутствует информация по социальной взаимосвязи между пользователями i и j, в то время как более высокие значения n указывают более сильную взаимосвязь и, таким образом, более высокую вероятность доступа к подобному контенту. Более сильная взаимосвязь может непосредственно определяться более сильными социальными взаимосвязями в реальной жизни, но не ограничиваясь этим.
Необязательно, имеется несколько матриц, причем каждая из них обозначает силу пользовательских взаимосвязей для контента различного типа. Это будет, например, указывать, будет ли конкретный пользователь более вероятно указывать из контента в браузере их клиентов на историю, которую прочитал друг, по сравнению с просмотром видеоклипа, который тот же друг смотрел.
В дополнение, поставляющий корреляционные измерения сервер 10 может хранить информацию о нескольких устройствах с подписками, ассоциированными с одним конкретным пользователем (например, мобильный телефон, ноутбук с/без 3G модуля), наряду с типом контента, поддерживаемого конкретным устройством. Это позволит поддерживать предпочтения, связанные с типом контента, к которому обращается конкретный пользователь от устройства конкретного типа, потенциально учитывая дальнейшую оптимизацию процесса кэширования.
Социальная сетевая база данных может вмещать в себя как статическую, так и динамическую информацию. Например, матрица, описываемая выше, относящаяся к статической информации, может быть дополнена кратковременной информацией, описывающей сходства между пользователями, такие как местоположение пользователя или контент, к которому был осуществлен доступ в последнее время.
ij
Одним возможным алгоритмом для управления корреляционным измерением между двумя пользователями (n в описании выше) является увеличение этого числа, когда имеется индикация социальных взаимосвязей между двумя пользователями, и уменьшение упомянутого числа со временем. Увеличение может изменяться в зависимости от природы индикации взаимосвязи.
ij
Другим вариантом выбора является увеличение числа, соответствующего взаимосвязи между пользователями (n), на основе частоты кэш-попаданий, генерируемых алгоритмом на основе контента, к которому осуществляется доступ одним из пользователей.
База данных пользовательской истории является частью поставляющего корреляционные измерения сервера 10. База данных пользовательской истории хранит запись того, к каким данным был осуществлен доступ каждым пользователем, на основе информации, например, принимаемой от внешнего интерфейса.
С точки зрения осуществления, база данных пользовательской истории может совместно размещаться или быть интегрированной с кэширующими серверами 12. Поскольку кэширующие серверы 12 хранят данные, к которым осуществлялся доступ ранее, дополнительным требованием является хранение списка пользователей, которые осуществляли доступ к заданной части данных. Поскольку хранение данных в кэширующих серверах 12 является временным, конфиденциальность пользователя не подвергается угрозе. Для более длительных периодов, база данных пользовательской истории хранит для более длинных интервалов только сводную информацию, связанную с общими характеристиками данных, к которым осуществлял доступ конкретный пользователь.
Как расширение, база данных пользовательской истории может хранить обстоятельства, когда часть данных загружалась. Примерами являются загрузка местоположения пользователя, типа терминала, времени дня, контента, к которому осуществлялся доступ ранее и т.д.
Хотя варианты осуществления здесь раскрываются применительно к телекоммуникационным сетям и сетям передачи данных, настоящее изобретение может осуществляться в любой цифровой коммуникационной сети, где кэширование выгодно.
Изобретение преимущественно описывалось выше со ссылкой на несколько вариантов осуществления. Однако, как легко будет оценено специалистом в данной области техники, другие варианты осуществления, кроме тех, которые раскрыты выше, равным образом возможны в пределах объема изобретения.