СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ И ОРГАНИЗАЦИИ КЭША ВЕБ-БРАУЗЕРА ДЛЯ ОБЕСПЕЧЕНИЯ АВТОНОМНОГО ПРОСМОТРА
SYSTEM AND METHOD FOR CONTROL AND ORGANISATION OF WEB-BROWSER CACHE FOR OFFLINE BROWSING

ОБЛАСТЬ ТЕХНИКИ
[0001] Раскрытие изобретения в целом относится к области поиска в Интернете, в частности к системам и способам логической организации и управления кэшем веб-браузера для обеспечения автономного просмотра.
УРОВЕНЬ ТЕХНИКИ
[0002] World Wide Web (WWW), в основном, состоит из множества компьютерных серверов, на которых хранятся соответствующие базы данных и сетей, с помощью которых клиентские компьютерные устройства могут обмениваться данными с компьютерными серверами, а также выполнять запросы и загружать данные. На клиентском устройстве, как правило, используется программа “веб-браузер” для выполнения запросов данных, например, веб-страниц на удаленных серверах. Всякий раз, когда веб-браузер, связанный с клиентским устройством, запрашивает веб-страницу, либо пользователь, указывающий унифицированный указатель информационного ресурса (URL) или при выборе ссылки на другую веб-страницу, веб-браузер находит сервер, на котором хранится запрошенная веб-страница и загружает веб-страницу в клиентское устройство в виде файла на языке разметки гипертекста (HTML). HTML файл может содержать спецификацию каждого компонента веб-страницы, например, код HTML или Java, текст, графику, встроенное мультимедиа, ссылки на другие веб-страницы и т.д. Веб-страницы, полученные браузером, могут храниться или кэшироваться в памяти клиентского устройства и могут быть отображены пользователю.
[0003] Кэширование веб-страниц на клиентском устройстве имеет ряд преимуществ. Это улучшает общую скорость доступа к веб-странице на клиентском устройстве, потому что браузер может получить доступ к данным, связанным с веб-страницей непосредственно из клиентского устройства (например, кэша браузера), быстрее, чем при повторном запросе данных страницы из сервера. Кроме того, кэширование веб-страниц может позволить пользователю просматривать информацию многократно в течение определенного периода времени без получения каждый раз веб-страницы с сервера. Кроме того, кэширование веб-страниц предоставляет возможность пользователю автономно просматривать кэшированные веб-страницы при отсутствии сетевого подключения к серверу.
[0004] Автономный просмотр локально сохраненных копий веб-страниц, которые ранее были загружены в процессе состояния онлайн, может быть полезным, когда клиентское устройство находится в автономном режиме или когда подключение к Интернету отсутствует или очень слабое. Как правило, веб-страницы загружаются неявно в кэш веб-браузера в результате предварительного просмотра пользователем в режиме онлайн. Как вариант, веб-страницы могут быть загружены явно в кэш браузера веб-браузером, выполненным с возможностью хранить локальные копии некоторых веб-страниц, которые обновляются, когда веб-браузер находится в состоянии онлайн, либо путем обновления локальных копий через определенные промежутки времени, либо путем обновления локальных копий всякий раз, когда веб-браузер переключается в состояние онлайн. Например, беспроводные устройства связи, такие как сотовые телефоны, персональные цифровые помощники и карманные персональные компьютеры, могут предоставлять пользователю такие услуги, как биржевые торги, покупка или продажа товаров и получение информации относительно спорта или рейсов. Однако пользователь, возможно, не сможет пользоваться сетевым подключением из-за того, что находится вне зоны обслуживания сети провайдера связи, находится внутри здания, блокирующего передачу и прием радиоволн, или находится вне диапазона действия релейного устройства, которое передает информацию, полученную от устройства, на сеть провайдера связи. Использование веб-браузера, который может быть выполнен с возможностью загружать веб-страницы для автономного просмотра, таким как обозреватель Internet Explorer, пользователь может создавать закладки для определенных веб-страниц (например, добавляя эти веб-страницы в список “Избранное”) для автономного просмотра, чтобы избежать расходов, задержек и проблем доступа к сети, связанных с просмотром в режиме онлайн или динамическом режиме.
[0005] Когда веб-страницы сохранены в закладках для автономного просмотра, веб-браузер может загрузить в кэш браузера копии как отмеченной веб-страницы, так и, возможно, связанных с ней веб-контентов, включая гиперссылки с указанием различных кодов, текста, графики, мультимедиа и т.д. Однако когда пользователь желает просмотреть веб-страницу, раньше посещенную или хранимую в кэше браузера, неясно, содержит ли сохраненная информация веб-страницы все содержимое веб-страницы и можно ли получить связанные веб-контенты точно и своевременно. Например, в связи с изменением или удалением веб-контента может отображаться сообщение об ошибке, когда выбрана гиперссылка, указывающая на веб-контент. Обеспечение целостности сохраненного содержимого веб-страниц одной или более конкретных веб-страниц для автономного просмотра будет становиться все более проблематичным, поскольку разнообразные связанные веб-контенты, разработанные несогласованными и хаотичными источниками данных, со временем возрастают, развиваются и в дальнейшем сохраняются и изменяются в кэше браузера. Поэтому существует потребность обеспечить эффективную логическую организацию и управление кэшем веб-браузера, чтобы кэш мог эффективно поддерживать для автономного просмотра различные связанные контенты веб-страниц.
[0006]
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0007] В данной заявке раскрываются аспекты систем, способов и компьютерных программных продуктов для логической организации и управления кэшем веб-браузера для обеспечения автономного просмотра.
[0008] Согласно одному аспекту реализации изобретения, типовой реализованный на компьютере способ управления кэшем браузера для обеспечения автономного просмотра включает: хранение в кэше веб-браузера на пользовательском устройстве информации о множестве контентов веб-страницы, посещенной пользователем в течение одного или более сеансов просмотра веб-страницы; определение логических связей среди множества контентов веб-страницы; сопоставление множества контентов веб-страницы с кластером на основе определенных логических связей среди множества контентов веб-страницы; получение запроса на загрузку веб-страницы с веб-браузера на пользовательском устройстве; после обнаружения того, что пользовательское устройство находится в автономном режиме, определение того, хранится ли запрошенная веб-страница в кэше и связана ли запрошенная веб-страница с кластером; и когда запрошенная веб-страница хранится в кэше и связана с кластером, получение из кэша для автономного просмотра на пользовательском устройстве множества контентов запрошенной веб-страницы, связанной с идентифицированным кластером.
[0009] В одном аспекте способ реализации изобретения дополнительно включает сопоставление уникального идентификатора с каждым кластером.
[0010] В одном аспекте реализации изобретения логические связи содержат контекстно-зависимую связь среди множества контентов веб-страницы.
[0011] В одном аспекте реализации изобретения логические связи содержат временную связь среди множества контентов веб-страницы в связи с каждым соответствующим моментом времени, когда каждый из множества контентов вебстраницы загружается на пользовательском устройстве.
[0012] В одном аспекте реализации изобретения логические связи содержат схожесть веб-адресов по меньшей мере части из множества контентов веб-страницы.
[0013] В одном аспекте реализации изобретения логические связи содержат сопоставление по меньшей мере части из множества контентов веб-страницы с по меньшей мере одним веб-поиском.
[0014] В одном аспекте реализации изобретения существуют логические связи между первой и второй частями из множества контентов веб-страницы, когда вторая часть была открыта с помощью ссылки, встроенной в первую часть.
[0015] В одном аспекте способ реализации изобретения дополнительно включает декластеризацию одного или более контентов веб-страницы из кластера.
[0016] В одном аспекте реализации изобретения декластеризация одного или более контентов веб-страницы из кластера включает определение того, декластеризовать ли контент из кластера на основе одного или более следующих параметров: времени последнего просмотра веб-страницы пользователем; времени, затраченного пользователем на просмотр веб-страницы; числа операций, выполняемых пользователем на веб-странице; и того, добавлена ли кластеризованная веб-страница пользователем в закладки.
[0017] В одном аспекте реализации изобретения способ может дополнительно включать следующие этапы: получение от пользователя через веб-браузер одного или более изменений по меньшей мере части отображаемых контентов веб-страницы, когда пользовательское устройство находится в автономном режиме; сопоставление редактированной части отображаемых контентов веб-страницы с кластером, с которым связана указанная веб-страница; хранение редактированной части отображаемых контентов веб-страницы в кэше браузера; и когда пользовательское устройство находится в состоянии онлайн, синхронизация редактированной части отображаемых контентов веб-страницы, сохраненной в кэше браузера удаленным веб-сервером.
[0018] Согласно другому аспекту реализации изобретения, реализованная на компьютере типовая система для управления кэшем веб-браузера на пользовательском устройстве содержит: кэш, выполненный с возможностью хранения на пользовательском устройстве информации о множестве контентов веб-страницы, посещенной пользователем во время одного или более сеансов веб-просмотра; модуль определения логических связей, выполненный с возможностью определения логических связей среди множества контентов веб-страницы; модуль кластеризации, выполненный с возможностью сопоставления множества контентов веб-страницы с кластером на основе определенных логических связей среди множества контентов веб-страницы; модуль интерфейса, выполненный с возможностью получать запрос на загрузку веб-страницы с веб-браузера на пользовательском устройстве; модуль определения автономного режима устройства, выполненный с возможностью обнаруживать, что устройство пользователя находится в автономном режиме, и определять, хранится ли запрошенная веб-страница в кэше и связана ли запрашиваемая веб-страница с кластером; и модуль получения, выполненный с возможностью получать из кэша для автономного просмотра на пользовательском устройстве множество контентов запрашиваемой веб-страницы, связанной с идентифицированным кластером, когда запрашиваемая веб-страница хранится в кэше и связана с кластером.
[0019] Согласно другому аспекту реализации изобретения типовой машиночитаемый носитель информации содержит выполняемые компьютером команды для управления кэшем браузера на пользовательском устройстве для обеспечения автономного просмотра, причем команды включают: хранение в кэше веб-браузера на пользовательском устройстве информации о множестве контентов веб-страницы, посещенной пользователем в течение одного или более сеансов просмотра веб-страницы; определение логических связей среди множества контентов веб-страницы; сопоставление множества контентов веб-страницы с кластером на основе определенных логических связей среди множества контентов веб-страницы; получение запроса на загрузку веб-страницы с веб-браузера на пользовательском устройстве; после обнаружения того, что пользовательское устройство находится в автономном режиме, определение того, хранится ли запрошенная веб-страница в кэше и связана ли запрошенная веб-страница с кластером; и когда запрошенная веб-страница хранится в кэше и связана с кластером, получение из кэша для автономного просмотра на пользовательском устройстве множества контентов запрошенной веб-страницы, связанной с идентифицированным кластером.
[0020] Представленное выше описание упрощенных вариантов осуществления аспекта технологии служит для понимания основных ее аспектов. Это описание не является полным для всех рассматриваемых аспектов, и не предназначено для определения ключевых или важнейших элементов всех аспектов или для ограничения объема любого или всех аспектов технологии. Единственной задачей описания является представление одного или более аспектов в упрощенной форме в качестве вводной части перед более подробным описанием технологии, которое следует далее. Для выполнения вышеизложенной задачи один или более аспектов технологии содержат в себя признаки, описанные и конкретно указанные в формуле изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Прилагаемые чертежи, которые включены в данное описание и составляют его часть, иллюстрируют один или более вариантов осуществления аспектов технологии и вместе с подробным описанием, служат для пояснения принципов и вариантов осуществления технологии.
[0022] Фиг. 1 представляет собой схему, иллюстрирующую типовую конфигурацию системы для логической организации и управления кэшем, связанного с веб-браузером, согласно одному аспекту технологии.
[0023] Фиг. 2 представляет собой схему, иллюстрирующую типовое окно приложения браузера, которое отображает различные контенты браузера в формате вкладок в соответствии с одним аспектом реализации изобретения.
[0024] Фиг. 3а представляет собой схему, иллюстрирующую типовую конфигурацию модуля управления кэшем для логической организации и управления кэшем, связанным с веб-браузером, в соответствии с одним аспектом реализации изобретения.
[0025] Фиг. 3b представляет собой схему, иллюстрирующую типовую конфигурацию модуля управления кэшем для логической организации и управления кэшем, связанным с веб-браузером для обеспечения автономного просмотра, в соответствии с одним аспектом реализации изобретения.
[0026] Фиг. 4 представляет собой схему, иллюстрирующую типовую конфигурацию кэша, соответствующего веб-браузеру, согласно одному аспекту технологии.
[0027] Фиг. 5 представляет собой блок-схему, иллюстрирующую типовой способ логической организации и управления кэшем, связанным с веб-браузером, в соответствии с одним аспектом реализации изобретения.
[0028] Фиг. 6 представляет собой блок-схему, иллюстрирующую типовой способ логической организации и управления кэшем, связанным с веб-браузером, для обеспечения автономного просмотра, в соответствии с одним аспектом реализации изобретения.
[0029] Фиг. 7 представляет собой схему, иллюстрирующую работу типовой компьютерной системы общего назначения для реализации систем и способов логической организации и управления кэшем, связанным с веб-браузером, в соответствии с аспектами реализации изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0030] Типовые аспекты данной технологии в данной заявке описываются в контексте систем, способов и компьютерных программных продуктов для логической организации и управления кэшем веб-браузера. Специалистам в данной области техники будет понятно, что следующее описание является исключительно иллюстративным и не предназначено для установления каких-либо ограничений. Другие аспекты станут очевидными для специалистов в данной области техники, обладающих преимуществами благодаря прочтению данного описания. Теперь более подробно будут описаны варианты осуществления аспектов, проиллюстрированных в прилагаемых чертежах. На всех чертежах и в нижеследующем описании одни и те же элементы, по возможности, будут пронумерованы одинаково.
[0031] Фиг. 1 представляет собой типовую систему 100 для логической организации и управления кэшем, соответствующим веб-браузеру вычислительного устройства. Система 100 может содержать различные электронные пользовательские или клиентские устройства 102, каждое из которых содержит любую систему и/или устройство, и/или любую комбинацию устройств/систем, выполненных с возможностью установления соединения, в том числе проводного, беспроводного или подключения с помощью сети мобильной связи с другими устройствами или системами, например хост-сервер и/или сервер приложений/контент-провайдеров 104а-с. Хост-сервером и сервером приложений/контент-провайдеров 104а-с может быть любой сервер, в том числе и соединенный со сторонними серверами или провайдерами услуг/контента (например, рекламы, рекламного содержания, публикаций, или серверы электронных купонов или услуг). В одном из аспектов технологии каждый из серверов 104а-с может содержать в себе серверный процессор 110, сервер базы данных 112, и другие модули и компоненты (не показаны).
[0032] Согласно одному аспекту технологии клиентские устройства 102 могут включать мобильные, ручные или переносимые устройства, беспроводные устройства, или непереносимые устройства и могут быть любым, но не ограничиваясь этим, настольным сервером, настольным компьютером, вычислительным кластером, или портативными устройствами, в том числе ноутбук, портативный компьютер, КПК, мобильный телефон, сотовый телефон, смартфон, планшетный ПК, портативная клавиатура, портативное игровое устройство или клавиатура. В одном аспекте, при активации пользователем приложения веб-браузера 124 из множества клиентских приложений 122 на одном клиентском вычислительном устройстве 102 может осуществляться связь с помощью сети 110, например Интернет, посредством проводной или беспроводной связи для получения доступа к одному или более ресурсов и информации на различных хост-серверах и/или серверах приложений/контент провайдеров 104а-с. Кроме того, клиентское устройство 102 и один или более хост-серверов и/или серверов приложений/контент провайдеров 104а-с, могут быть связаны непосредственно друг с другом.
[0033] Клиентское устройство 102 может включать или иным образом осуществлять связь, посредством шины управления/данных 126, с процессором 114 на котором выполняется менеджер кэша 116, памятью 118, включая кэш браузера 120, несколькими клиентскими приложениями 122, в том числе приложениями клиента веб-браузера 124, пользовательским интерфейсом 128, интерфейсом связи 130. Процессор 114 может быть реализован как одно или более различных средств обработки, например микропроцессор, контроллер, цифровой сигнальный процессор (DSP), устройства обработки с или без сопутствующего DSP, или различные другие устройства обработки, включая, в том числе интегральные схемы, например, ASIC (специализированные интегральные схемы), FPGA (программируемую пользователем вентильную матрицу), микроконтроллерное устройство (MCU), аппаратный ускоритель, компьютерный чип специального назначения, схему обработки, или тому подобное. Например, процессор 114 может быть выполнен с возможностью выполнения команд, сохраненных в памяти 118, или выполнения жестко заданных функциональных возможностей в ответ на прием данных или управляющих сигналов от других модулей посредством шины 126. Таким образом, независимо от того являются ли способы реализованными аппаратно или программно, или их комбинацией, процессор 114 может быть представлен как компонент (например, физически реализованный в электрической схеме), который выполнен с возможностью реализации алгоритмов и/или операций, описанных в данной заявке в случае выполнения соответствующих команд.
[0034] Интерфейс связи 130 может быть любым средством, например устройством или электронной схемой, реализованной в любом аппаратном средстве, программном обеспечении или комбинации аппаратных средств и программного обеспечения, выполненных с возможностью приема и/или передачи данных из/во внутреннюю шину 126 и/или любое другое устройство или модуль, связанный с клиентским устройством 102. В связи с этим, интерфейс связи 130 может содержать, например, антенну (или несколько антенн) и поддерживаться аппаратными средствами и/или программным обеспечением для предоставления возможности связи с сетью передачи данных 110. В некоторых примерах, интерфейс связи 130 может поддерживать проводную связь с помощью модема для передачи данных и/или другого аппаратного/программного обеспечения для поддержки связи посредством кабеля, цифровой абонентской линии (DSL) универсальной последовательной шины (USB) или другие механизмов.
[0035] В дополнительном аспекте, пользовательский интерфейс 128 может быть связан с процессором 114, для получения указания ввода пользователя на пользовательском интерфейсе 128 и/или для предоставления пользователю звукового, видео, механического или иного вывода данных. Пользовательский интерфейс 128 может содержать, например, клавиатуру, мышь, джойстик, дисплей, сенсорный экран, экранные клавиши, микрофон, динамик, или другие механизмы ввода/вывода. В связи с этим, например, процессор 114 может содержать электронную схему пользовательского интерфейса, выполненную с возможностью управления по меньшей мере некоторых функций одного или более элементов пользовательского интерфейса, таких как, например, громкоговоритель, звонок, микрофон, дисплей, и/или тому подобное. Процессор 114 и/или схемы пользовательского интерфейса, содержащие процессор 114 могут быть выполнены с возможностью управления одной или более функциями одного или более элементов пользовательского интерфейса с помощью компьютерных программных команд (например, программного и/или встроенного программного обеспечения), хранящихся в памяти 118 или подобным образом доступных для процессора 114.
[0036] Память 118 может содержать, например, один или более модулей энергозависимой и/или энергонезависимой памяти и кэша, например, запоминающее устройство различного объема и с различной скоростью. Память 118 может быть выполнена с возможностью хранения информации, данных, приложений, команд или т.п. для обеспечения возможности выполнения на клиентском устройстве 102 различных функций, в соответствии с типовыми аспектами данной технологии. Например, память 118 может быть выполнена с возможностью буферизации входных данных из пользовательского интерфейса 128 посредством шины 126 для обработки процессором 114. Дополнительно или как вариант, память 118 может быть выполнена с возможностью хранения команд для выполнения процессором 114. В соответствии с одним аспектом данной технологии, память 118 может содержать кэш браузера 120, связанный с веб-браузером клиентского устройства 102. Кэш-браузера 120 может быть заданного размера (например, 100 МБ), который, как правило, основан на общем доступном объеме памяти 118, причем требования к приложениям клиентского веб-браузера 124 или другие критерии, известны специалистам в данной области техники. Кэш браузера может динамически выделяться с помощью процессора 114, в случае, если пользовательское устройство 102 включено, или когда клиентское приложение веб-браузера 124 открыто пользователем. В одном аспекте, содержимое кэша браузера 120 может автоматически удаляться из энергонезависимой памяти 118, когда устройство 102 выключено. В другом аспекте, содержимое кэша браузера 120 может храниться в энергонезависимой памяти 118, даже после того, как устройство 102 выключено.
[0037] Например, когда пользователь активирует клиентское приложение веб-браузера 124 клиентского устройства 102 для просмотра или навигации по веб-страницам, пользователь может использовать пользовательский интерфейс 128 для указания основной операционной системы устройства 102 для начала и отображения окна веб-браузера с помощью процессора 114. Приложением веб-браузера 124 может быть, но не ограничивается этим, Yandex, Firefox, Internet Explorer, Google Chrome, Opera или Safari. Процессором 114, в свою очередь, может выполняться менеджер кэша 116 для резервирования части памяти 118 (например, кэш браузера, 120) для веб-браузера с целью хранения данных и кода. Как будет более подробно описано ниже со ссылкой на Фиг. 3а и Фиг. 3b, менеджер кэша 116 может выполнять логическую организацию и управление кэшем браузера 120 на клиентском устройстве 102, в соответствии с раскрытыми здесь принципами.
[0038] Как правило, пользователь может ввести URL-адрес веб-страницы для получения информации из хост-сервера и сервера приложений/контент-провайдеров 104а-с или выбрать из ранее сохраненных веб-страниц сразу после активации клиентского приложения веб-браузера 124. Веб-браузеры обычно содержат механизм предотвращения перегрузки определенной информацией и ресурсами пользователя, загруженными и посещенными ранее, с целью потенциально ускорить отклики на часто запрашиваемые и/или данные с высокими расходами для доступа, чем запрашивать данные непосредственно из оригинальных источников данных, например хост-сервера и/или сервера приложений/контент-провайдеров 104а-С.
[0039] Если, в ответ на прием URL-адреса нужного пользователя веб-страницы, имя веб-страницы не доступно в кэше браузера 120 (при неудачном обращении в кэш), приложение веб-браузера 124 может взаимодействовать с сетью 110 с помощью, например, драйверов устройства, контролирующих интерфейс связи 130 устройства 102, для запроса этой веб-страницы. Один из хост-серверов и серверов приложений/контент-провайдеров 104а-с может находить и обмениваться этой веб-страницей с устройством 102 посредством сети ПО, так что клиентское приложение веб-браузера 124 может выполнять код веб-страницы, чтобы отобразить его содержимое в виде HTML-файла. Информация для восстановления веб-страницы пользовательским устройством 102 может храниться в кэше браузера 120 в случае, когда клиентское приложение веб-браузера 124 соответственно загружает различные веб-страницы из сети 110, считывает содержимое файлов, интерпретирует команды, сохраненные в файлах, и строит веб-страницы на дисплее устройства 102.
[0040] Приложение веб-браузера 124 может открывать более чем одну веб-страницу 220 одновременно в разных окнах браузера 202 или вкладках 210-218. Другими словами, в веб-браузере может иметься несколько открытых за один раз веб-страниц 220. Например, ссылаясь на Фиг. 2, окно приложения браузера 202 может отображать множество веб-страниц 220 в виде вкладок в соответствии с одним аспектом данной технологии. Более конкретно, клиентским приложением веб-браузера 124 на Фиг. 1 может генерироваться одно или более окон браузера 202, каждое из которых содержит различные меню навигации 204 и панель(и) инструментов 206. Кроме того, окно приложения браузера 202 может быть выполнено по-разному (например, с дополнительными или с меньшим числом элементов окон, другой структуры, и т.д.). Как правило, каждая вкладка 210, 212, 214, 216, и 218, и/или каждый открытое окно 202 может содержать в себе соответствующую информацию контента браузера. Как проиллюстрировано на Фиг. 2, Вкладка 1, которая находится “поверх” оставшихся открытых вкладок или на верхнем слое и, следовательно, является видимой, может содержать веб-страницу 220. В одном аспекте веб-страница 220 может содержать текст, графику, мультимедиа и одну или более гиперссылок 222, которые могут быть визуально представлены в виде текста, значка, изображения, анимации, или их комбинации. Ссылки 222 могут быть связаны с целевыми URL-адресами, индикатором открыть в новой вкладке, и другими данными. В другом аспекте, свойства ссылки могут быть не видны пользователю, но присутствует в контенте браузера 220 и доступны для клиентского приложения веб-браузера 124. В одном типовом аспекте, веб-страницы 220 открываются в окне браузера 202 и вкладки 210-218 могут быть сохранены в кэше браузера 120.
[0041] В одном примере, пользователь может открыть веб-страницы 220 в нескольких различных сеансах просмотра. Сеанс просмотра веб-страниц может быть определен как интерактивный обмен данными между клиентским устройством 102 и сервером 104, в зависимости от запроса одного или более ресурсов сервера, например одной или более веб-страниц, и всего контента, связанного с ними, например, кода, текста, графики и т.д. Пользователь может выполнять несколько сеансов просмотра веб-страниц практически одновременно или в разное время дня или недели. Независимо от того, когда были открыты эти веб-страницы: в текущем сеансе просмотра или в прошлых сеансах просмотра (например, завершенными или закрытыми сеансами просмотра), содержание этих веб-страниц сохраняется в кэш-памяти браузера 120.
[0042] В связи с ограниченной емкостью памяти, каждое соответствующее использование памяти 118 и кэш браузера 120 на клиентском устройстве 102 может зависеть от количества открытых вкладок, количества открытых окон, количества активных сеансов просмотра веб-страниц, объема открытых веб-страниц, и совокупных ресурсов в текущем использовании клиентского приложения веб-браузера 124. Как правило, кэш веб-браузера может занимать значительный объем системной памяти (например, 100 Мб от общего объема ОЗУ для iPhone 4), обеспечивая, таким образом, системную производительность клиентского устройства 102. Поэтому, желательно эффективно организовать и управлять кэшем браузера 120, связанным с клиентское приложение веб-браузера 124 таким образом, что кэш веб-браузера 120 может эффективно очищаться от старого содержимого с целью повышения общей производительности системы. В соответствии с предпочтительным аспектом приложение веб-браузера 124 может использовать менеджер кэша 116 для выполнения логической организации и управления кэшем 120 браузера.
[0043] Фиг. 3а иллюстрирует типовую конфигурацию 300 менеджера кэша 116 в соответствии с одним из аспектов реализации изобретения. Как проиллюстрировано, менеджер кэша 116 может содержать модуль определения логической связи 302, который может быть выполнен с возможностью определения логических связей из множества веб-страниц, хранящихся в кэше браузера 120. Менеджер кэша 116 может дополнительно содержать модуль кластеризации 304, который может быть выполнен с возможностью сопоставления множества веб-страниц с одним или более кластерами на основе определенных логических связей между множеством веб-страниц. Менеджер кэша 116 может дополнительно содержать модуль определения объема кэша, выполненный с возможностью определения текущего используемого объема кэша браузера 120. Менеджер кэша 116 может дополнительно содержать модуль идентификации кластера 308, который может быть выполнен с возможностью определения веб-страницы или кластера веб-страниц для удаления из кэша на основе идентифицированной информации, связанной с каждым из одного или более кластеров в случае, когда используемый объем кэша равен или превышает пороговое значение. Менеджер кэша 116 может дополнительно содержать модуль удаления кэша 310, выполненный с возможностью удаления из кэша одной или более веб-страниц на основе идентифицированной информации, связанной с одним или более кластерами в кэше. Менеджер 116 кэша может также содержать другие модули 311, используемые для управления кэшем 120.
[0044] Термин “модуль” в данном контексте означает физическое устройство, аппарат или множество модулей, выполненных с использованием аппаратного обеспечения, например, с помощью, например, интегральной схемы специального назначения (ASIC) или программируемой логической интегральной схемы (FPGA), или же комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора инструкций, реализующих функциональные возможности модуля, которые (при выполнении) трансформируют микропроцессорную систему в устройство специального назначения. Модуль также может быть реализован в виде комбинации двух модулей, определенные функции которых поддерживаются только аппаратным обеспечением, а другие функции поддерживаются комбинацией аппаратного и программного обеспечения. В некоторых конкретных вариантах осуществления технологии по меньшей мере часть модулей (а в некоторых случаях - все) могут быть использованы на процессоре компьютера общего назначения (например, подобном тому, который подробно описан ниже со ссылкой на Фиг. 6). Соответственно, каждый модуль может быть реализован в виде множества различных конфигураций и не ограничивается конкретным вариантом осуществления, приведенным здесь в качестве примера.
[0045] Например, со ссылкой на Фиг. 2, пользователь может открыть одну или более веб-страниц в разных окнах или вкладках веб-браузера 200. Например, различные веб-страницы 220 могут быть открыты во Вкладках 210-218. Более конкретно, в окне приложения браузера 202 может быть, например, 5 открытых вкладок, в котором вкладка 212 может быть открыта соответственно первой ссылке из Вкладки 210, и Вкладка 214 может быть второй ссылкой из Вкладки 210. Таким образом, вкладки 210, 212, 214 могут быть определены с помощью менеджера кэша 116 и могут быть логически связанными друг с другом на основе различных критериев, как описано ниже. Оставшаяся вкладка 216 (например, соответствующая веб-сайту новостей) и Вкладка 218 (например, соответствующая сайту электронной коммерции) среди пяти открытых вкладок может не быть связанной с Вкладками 210-214, или друг с другом. Таким образом, кэшированные данные из Вкладки 216 и Вкладки 218 в кэше браузера 120, не связанные логически с объединенными Вкладками 210, 212, 214, могут быть сгруппированы с меньшим приоритетом, чем Вкладки 210-214 и могут очищаться первыми при определенных условиях, как будет объяснено более подробно ниже.
[0046] В одном примере, когда ресурсы и информация, связанные с каждой запрошенной веб-страницей, полностью или частично загружены на клиентское устройство 102 из хост-сервера и/или сервера приложений/контент-провайдеров 104а (например, все связанные с ним ресурсы и информация получены и загружены кэшем веб-браузера 120), менеджер кэша 116 может выделить часть кэша браузера 120, например, часть кэша для HTTP веб-ресурсов 232, часть кэша для HTML5 приложения 234, часть кэша для декодированных изображений 236, и часть для дерева объектной модели документа (DOM) 238, для временного хранения загруженного содержимого веб-страниц. Объектная модель документа является интерфейсом прикладного программирования (API) для допустимого HTML и XML-документов правильного формата, и определяет логическую структуру документов и путь для получения доступа и обработки документа. Кэш браузера 120 может дополнительно содержать часть кэша страниц 240 для хранения посещенных веб-страниц (веб-страницы, показанных веб-браузером 200). Часть кэша страниц 240 может позволить быструю навигацию вперед-назад путем “приостановки” страницы и быстрого показа ранее посещенных веб-страниц в случае, когда пользователь переходит назад на ту же страницу. Как правило, часть кэша страниц 240 может хранить все ресурсы, связанные с основной HTML страницей и часть кэша для HTTP 232 может хранить каждый ресурс отдельно.
[0047] Для полной загрузки веб-страницы, менеджер кэша 116 может автоматически генерировать идентификатор веб-страницы или подобный идентификатор (например, определенную конкретную подпись данных), который однозначно описывает содержание полученных ресурсов и информацию, которые могут или не могут быть URL ресурсов и информации (например, глобальный уникальный идентификатор (GUID)). В одном примере, диспетчер кэша 116 может выполнять алгоритм (например, операцию хеширования, алгоритм представления сообщения в краткой форме (например, “MD5”), и/или аналогичный алгоритм) для генерации идентификатора веб-страницы. В другом примере, операции, алгоритмы и/или подпрограммы, используемые для генерации идентификатора веб-страницы, могут быть стандартизированы и, как известно для других вычислительных устройств в сети общего пользования (например, сети 110 в Фиг. 1), так, что все эти вычислительные устройства, совместно использующие ту же самую сеть, могут генерировать идентичные идентификаторы в случае, когда обрабатывают одну и ту же веб-страницу.
[0048] Согласно одному аспекту реализации изобретения, менеджер кэша 116 затем может активировать модуль определения логических связей 302, как проиллюстрировано на Фиг. 3а, чтобы определить, связаны ли логически друг с другом веб-страницы, открытые во вкладках 210, 212, 214, 216, 218 во время текущих сеансов просмотра, и одна или более веб-страниц, сохраняемых в кэше браузера 120 с момента предыдущих (например, завершенного в данный момент) сеансов просмотра. Например, логическая связь между двумя или более веб-страницами может быть установлена на основе контекстного сходства содержания и ресурсов, совместно используемых на этом сайте. Например, на двух или более веб-страницах обсуждаются автомобильные новости и новые модели автомобилей являются контекстуально похожими и, следовательно, логически связанными друг с другом. В другом примере, когда две или более страниц были получены с помощью веб-браузера в ответ на один поисковый запрос со стороны пользователя, то эти веб-страницы также логически связаны между собой. В другом примере, логическая связь может содержать связь по времени между множеством веб-страниц, причем каждой веб-странице соответствует определенный период времени в случае, когда извлекается каждая из множества веб-страниц и осуществляется поиск. Например, в случае, если две или более веб-страницы были открыты пользователем в течение короткого периода времени (например, в течение 10 минут), то эти страницы могут быть связанными по времени. В другом примере логические связи могут содержать подобие веб-адресов по меньшей мере части из множества веб-страниц. Например, две или более веб-страниц, загруженных из того же домена (например, cnet.com) являются также связанными. Еще в другом аспекте существуют логические связи между первой страницей и второй страницей в случае, когда вторая страница была открыта с помощью ссылки, встроенной в первую страницу. В других аспектах могут различаться другие типы логических связей между веб-страницами.
[0049] Впоследствии менеджер кэша 116 может использовать модуль кластеризации 304, представленный на Фиг. 3а, чтобы связать одну или более веб-страниц 220 с одним или более кластерами 312 на основе логических связей, установленных между одной или более открытыми веб-страницами 220 и ранее кэшированными веб-страницами, которые могут быть уже связаны с одним или более кластерами 312. В одном аспекте, например, в случае, если не установлено никакой логической связи между веб-страницей и другими веб-страницами в кэше, то эта веб-страница не может быть связана с любым из кластеров 312, и, таким образом, хранится отдельно в кэше браузера 120. Тем не менее, в другом аспекте, отдельная веб-страница 220 и все ресурсы, связанные с ней (например, код, текст, изображения, мультимедиа, ссылки, встроенные рекламные объявления, и т.д.) могут быть связаны с отдельным кластером 312, с которым не связана ни одна другая веб-страница. Это отдельная связь веб-страница-кластер позволяет логически группировать все ресурсы, связанные с определенной веб-страницей в один кластер, связанный только с этой веб-страницей, что позволяет еще быстрее получать ресурсы веб-страницы и предотвращает случайное удаление ресурсов веб-страницы, связанной с этим кластером в процессе очистки кэша браузера 312.
[0050] В одном аспекте, например, модуль кластеризации 304 может быть дополнительно выполнен с возможностью декластеризации кластера (то есть, отделения части контента кластера). Например, если кластер связан с несколькими связанными веб-страницами, одна или более из связанных веб-страниц могут быть декластеризованными из кластера. В другом примере, если кластер связан с одной веб-страницей, часть содержимого веб-страницы (например, ресурсоемкие флэш-анимации, встроенные рекламы, изображения с высоким разрешением и т.д.) могут быть декластеризованными из кластера. Декластеризация кластера может быть использована, например, для облегчения удаления декластеризованного контента из кэша браузера 312. В одном примере аспекте, менеджер кэша 116 может учитывать следующие критерии, оценивающие важность содержимого веб-страницы для пользователя при определении декластеризации определенного содержания из кластера: время последнего запроса конкретного содержания кластера (например, открытие веб-страницы, загрузка изображения, доступ из URL, и т.д.); время, проведенное пользователем при просмотре кластеризованной веб-страницы; количество операций, выполняемых на веб-странице (например, просмотр встроенного мультимедийного контента, открытие URL-адресов, и т.д.); сделана ли пользователем закладка на кластеризованной веб-странице. На основании этих и других критериев, менеджер кэша 116 может определить, какой из кластеров является более важным для пользователя, а какой менее важным. Например, кластер, связанный с веб-страницами, которые были недавно открыты или веб-страницами, на просмотр которых пользователь потратил больше времени (например, более 5 минут) и выполнено большое количество операций (например, 3 или более операций), для менеджера кэша 116 может считаться более важным, чем кластер, связанный со старыми веб-страницами (например, просмотренными пользователем более 2 часов назад), или которые пользователь просматривает быстро (например, менее чем за 1 минуту). Менеджер кэша 116 может затем предоставить модулю кластеризации 304 команды для декластеризации содержимого веб-страницы, связанной с менее важными веб-страницами. Декластеризация определенного контента веб-страницы позволяет упростить удаление этого контента из кэша браузера 120.
[0051] В одном типовом аспекте кластер, связанный с одной или более веб-страницами может содержать флаг неразрывности, гарантирующий, что никакое содержимого, связанное с этим кластером, является недекластеризованным и удаляется отдельно от другого содержимого этого кластера. Например, флаг неразрывности может быть использован для информации, связанной с определенной веб-страницей в случае только если веб-страница полностью загружена, так что прямо с этого момента найденные и сохраненные ресурсы и информация, связанные с уникальным идентификатором того, что конкретная веб-страница стала по меньшей мере частью целого неразрывного кластера, статус или целостность которого может быть проверена с помощью менеджера кэша 116. В другом примере, флаг неразрывности используется в кластере, содержащем несколько связанных веб-страниц, показывает, что все веб-страницы, связанные с этим кластером, должны быть обработаны с помощью менеджера кэша 116 совместно для целей управления и удаления этих страниц. Если извлекаемые и кэшируемые ресурсы и информация связаны с идентификатором веб-страницы и не имеют флага неразрывности, менеджер кэша 116 может управлять или удалять эти ресурсы и информацию в кэше браузера 120 отдельно от другого содержимого данного кластера. Удаление флага неразрывности из элементов кэша, связанных с идентификатором веб-страницы может привести к отделению ресурсов и информации, связанных с существующим кластером в кэше браузера 120.
[0053] При очистке кэша браузера 120 для дополнительного свободного места менеджер кэша 116 может принять в расчет время, которое пользователь провел за просмотром определенной веб-страницы, в том числе количество пользовательских операций, совершенных во вкладке (например, щелчков мышью). Менеджер кэша 116 может также принять в расчет попытки кэширования, предпринятые веб-браузером. То есть, если бы пользователь проверял папку входящих сообщений электронной почты 20 раз, то 20 новых частей были бы пересланы в кэш браузера 120; в то время как в отношении веб-страниц результатов поиска только одна-две части могут пересылаться в кэш браузера 120, когда пользователь может только мельком просмотреть веб-страницы результатов поиска, а затем закрыть эти веб-страницы. В этих условиях менеджер кэша 116 может расценивать кластер “поиск” как менее важный, чем кластер “электронная почта”.
[0054] При очистке кэша браузера 120 менеджер кэша 116 может сначала отделить первый кластер “поиск”, удалив ресурсы с по меньшей мере одной из веб-страниц результатов поиска, в отличие от удаления ресурсов, связанных со вторым кластером “электронная почта”. В частности, менеджер кэша 116 может начать удаление некластеризованных ресурсов из кэша браузера 120. Например, если пользователь открыл новостной веб-сайт, вручную введя URL-адрес, а затем закрыл его после того, как только просмотрел новостные заголовки, то менеджер кэша 116 не может назначить любой кластер в кэше браузера 120 для контентов новостного сайта, и такие контенты могут в свою очередь быть удалены из кэша браузера 120. Кроме того, в продолжение одного или более сеансов автономного просмотра пользователь, возможно, хочет скорее продолжать работать с электронной почтой, чем возобновить предыдущий сеанс быстрого поиска.
[0055] Если посмотреть на Фиг. 3b, менеджер кэша 116 может быть выполнен с возможностью обеспечивать автономный просмотр сохраненных контентов ранее посещаемой веб-страницы в соответствии с другим типовым аспектом реализации изобретения. В частности, для того, чтобы кэш браузера 120 сохранил множество контентов веб-страницы, открытой в любой из вкладок 210, 212, 214, 216, 218, посещаемых пользователем во время одного или более сеансов просмотра, менеджер кэша 116 может активировать модуль определения логических связей 314, чтобы определить, связаны ли логически друг с другом множество контентов веб-страницы, открытых во время текущих сеансов просмотра, с одним или более контентами веб-страницы, уже сохраненными в кэше браузера 120 из предыдущих (например, завершаемых в данный момент) сеансов просмотра. В одном аспекте реализации изобретения логическая связь между двумя или более контентами веб-страницы может быть установлена на основе контекстного сходства ресурсов, совместно используемых этими контентами веб-страницы. Например, две или более гиперссылок относительно контентов, обсуждающих автомобильные новости и новые модели автомобилей, контекстуально похожи и, следовательно, логически связаны друг с другом. В другом аспекте реализации изобретения логическая связь может содержать в себе временную связь среди множества контентов веб-страницы в связи с каждым соответствующим моментом времени, когда каждый из множества контентов загружается на пользовательском устройстве. Например, в случае, если два или более контентов веб-страницы были последовательно открыты пользователем в течение короткого периода времени (например, в течение 10 минут), эти контенты веб-страницы могут быть связаны по времени. В другом аспекте реализации изобретения логическая связь содержит сходство веб-адресов по меньшей мере части из множества контентов веб-страницы. Например, два или более контентов веб-страницы, загруженных из того же домена (например, cnet.com), также связаны между собой. Еще в одном аспекте реализации изобретения, когда два или более контентов веб-страницы были получены с помощью веб-браузера в ответ на один поисковый запрос со стороны пользователя, то эти контенты веб-страницы также логически связаны между собой. Еще в другом аспекте реализации изобретения существуют логические связи между первой и второй частями из множества контентов веб-страницы, когда вторая часть была открыта с помощью ссылки, встроенной в первую часть. В других аспектах реализации изобретения могут распознаваться другие типы логических связей между контентами веб-страницы.
[0056] Впоследствии менеджер кэша 116 может использовать модуль кластеризации 316, представленный на Фиг. 3b, чтобы связать один или более контентов веб-страницы 220 с по меньшей мере одним из кластеров 326 (например, каким-то из кластеров от 1 до N), которые назначены для веб-страницы в кэше браузера 120 на основе логических связей, установленных между одним или более контентами веб-страницы 220 и ранее кэшированными контентами той же веб-страницы, которые могут быть уже связаны между собой по тому же самому из кластеров 326. В одном аспекте, например, в случае, если не установлено никакой логической связи между веб-страницей и другими веб-страницами в кэше, то эта веб-страница не может быть связана с любым из кластеров 312, и, таким образом, хранится отдельно в кэше браузера 120. Что касается упомянутого множества кластеров 326, менеджер кэша 116 может использовать сопоставляющий модуль из других модулей 324 с целью назначить и связать уникальный идентификатор с каждым кластером, чтобы одна веб-страница 220 и все ресурсы, связанные с ней (например, код, текст, изображения, мультимедиа, ссылки, встроенные рекламные объявления и т.д.), могли быть кластеризованы с по меньшей мере одним из кластеров 326 под тем же идентификатором. Эта отдельная связь веб-страницы с кластером с использованием уникального идентификатора позволяет логически группировать все ресурсы, связанные с определенной веб-страницей, в одном кластере, который связан только с этой веб-страницей, что позволяет еще быстрее получать ресурсы веб-страницы и предотвращает случайное удаление ресурсов веб-страницы, связанных с этим кластером, в процессе очистки кэша браузера 120.
[0057] Во время автономного просмотра пользователь может ввести URL-адрес ранее посещенной веб-страницы в модуль интерфейса окна приложения браузера 202 или открыть ранее посещенную веб-страницу, которая была добавлена в закладки, или открыть приложение браузера 124 с ранее открытыми вкладками (например, браузер открывает ранее открытую вкладку после перезагрузки). В ответ на запрашиваемые контенты веб-страницы из кэша браузера 120 менеджер кэша 116 может использовать модуль определения автономного состояния устройства 320, чтобы определить, что пользовательское устройство 102 в настоящее время находится в автономном режиме (например, отключено от любого имеющегося сетевого подключения). Например, модуль 320 может проверить, имеют ли подключение к Интернету сетевая(ые) карта(ы) 55 на Фиг. 6, например, Ethernet, WiFi, GSM, Bluetooth, или другие проводные, беспроводные или сотовые сетевые интерфейсы. Следует иметь в виду, что такой автономный просмотр, в котором гиперссылки могут быть активно использованы, отличается от простого пассивного просмотра контентов веб-страницы в автономном режиме, в котором гиперссылки могут либо не реагировать, либо указывать на ошибку. Соответственно, модуль определения автономного состояния устройства 320 выполнен с возможностью определять, хранятся ли запрошенные контенты веб-страницы в кэше браузера 120 и связана ли запрошенная веб-страница с по меньшей мере одним из кластеров 326. То есть различные контенты веб-страницы, связанные с запрашиваемой и ранее посещенной веб-страницей, локально оцениваются и загружаются из кэша браузера веб-браузером 200 с помощью активных элементов экрана, таких как гиперссылки, окна ввода поискового запроса, диалоговые окна, кнопки выбора и т.п. В частности, менеджер кэша 116 может настроить модуль получения 322 на то, чтобы получать из кэша браузера 120 для автономного просмотра на пользовательское устройство 102 множество контентов запрашиваемой веб-страницы, связанной с идентифицированным кластером 326 в соответствии с уникальным идентификатором, когда запрашиваемая веб-страница хранится в кэше и связана с кластером. Таким образом, в ответ на запрошенную пользователем веб-страницу во время автономного просмотра менеджер кэша 116 может получить доступ и полностью загрузить информацию и ресурсы, связанные с веб-страницей, из по меньшей мере одного из кластеров 326 в кэше браузера 120, когда веб-браузер 200 был ранее запрошен и сохранил информацию и ресурсы, связанные с веб-страницей в их полном объеме в том же самом кластере с уникальным идентификатором.
[0058] В еще одном варианте реализации изобретения, когда сетевое подключение между клиентским устройством 102 и сервером размещения и (или) сервером приложений/поставщиками контента 104а-с пропадает, приложение веб-браузера может предоставить функции автономного просмотра/редактирования, что позволяет пользователю продолжать просмотр предыдущей работы или продолжать работать в открытом документе браузера, пока сетевое подключение не возобновится. В частности, при обнаружении сбоя сетевого подключения, в то время как клиентское устройство 102 отображает открытый документ веб-страницы и он редактируется в окне браузера, менеджер кэша 116 может настроить другие модули 324 на определение и передачу кэш браузеру 120 первой версии (например, временной метки) документа веб-страницы и первого набора изменений (например, создание объекта, удаление объекта, изменение текстового объекта, изменение положения объекта, редактирование контента области текста, изменение порядка страниц, добавление строк, полей или столбцов к табличным объектам и т.п.), внесенных на клиентском устройстве 102 в первую версию документа. Такая информация о версии документа веб-страницы может быть сохранена вместе с другими контентами веб-страницы в по меньшей мере одном из кластеров 326 (например, любом из кластеров с 1 по N), назначенных для веб-страницы в кэше браузера 120. Менеджер кэша 116 может затем периодически активизировать другие модули 324, чтобы обнаруживать действия пользователя в связи с документом, определять и передавать вторую версию документа и второй набор изменений, внесенных в документ, в кэш браузера 120. В одном варианте реализации изобретения менеджер кэша 116 может объединить первый и второй набор изменений, чтобы создать вторую версию документа и передать вторую версию документа в кэш браузера 120 для сохранения в одном кластере вместе с другими контентами веб-страницы. Как вариант, кэш браузера 120 может получать различные версии документа на определенной периодической основе и объединять и сохранять первый и второй наборы изменений в одном кластере. После обнаружения возобновленного сетевого подключения на клиентском устройстве 102 менеджер кэша 116 может синхронизировать с помощью, например, модуля синхронизации из других модулей 324 самую последнюю версию документа веб-страницы в кэше браузера 120 с сервером размещения и (или) сервером приложений/поставщиками контента 104а-с.
[0059] В дополнительном аспекте реализации изобретения менеджер кэша 116 может поддерживать список/таблицу кластеров 312 на Фиг. 3а или кластеров 326 на Фиг. 3b, содержащих информацию о логически связанных веб-страницах 220. В одном типовом аспекте реализации изобретения кластеры 312 и 326 могут храниться отдельно процессором 114 в оперативной памяти, используемой, как показано, для запуска менеджера кэша 116. В одном типовом аспекте реализации изобретения кластеры 312 и 326 могут храниться в кэше браузера 120 вместе с другими контентами кэша 120, как проиллюстрировано на Фиг. 4. Независимо от того, где хранятся эти кластеры, каждый кластер 312 или 326 может иметь типовую конфигурацию, проиллюстрированную на Фиг. 4. В частности, как показано, каждый кластер 312 или 326 может содержать уникальный идентификатор кластера, дату создания кластера, которая может соответствовать дате загрузки наиболее ранней веб-страницы, связанной с этим кластером, список идентификаторов веб-страниц из кэша 120, связанный с каждым кластером, и флаг неразрывности (не показан).
[0060] Более конкретно, как представлено на Фиг. 4, в данный момент веб-страницы открыты во вкладках 210, 212, 214 веб-браузера 124, а также открытые ранее (а теперь закрытые) веб-страницы могут быть логически представлены в виде блоков данных 402, 404, 406 и 408 в кэш-памяти браузера 120. Каждый блок данных 402-408 может содержать, но не ограничивается этим, уникальный идентификатор (например, GUID), URL-адрес(а) на веб-странице, сохраненной в нем, дата последнего поиска веб-страницы, например, хост-сервер и сервер приложений/контент-провайдеров 104а-с, и данные, связанные с веб-страницей. В одном аспекте, информация, содержащаяся в каждом блоке данных 402-408 может быть собрана из различных частей кэша 232-240 кэша браузера 120. Модуль кластеризации 304 может быть выполнен с возможностью связи блоков данных 402 и 404 с Кластером #1 410, в соответствии с определенной логической связью между множеством веб-страниц, открытых во Вкладках 210, 212, и соответствующих блоков данных 406 и 408 с Кластером #2 412, в соответствии с определенной логической связью между множеством веб-страниц, открытых во Вкладках 214, 216. В одном аспекте, отдельный блок данных может быть связан с двумя или более различными кластерами в случае, если содержимое этих блоков данных логически связано с двумя или более кластерами.
[0061] Например, снова возвращаясь к Фиг. 2, веб-страницы 1-3, открытые во вкладках 210, 212, 214 с помощью модуля определения логической связи 302 могут быть определены логически связанными друг с другом на основе, например, временной взаимосвязи между этими веб-страницами, в связи с соответствующим каждой времени, когда каждая из множества веб-страниц изначально загружена или перезагружена, на основе сходства веб-адресов этих веб-страниц, на основе связи с по меньшей мере одним поисковым запросом пользователя или других критериев, и сопоставленные модулем кластеризации 304 с Кластером #1 226. В то время как, веб-страницы 4 и 5 открыты во вкладках 216 и 218, соответственно, могут быть найдены с помощью модуля определения логической связи 302 для логической связи и связи модуля кластеризации 304 с Кластером #2 228 и Кластером #3 230, соответственно.
[0062] В другом аспекте реализации изобретения менеджер кэша 116 может также использовать модуль определения объема кэша 306, проиллюстрированный на Фиг. 3а, для контроля используемого объема кэша браузера 120 и определения, когда используемый объем кэша браузера 120 равен или превышает заданное пороговое значение. Пороговое значение может быть определено как максимальный объем кэша (например, 85% от максимального объема кэша), который должен обслуживаться менеджером кэша 116, с целью предотвращения неожиданной перегрузки кэша. Это пороговое значение может быть указано (и при необходимости подстроено) менеджером кэша 116 и может зависеть от общего объема кэша браузера 120, типа устройства 102 (например, смартфон, персональный компьютер и т.д.), типа приложения веб-браузера 124 (например, Yandex, Chrome и т.д.), среднего размера загружаемых веб-страниц, частоты загрузки новых веб-страниц, типа сетевого соединения (например, сотовое, Ethernet), доступной пропускной способности сети, или других критериев. Как правило, кэш-браузер 120 может поддерживаться при 85% объема, чтобы гарантировать, что всегда есть достаточно места в кэше браузера 120 для того, чтобы полностью загрузить новую веб-страницу без необходимости удаления другой веб-страницы из кэша браузера 120.
[0063] В другом аспекте в случае, если модулем определения объема кэша 306 определяется, что текущий размер использования кэша браузера 120 равен или превышает заданное пороговое значение, то диспетчер кэша 116 может использовать модуль идентификации кластера 308 для идентификации информации, связанной с одним или более кластеров 312 и определения, с учетом выявленной информации, веб-страницы или кластера веб-страниц, для удаления из кэша 120 с целью уменьшения используемого объема кэша веб-браузера 120 ниже порогового значения. Модуль идентификации кластера 308 может использовать различные критерии для определения того, какие веб-страницы должны удаляться в первую очередь на основе логических связей между кэшированными веб-страницами. В одном типовом аспекте кластеры с большим числом связанных веб-страниц могут иметь более высокий приоритет перед кластерами с меньшим количеством связанных веб-страниц на основе предположения, что пользователи, которые рассматривают много связанных веб-страниц (например, контекстуально, временно или иным образом) больше заинтересованы в этих веб-страниц, и, таким образом, скорее всего, вернуться к одной из этих веб-страниц (например, запрос перезагрузки одной из этих веб-страниц из кэша браузера 120), то, когда пользователь просматривает несколько несвязанных веб-страниц или только несколько связанных веб-страниц. С этой целью, отдельная или самостоятельная веб-страница, не связанная с существующими кластерами в кэше браузера 120, может быть удалена, следующая за кластером с только нескольких связанными веб-страницами (например, от 2 до 5 веб-страниц), а затем следующая за кластерами с большим количеством связанных веб-страниц (например, более 5 веб-страниц).
[0064] При определении того, удалять одну или более страниц в идентифицированном кластере (или даже весь кластер веб-страниц), модуль идентификации кластера 308 может учитывать дату создания кластера и/или дату загрузки отдельных веб-страниц, связанных с этим кластером. Например, модуль идентификации кластера 308 может определить для удаления наиболее ранние веб-страницы в пределах идентифицированной первой группы. В другом примере, модуль идентификации кластера 308 может удалить весь кластер страниц, если дата создания кластера или дата загрузки последней (то есть, наиболее поздней) веб-страницы, связанной с этим кластером, превышает заданный порог времени (например, 2 часа). В одном аспекте, если кластер имеет установленный флаг неразрывности, модуль идентификации кластера 308 может назначить только для удаления все или ни одну из веб-страниц, связанных с этим кластером. Другими словами, содержание этого кластера (содержит ли он одну или более веб-страниц) не может быть удалено отдельно друг от друга, они должны удаляться вместе. В другом аспекте, модуль идентификации кластера 308 может учитывать объем веб-страниц, хранящихся в кэше браузера 120 для гарантирования того, что удаление указанных веб-страниц (или кластеров веб-страниц) фактически не приводит к уменьшению общего используемого объема кэша браузера 120 ниже порогового значения. Таким образом, модуль идентификации кластера 308 может идентифицировать одну или более веб-страниц для удаления из кэша браузера 120.
[0065] В другом аспекте реализации изобретения диспетчер кэша 116 может использовать модуль удаления кэша 310, представленный на Фиг. 3а, для удаления из кэша браузера 120, например, одной или более веб-страниц (или кластеров веб-страниц), определенных модулем идентификации кластера 308. В частности, модуль удаления кэша 310 принимает от модуля идентификации кластера 308 уникальные идентификаторы веб-страниц в кэше браузера 120, которые были отмечены для удаления. Модуль удаления кэша 310 затем декластеризует (т.е. выделяет) из кластеров уникальные идентификаторы, идентифицирующие веб-страницы. Модуль удаления кэша 310 затем удаляет из кэша браузера 120, по меньшей мере часть по меньшей мере одного или более де кластеризацией веб-страниц. Модуль 310 кэш удаление может также удалить из всех кластеров записей удаленных веб-страниц, и, в случае весь кластер веб-страниц будет отмечено для удаления, удаления записи из этого кластера из кэша 120 браузера.
[0066] В одном аспекте, например, один кластер может быть связано с одной веб-страницы. В этом случае клиентское приложение веб-браузер 124 может запросить менеджер 116 кэша в отношении целостности конкретного кластера в кэше 120 браузера, таким образом, что вся веб-страница может быть перегружены в браузере в онлайн или в автономном режиме, не требуя никаких содержимое веб-страницы с хост-сервера и/или приложений-провайдеров/контент 104а-с. В одном аспекте, кластер, связанный с одной веб-странице может быть помечен флагом неотделимость для того, что бы никакое содержимое связанной(ых) с ним веб-страниц(ы) не будет удалены из кэша 120, так что веб-страница извлекается из кэша 120 браузера в его Совокупность по запросу браузере.
[0067] Фиг. 5 иллюстрирует примерный способ логической организации и управления кэшем браузера согласно одному примеру аспекта. Способ 500 может быть реализован с помощью системы 100, проиллюстрированной на Фиг. 1-4. На этапе 502, способ 500 может включать в себя сохранение в кэше веб-браузера (например, кэш браузера 120 из памяти 118 Фиг. 1) на пользовательском устройстве (клиентского устройства 102) информации о множества веб-страниц, посещенных пользователем в течение одного или более сеансов просмотра веб-страниц. На этапе 504 менеджер кэша 116 процессора 114 на Фиг.1 может настроить модуль определения логических связей 302 на Фиг. 3а на определение логических связей среди множества веб-страниц, хранящихся в кэше браузера 120. На этапе 506 менеджер кэша 116 может конфигурировать содержать модуль кластеризации 304 для сопоставления множества веб-страниц с одним или более кластерами на основе определенных логических связей между множеством веб-страниц. На этапе 508, при обнаружении размера использования кэша, равной или превышающей пороговое значение, менеджер 116 кэш может настроить модуль определения размера кэша 306 для определения информации, связанной с одним или более кластеров в кэше 120 браузера. На этапе 510, кэш-менеджером 116 может определить, веб-страница или кластер веб-страниц, чтобы удалить из кэша на основе идентифицированной информации, связанной с каждым из одного или более кластеров. На этапе 512, кэш менеджер 116 может настроить модуль удаления кэша 308 для удаления из кэша браузера 120 один или более веб-страниц, на основе выявленных информации, связанной с каждым из одного или более кластеров в кэше 120 браузера.
[0068] Фиг. 6 иллюстрирует еще один типовой способ логической организации и управления кэшем веб-браузера для обеспечения автономного просмотра в соответствии с другим типовым аспектом реализации изобретения. Способ реализации изобретения 600 может быть реализован с помощью систем, представленных на Фиг. 1-4. На этапе 602 способ реализации изобретения 600 может включать сохранение в кэше веб-браузера (например, кэше браузера 120 из памяти 118 на Фиг. 1) на пользовательском устройстве (клиентском устройстве 102) информации о множестве контентов веб-страницы, посещенных пользователем во время одного или более сеансов просмотра веб-страницы. На этапе 604 менеджер кэша 116 процессора 114 на Фиг.1 может настроить модуль определения логических связей 314 на Фиг. 3b на определение логических связей среди множества контентов веб-страницы, хранящихся в кэше браузера 120. На этапе 606 менеджер кэша 116 может настроить модуль кластеризации 316 связывать множество контентов веб-страницы с кластером 326 на Фиг. 3b в кэше браузера 120 на основании определенных логических связей среди множества контентов веб-страницы. На этапе 608 менеджер кэша 116 может настроить модуль интерфейса принимать запрос на загрузку ранее посещенной веб-страницы из веб-браузера 120 на пользовательском устройстве 102. На этапе 610 менеджер кэша 116 может настроить модуль определения автономного состояния устройства обнаруживать, что пользовательское устройство находится в автономном режиме, и определять, хранится ли запрошенная веб-страница в кэше браузера 120 и связана ли запрошенная веб-страница с по меньшей мере одним из кластеров 326. На этапе 612 менеджер кэша 116 может настроить модуль получения на то, чтобы получать из кэша браузера 120 для автономного просмотра на пользовательском устройстве 102 множество контентов запрашиваемой веб-страницы, связанной с идентифицированным кластером среди кластеров 326 на Фиг. 3b, когда запрашиваемая веб-страница хранится в кэше браузера 120 и связана с идентифицированным кластером.

[0069] Фиг. 7 изображает один типовой аспект компьютерной системы 5, которая может быть использована для реализации раскрытых устройств и способов для логической организации и управления кэшем веб-браузера. Компьютерная система 5 может содержать в себе (но не ограничена ими) компьютер, ноутбук, планшет, смартфон, мобильное устройство, сетевой сервер, роутер или другой тип обрабатывающего устройства. Как показано, компьютерная система 5 может содержать в себе один или более аппаратных процессоров 15, память 20, один или более жестких дисков 30, оптический(е) привод(ы) 35, последовательный(е) порт(ы) 40, видеокарту 45, звуковую карту 50 и сетевую карту 55, соединенных системной шиной 10. Системная шина 10 может представлять собой любую из нескольких типов шинных структур, включая шину памяти, контроллер памяти, периферийную шину и локальную шину, использующую любую из множества известных типов шинной архитектуры. Процессор 15 может содержать в себе один или более процессоров Intel Core 2 Quad 2.33 ГГц или других типов микропроцессоров.

[0070] Системная память 20 может содержать в себе постоянную память (ПЗУ) 21 и оперативную память (ОЗУ) 23. Память 20 может быть реализована как динамическое ОЗУ, стираемое программируемое ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любая другая архитектура памяти. ПЗУ 21 хранит базовую систему ввода/вывода 22 (BIOS), содержащую основные процедуры, которые помогают передавать информацию между модулями компьютерной системы 5, например, во время запуска. ОЗУ 23 хранит операционную систему 24 (ОС), например, Windows 7 Professional или другой тип операционной системы, который отвечает за управление и координацию процессов и распределения аппаратных ресурсов в компьютерной системе 5. Память 20 также хранит приложения и программы 25. Память 20 также сохраняет различные данные 26 этапа исполнения, используемые программами 25.
[0071] Компьютерная система 5 может дополнительно содержать в себе жесткий(е) диск(и) 30, например SATA HDD, и оптический(е) привод(ы) 35 для чтения или записи съемного оптического диска, например CD-ROM, DVD-ROM или другого оптического носителя. Диски 30 и 35 и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, приложений и программных модулей/субпроцедур, которые реализуют описанные здесь алгоритмы и способы. Несмотря на то, что примерная компьютерная система 5 использует магнитные и оптические диски, специалисты в данной области техники оценят, что в альтернативных аспектах компьютерной системы 5 также могут быть использованы другие типы машиночитаемых носителей, которые способные хранить данные, доступные компьютерной системе 5, например, магнитные кассеты, флэш-карты памяти, цифровые видеодиски, ОЗУ, ПЗУ, стираемое программируемое ПЗУ и другие типы памяти.

[0072] Компьютерная система 5 дополнительно содержит в себе множество последовательных портов 40, например, универсальную последовательную шину (USB), для подключения устройств(а) 75 ввода данных, таких как клавиатура, мышь, сенсорная панель и прочие. Последовательные порты 40 также могут быть использованы для подключения устройств(а) 80 вывода данных, таких как принтер, сканер и другие, а также других периферийных устройств(а) 85, например, внешних устройств хранения данных и т.п. Система 5 также может содержать в себе видеокарту 45, например nVidia GeForce GT 240М или другую видеокарту, для взаимодействия с экраном 60 или другим устройством воспроизведения видео, например, сенсорным экраном. Система 5 также может содержать в себе звуковую карту 50 для воспроизведения звука через внутренние или внешние динамики 65. Кроме того, система 5 может содержать в себе сетевую(ые) карту(ы) 55, такие как Ethernet, WiFi, GSM, Bluetooth или другой проводной, беспроводной или сотовый сетевой интерфейса для подключения компьютерной системы 5 к сети 70, например, к сети Интернет.
[0073] В различных аспектах, системы и способы, описанные здесь, могут быть реализованы на аппаратном обеспечении, прикладном программном обеспечении, системном программном обеспечении или любой из их комбинаций. При реализации в виде прикладного программного обеспечения, способы могут быть сохранены в виде одной или более инструкций или кода на постоянном машиночитаемом носителе. Машиночитаемый носитель содержит в себе хранилище данных. В качестве примера, а не ограничения, подобный машиночитаемый носитель может представлять собой ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любой другой тип электрического, магнитного или оптического носителя, или любой другой носитель, который может быть использован для переноса или хранения желаемого программного кода в форме инструкций или структур данных, к которым может обращаться процессор компьютера общего назначения.
[0074] Для ясности стоит отметить, что не все обычные признаки аспектов описаны здесь. Следует иметь в виду, что при модификации какого-либо фактического варианта осуществления технологии, необходимо принять ряд специфичных для варианта осуществления решений для достижения конкретных целей разработчика, и эти конкретные цели будут отличаться для различных вариантов осуществления и для различных разработчиков. Следует иметь в виду, что подобная разработка может быть сложной и затратной по времени, но, тем не менее, не будет представлять сложности для опытных специалистов в данной области техники, обладающих преимуществом от прочтения настоящего описания.
[0075] Кроме того, следует иметь в виду, что фразеология и терминология используется здесь в целях описания, а не ограничения, таким образом, терминология или фразеология настоящего описания должна интерпретироваться специалистами в данной области техники с учетом представленных здесь указаний и руководства в сочетании со знаниями специалистов в соответственной(ых) области(ях) техники. Более того, ни одному термину в описании или формуле не следует приписывать особого или специального смысла, если явно не указано иное.
[0076] Различные описанные здесь аспекты охватывают нынешние и будущие известные эквиваленты известных модулей, указанных в данном описании в целях иллюстрации. Кроме того, несмотря на представленные и описанные аспекты и приложения, специалистам в данной области техники, обладающим преимуществом от прочтения настоящего описания, будет очевидно, что возможна реализация многих других вышеописанных модификаций без отступления от представленной здесь концепции технологии.