СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ И ОРГАНИЗАЦИИ КЭША ВЕБ-БРАУЗЕРА
SYSTEM AND METHOD OF CONTROLLING AND ORGANIZING WEB-BROWSER CASH

ОБЛАСТЬ ТЕХНИКИ
[0001] Изобретение в целом относится к области поиска в Интернете, а более конкретно к системам и способам логической организации и управления кэшем веб-браузера.
УРОВЕНЬ ТЕХНИКИ
[0002] World Wide Web (WWW), в основном, состоит из множества серверных компьютеров, на которых хранятся соответствующие базы данных и сетей, с помощью которых клиентские компьютерные устройства могут обмениваться данными с компьютерными серверами, а также выполнять запросы и загружать данные. На клиентском устройстве, как правило, используется программа "веб-браузер" для выполнения запросов данных, например, веб-страниц на удаленных серверах. Всякий раз, когда веб-браузер, связанный с клиентским устройством, запрашивает веб-страницу, либо пользователь указывает унифицированный указатель информационного ресурса (URL) или выбирает ссылку на другую веб-страницу, веб-браузер находит сервер, на котором хранится запрошенная веб-страница и загружает веб-страницу в клиентское устройство в виде файла на языке разметки гипертекста (HTML). HTML файл может содержать спецификацию каждого компонента веб-страницы, например, код HTML или Java, текст, графику, встроенное мультимедиа, ссылки на другие веб-страницы и т.д. Веб-страницы, полученные браузером, могут храниться или кэшироваться в памяти клиентского устройства, а также могут отображаться для пользователя.
[0003] Кэширование веб-страниц в клиентском устройстве имеет ряд преимуществ. Улучшается общая скорость доступа к веб-странице на клиентском устройстве из-за того, что браузер может получать доступ к данным, связанным с веб-страницей, непосредственно из клиентского устройства (например, кэша браузера), быстрее чем при повторном запросе данных страницы из сервера. Кроме того, кэширование веб-страниц может позволить пользователю многократно просматривать информацию в течение определенного периода времени без многократного получения веб-страницы с сервера. Кроме того, кэшированием веб-страниц пользователю предоставляется возможность автономного просмотра кэшированных веб-страниц в случае отсутствия сетевого подключения к серверу.
[0004] Тем не менее, с течением времени процесс кэширования может значительно замедлять работу браузера из-за накопления в кэше браузера большого количества данных для хранения. Это происходит по меньшей мере из-за того, что объем памяти кэша браузера, как правило, ограничен и текущее использование кэша браузера включает хранение большого объема данных веб-страниц, например, код, текст, графику, мультимедиа и т.д., который может занимать значительный объем системной памяти и вычислительных ресурсов, тем самым снижая общую производительность системы. Это становится особенно критичным для мобильных устройств, таких как смартфоны и планшеты, которые в отличие от персональных компьютеров, ноутбуков и серверов, обычно имеют меньший объем доступной памяти и вычислительных ресурсов.
[0005] Кроме того, могут стать доступными обновления ранее посещенных и кэшированных веб-страниц для применения изменений или новых параметров. В случае, если веб-страница запрашивается повторно, веб-браузер может ускорить время отображения путем загрузки кэшированной версии веб-страницы из локального кэша браузера, что приводит к уменьшению последней версии отображаемой веб-страницы. В худшем случае любой, кто может получить доступ к этому клиентскому устройству из истории просмотра может узнать, какие сайты посещались владельцем устройства, и кэширование не ограничивается веб-страницами, а также может содержать имена пользователей, пароли, банковскую информацию и другие конфиденциальные данные. Поэтому желательно периодически удалять содержимого кэша браузера. Как правило, содержимое кэша браузера автоматически удаляется в хронологическом порядке, причем наиболее раннее содержимое удаляется в первую очередь. Тем не менее, очистка кэша браузера является не самым эффективным способом очистки кэша браузера, поскольку релевантные веб-страницы могут быть удалены в первую очередь. Поэтому, желательно задействовать эффективную логическую организацию и управление кэшем веб-браузера, например, таким образом, что кэш может быть эффективно очищен от старого содержимого с целью улучшения общей системной производительности клиентского устройства.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] В данной заявке раскрываются аспекты систем, методов и компьютерные программные продукты для логической организации и управления кэшем браузера.
[0007] Согласно одному аспекту, реализованный на компьютере типовой способ управления кэшем браузера включает: хранение в кэше веб-браузера информации о множестве веб-страниц, посещенных пользователем в течение одного или нескольких сеансов просмотра, на пользовательском устройстве; определение логических связей между множеством веб-страниц, сохраненных в кэше; сопоставление множества веб-страниц с одним или более кластерами в зависимости от определенных логических связей между множеством веб-страниц; идентификацию информации, связанной с одним или более кластерами в кэше, в случае обнаружения используемого объема кэша, равного или превышающего пороговое значение; определение веб-страницы или кластера веб-страниц для удаления из кэша в связи от идентифицированной информации, связанной с одним или более кластерами; и удаление из кэша одной или более веб-страниц в связи от идентифицированной информации, связанной с одним или более кластерами.
[0008] В одном аспекте логические связи содержат контекстные связи между множеством веб-страниц.
[0009] В одном аспекте логические связи содержат временную зависимость между множеством веб-страниц, связанную с соответствующим моментом времени, когда каждая из множества веб-страниц загружается на пользовательском устройстве.
[0010] В одном аспекте логические связи содержат подобие веб-адресов по меньшей мере часть множества веб-страниц.
[0011] В одном аспекте логические связи содержат сопоставление по меньшей мере части множества веб-страниц по меньшей мере с одним веб-поиском.
[0012] В одном аспекте логические связи между первой страницей и второй страницей существуют в случае, если вторая страница была открыта с помощью ссылки, встроенной в первую страницу.
[0013] В одном аспекте, удаление из кэша одной или более веб-страниц по меньшей мере дополнительно включает: удаление одной или более веб-страниц, не принадлежащих ни к какому кластеру; удаление одной или более веб-страниц из наиболее раннего кластера; удаление из кластера одной или более веб-страниц с самой ранней датой загрузки; удаление одной или более веб-страниц из кластера с наименьшим числом сопоставленных веб-страниц; и удаление всего кластера веб-страниц с наименьшим числом сопоставленных веб-страниц.
[0014] В одном аспекте, удаление из кэша одной или более веб-страниц, дополнительно включает декластеризацию одной или более веб-страниц из кластера и удаление из кэша по меньшей мере части по меньшей мере одной или более декластеризованных веб-страниц.
[0015] В одном аспекте декластеризация одной или более веб-страниц из кластера включает определение декластеризованной веб-страницы из кластера в зависимости от одного или более параметров: времени последнего просмотра веб-страницы пользователем; времени, затраченного пользователем на просмотр веб-страницы; числа операций, выполняемых пользователем на веб-странице; и является ли кластеризованная веб-страница добавленной пользователем в закладки.
[0016] В одном аспекте сопоставление множества веб-страниц с одним или более кластерами включает установку флага неразрывности для кластера, что исключает декластеризацию и удаление части содержания, связанного с указанным кластером.
[0017] В одном аспекте, удаление из кэша одной или более веб-страниц включает проверку, содержит ли кластер флаг неразрывности; и в случае, если кластер содержит флаг неразрывности: запрещается удаление одной или более веб-страниц, сопоставленной с кластером; или разрешается удаление всех связанных с кластером веб-страниц.
[0018] Согласно другому аспекту реализованная на компьютере типовая система для управления кэшем браузера на пользовательском устройстве содержит: кэш, выполненный с возможностью хранения информации о множестве веб-страниц, посещенных пользователем во время одного или более сеансов веб-просмотра; модуль определения логических связей, выполненный с возможностью определения логических связей между множества веб-страниц, хранящихся в кэше; модуль кластеризации, выполненный с возможностью сопоставления множества веб-страниц с одним или более кластерами в зависимости от определенных логических связей между множеством веб-страниц; модуль определения размера кэша, выполненный с возможностью идентификации информации, сопоставленной с одним или более кластерами в кэше при обнаружении используемого объема кэша, равного или превышающего пороговое значение; модуль идентификации кластера, выполненный с возможностью определения веб-страницы или кластера веб-страниц для удаления из кэша в зависимости от идентифицированной информации, связанной с одним или более кластерами; и модуль удаления кэша, выполненный с возможностью удаления из кэша одной или более веб-страниц в зависимости от идентифицированной информации, связанной с одним или более кластерами в кэше.
[0019] Согласно другому аспекту типовой машиночитаемый носитель информации содержит выполняемые компьютером команды для управления кэшем браузера, причем команды включают: хранение в кэше веб-браузера информации о множестве веб-страниц, посещенных пользователем в течение одного или нескольких сеансов просмотра веб-страниц, на пользовательском устройстве; определение логических связей между множеством веб-страниц, сохраненных в кэше; сопоставление множества веб-страниц с одним или несколькими кластерами, в зависимости от определенных логических связей между множеством веб-страниц; идентификацию информации, связанной с одним или более кластерами в кэше в случае обнаружения используемого объема кэша равного или превышающего пороговое значение; определение веб-страницы или кластера веб-страниц для удаления из кэша, в зависимости от идентифицированной информации, связанной с одним или более кластерами; и удаление из кэша одной или более веб-страниц, в зависимости от идентифицированной информации, связанной с одним или более кластерами.
[0020] Представленное выше описание упрощенных аспектов служит с целью улучшения понимания основных аспектов технологии. Это описание не является полным для всех рассматриваемых аспектов, и не предназначено для определения ключевых или важнейших элементов всех аспектов или для ограничения объема любого или всех аспектов технологии. Единственной задачей описания является представление одного или более аспектов в упрощенной форме в качестве вводной части перед более подробным описанием технологии, которое следует далее. Для выполнения вышеизложенной задачи один или несколько аспектов технологии содержит признаки, описанные и конкретно указанные в формуле изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Прилагаемые чертежи, которые включены в данное описание и являются его составной частью, поясняют один или несколько вариантов реализации аспектов технологии и вместе с подробным описанием служат для пояснения принципов и вариантов реализации технологии.
[0022] На Фиг. 1 представлена схема, поясняющая типовую конфигурацию системы логической организации и управления кэшем, связанным с веб-браузером согласно одному аспекту технологии.
[0023] На Фиг. 2 представлено схематическое представление типового окна приложения браузера, отображающего различное содержимое браузера в формате вкладок, согласно одному аспекту технологии.
[0024] На Фиг. 3 представлена схема, поясняющая типовую конфигурацию модуля управления кэшем для логической организации и управления кэшем, согласно одному аспекту технологии.
[0025] На Фиг. 4 представлена схема, поясняющая типовую конфигурацию кэша, соответствующего веб-браузеру, согласно одному аспекту технологии.
[0026] На Фиг. 5 представлена блок-схема, поясняющая типовой способ логической организации и управления кэшем, соответствующим веб-браузеру, согласно одному аспекту технологии.
[0027] На Фиг. 6 представлена схема, поясняющая работу типовой компьютерной системы общего назначения для реализации систем и способов логической организации и управления кэшем, соответствующим веб-браузеру, согласно аспектам технологии.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0028] В данной заявке типовые аспекты данной технологии описываются в контексте систем, способов и компьютерных программных продуктов для логической организации и управления кэшем веб-браузера. Для специалистов в данной области техники будет очевидно, что следующее описание является исключительно иллюстративным и не предназначено для установления каких-либо ограничений. Другие аспекты станут очевидными специалистам в данной области техники, обладающим преимуществами благодаря ознакомлению с данным описанием. Рассмотрим более подробно варианты реализации аспектов, проиллюстрированных в прилагаемых чертежах. На всех чертежах и в нижеследующем описании, по возможности, одни и те же элементы будут одинаково пронумерованными.
[0029] На Фиг. 1 представлена типовая система 100 для логической организации и управления кэшем, соответствующим веб-браузеру вычислительного устройства. Система 100 может содержать различные электронные пользовательские или клиентские устройства 102, каждое из которых содержит любую систему и/или устройство, и/или любую комбинацию устройств/систем, выполненных с возможностью установления соединения, в том числе проводного, беспроводного или подключения с помощью сети мобильной связи с другими устройствами или системами, например хост-сервером и/или сервером приложений/контент-провайдеров 104а-с. Хост-сервером и сервером приложений/контент-провайдеров 104а-с может быть любой сервер, в том числе и соединенный со сторонними серверами или провайдерами услуг/контента (например, рекламы, рекламного контента, публикаций, или серверами электронных купонов или услуг). В одном из аспектов технологии каждый из серверов 104а-с может содержать серверный процессор 110, сервер базы данных 112, а также другие модули и компоненты (не показаны).
[0030] Согласно одному аспекту технологии клиентские устройства 102 могут включать мобильные, ручные или переносные устройства, беспроводные устройства, или непереносные устройства и могут быть любым, но не ограничиваясь этим, настольным сервером, настольным компьютером, вычислительным кластером, или портативными устройствами, в том числе ноутбуком, портативным компьютером, КПК, мобильным телефоном, сотовым телефоном, смартфоном, планшетным ПК, портативной клавиатурой, портативным игровым устройством или клавиатурой. В одном аспекте, при активации пользователем приложения веб-браузера 124 из множества клиентских приложений 122 на одном клиентском вычислительном устройстве 102 может устанавливаться связь с помощью сети 110, например Интернет, посредством проводной или беспроводной связи для получения доступа к одному или более ресурсов и информации на различных хост-серверах и/или серверах приложений/контент провайдеров 104а-с. Кроме того, клиентское устройство 102 и один или более хост-серверов и/или серверов приложений/контент провайдеров 104а-с, могут быть связанными непосредственно друг с другом.
[0031] Клиентское устройство 102 может включать или иным образом осуществлять связь, посредством шины управления/данных 126, с процессором 114 на котором выполняется менеджер кэша 116, памятью 118, в том числе с кэшем браузера 120, несколькими клиентскими приложениями 122, в том числе приложениями клиента веб-браузера 124, пользовательским интерфейсом 128, интерфейсом связи 130. Процессор 114 может быть реализован в виде одного или более различных средств обработки, например микропроцессора, контроллера, цифрового сигнального процессора (DSP), устройства обработки с или без сопутствующего DSP, или различных других устройств обработки, в том числе интегральных схем, например, ASIC (специализированных интегральных схем), FPGA (программируемой пользователем вентильной матрицы), микроконтроллерного устройства (MCU), аппаратного ускорителя, компьютерного чипа специального назначения, схемы обработки, или тому подобного. Например, процессор 114 может быть выполнен с возможностью выполнения команд, хранящихся в памяти 118, или выполнения жестко заданных функций в ответ на прием данных или управляющих сигналов от других модулей посредством шины 126. Таким образом, независимо от того реализованы ли способы аппаратно или программно, или как их комбинация, процессор 114 может быть представлен в виде компонента (например, физически реализованного в виде электрической схемы), выполненного с возможностью реализации алгоритмов и/или операций, описанных в данной заявке, в случае выполнения соответствующих команд.
[0032] Интерфейс связи 130 может быть любым средством, например устройством или электронной схемой, реализованной в виде любого аппаратного средства, программного обеспечения или комбинации аппаратных средств и программного обеспечения, выполненных с возможностью приема и/или передачи данных из/во внутреннюю шину 126 и/или любого другого устройства или модуля, связанного с клиентским устройством 102. В связи с этим, интерфейс связи 130 может содержать, например, антенну (или несколько антенн) и поддерживаться аппаратными средствами и/или программным обеспечением для предоставления возможности связи с сетью передачи данных 110. В некоторых примерах интерфейс связи 130 может осуществлять проводную связь с помощью модема для передачи данных и/или другого аппаратного/программного обеспечения для поддержки связи посредством кабеля, цифровой абонентской линии (DSL), универсальной последовательной шины (USB) или других механизмов.
[0033] В дополнительном аспекте пользовательский интерфейс 128 может быть связан с процессором 114, для получения указания ввода пользователя на пользовательском интерфейсе 128 и/или для предоставления пользователю звукового, визуального, механического или иного вывода данных. Например, пользовательский интерфейс 128 может содержать клавиатуру, мышь, джойстик, дисплей, сенсорный экран, экранные клавиши, микрофон, динамик, или другие средства ввода/вывода. В связи с вышесказанным процессор 114, например, может содержать электронную схему пользовательского интерфейса, выполненную с возможностью управления по меньшей мере некоторыми функциями одного или более элементов пользовательского интерфейса, таких как, например, громкоговоритель, звонок, микрофон, дисплей, и/или тому подобных. Процессор 114 и/или электронные схемы пользовательского интерфейса, содержащие процессор 114, могут быть выполнены с возможностью управления одной или более функциями одного или нескольких элементов пользовательского интерфейса с помощью компьютерных программных команд (например, программного и/или встроенного программного обеспечения), хранящихся в памяти 118 или подобным образом доступных для процессора 114.
[0034] Например, память 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 было выключено.
[0035] Например, в случае, если пользователь активирует клиентское приложение веб-браузера 124 клиентского устройства 102 для просмотра или навигации по веб-страницам, пользователь может использовать пользовательский интерфейс 128 для указания основной операционной системы устройства 102 для начала и отображения окна веб-браузера с помощью процессора 114. Приложение веб-браузера 124 может включать, но не ограничивается этим, Яндекс, Firefox, Internet Explorer, Google Chrome, Opera или Safari. В свою очередь процессором 114 может выполняться менеджер кэша 116 для резервирования части памяти 118 (например, кэша браузера, 120) для веб-браузера с целью хранения данных и кода. Как будет более подробно описываться ниже со ссылкой на Фиг. 3, менеджером кэша 116 может выполняться логическая организация и управление кэшем браузера 120 на клиентском устройстве 102, согласно принципам, раскрытым в данной технологии.
[0036] Как правило, пользователь может ввести URL-адрес веб-страницы для получения информации из хост-сервера и сервера приложений/контент-провайдеров 104а-с или выбрать из ранее сохраненных веб-страниц сразу после активации клиентского приложения веб-браузера 124. Веб-браузеры, как правило, содержат механизм предотвращения перегрузки определенной информацией и ресурсами пользователя, загруженными и посещенными ранее, с целью потенциально ускорить отклики на часто запрашиваемые и/или данные с высокими стоимостью доступа вместо того, чтобы запрашивать данные непосредственно из первоначальных источников данных, например хост-сервера и/или сервера приложений/контент-провайдеров 104а-с.
[0037] Если, в ответ на прием URL-адреса нужной пользователю веб-страницы, имя вебстраницы не доступно в кэше браузера 120 (при неудачном обращении в кэш), приложение веб-браузера 124 может взаимодействовать с сетью 110 с помощью, например, драйверов устройства, управляющих интерфейсом связи 130 устройства 102, для запроса этой веб-страницы. Один из хост-серверов и серверов приложений/контент-провайдеров 104а-с может находить эту веб-страницу и обмениваться этой веб-страницей с устройством 102 посредством сети ПО таким образом, что клиентским приложением веб-браузера 124 может выполняться код веб-страницы для отображения его содержимого в виде HTML-файла. Информация для восстановления веб-страницы пользовательским устройством 102 может храниться в кэше браузера 120 в случае, если клиентское приложение веб-браузера 124 соответственно загружает различные веб-страницы из сети ПО, считывает содержимое файлов, интерпретирует команды, сохраненные в файлах, и формирует веб-страницы на дисплее устройства 102.
[0038] Приложение веб-браузера 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.
[0039] В одном примере, пользователь может открыть веб-страницы 220 в нескольких различных сеансах просмотра. Сеанс просмотра веб-страниц может быть определен как интерактивный обмен данными между клиентским устройством 102 и сервером 104, в связи с запросом одного или более ресурсов сервера, например одной или более веб-страниц, и всего контента, связанного с ними, например, кода, текста, графики и т.д. Пользователь может выполнять несколько сеансов просмотра веб-страниц практически одновременно или в разное время дня или недели. Независимо от того, когда были открыты эти веб-страницы: в текущем сеансе просмотра или в прошлых сеансах просмотра (например, завершенные или закрытые сеансы просмотра), содержимое этих веб-страниц сохраняется в кэш-памяти браузера 120.
[0040] В связи с ограниченной емкостью памяти, каждое соответствующее использование памяти 118 и кэш браузера 120 на клиентском устройстве 102 может зависеть от количества открытых вкладок, количества открытых окон, количества активных сеансов просмотра веб-страниц, объема открытых веб-страниц, и совокупных ресурсов в текущем использовании клиентского приложения веб-браузера 124. Как правило, кэш веб-браузера может занимать значительный объем системной памяти (например, 100 МБ от общего объема ОЗУ для IPhone 4), обеспечивая таким образом системную производительность клиентского устройства 102. Поэтому, желательно осуществлять эффективную организацию и управление кэшем браузера 120, связанным с клиентским приложением веб-браузера 124 таким образом, что кэш веб-браузера 120 может эффективно очищаться от старого содержимого с целью повышения общей производительности системы. В соответствии с предпочтительным аспектом приложение веб-браузера 124 может использовать менеджер кэша 116 для осуществления логической организации и управления кэшем 120 браузера.
[0041] На Фиг. 3 представлена типовая конфигурация 300 кэш-менеджера 116 в соответствии с одним из аспектов. Как показано, менеджер кэша 116 может содержать модуль определения логической связи 302, который может быть выполнен с возможностью определения логических связей между множеством веб-страниц, хранящихся в кэше браузера 120. Менеджер кэша 116 может дополнительно содержать модуль кластеризации 304, который может быть выполнен с возможностью сопоставления множества веб-страниц с одним или несколькими кластерами, в зависимости от определенных логических связей между множеством веб-страниц. Менеджер кэша 116 может дополнительно содержать модуль определения объема кэша, выполненный с возможностью определения текущего используемого объема кэша браузера 120. Менеджер кэша 116 может дополнительно содержать модуль идентификации кластера 308, который может быть выполнен с возможностью определения веб-страницы или кластера веб-страниц для удаления из кэша в зависимости от идентифицированной информации, связанной с одним или более кластеров в случае, если используемый объем кэша равен или превышает пороговое значение. Менеджер кэша 116 может дополнительно содержать модуль удаления кэша 310, выполненный с возможностью удаления из кэша одной или более веб-страниц в зависимости от идентифицированной информации, связанной с одним или более кластерами в кэше. Менеджер 116 кэша может также содержать другие модули 311, используемые для управления кэшем 120.
[0042] Термин "модуль" в данном контексте означает физическое устройство, аппарат или множество модулей, выполненных с использованием аппаратного обеспечения, например, с помощью интегральной схемы специального назначения (ASIC) или программируемой логической интегральной схемы (FPGA), или же комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора команд, реализующих функциональные возможности модуля, трансформирующие (при выполнении) микропроцессорную систему в устройство специального назначения. Модуль также может быть выполнен в виде комбинации двух модулей, определенные функции которых обеспечиваются только аппаратным обеспечением, а другие функции обеспечиваются комбинацией аппаратного и программного обеспечения. В некоторых конкретных вариантах осуществления технологии по меньшей мере часть модулей (а в некоторых случаях - все) могут быть использованы в процессоре компьютера общего назначения (например, подобном подробно описанному ниже со ссылкой на Фиг. 6). Соответственно, каждый модуль может быть выполнен в виде множества различных конфигураций и не ограничивается конкретным вариантом осуществления, приведенным здесь в качестве примера.
[0043] Например, со ссылкой на Фиг. 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 и могут очищаться первыми при определенных условиях, как будет объяснено более подробно ниже.
[0044] В одном примере когда ресурсы и информация, связанные с каждой запрошенной веб-страницей, полностью или частично загружены на клиентское устройство 102 из хост-сервера и/или сервера приложений/контент-провайдеров 104а (например, все связанные с ним ресурсы и информация получены и загружены кэшем веб-браузера 120), менеджер кэша 116 может выделить часть кэша браузера 120, например, часть кэша для HTTP веб-ресурсов 232, часть кэша для HTML5 приложения 234, часть кэша для декодированных изображений 236, и часть для дерева объектной модели документа (DOM) 238, для временного хранения загруженного содержимого веб-страниц. Объектная модель документа является интерфейсом прикладного программирования (API) для допустимых HTML и XML-документов правильного формата, и определяет логическую структуру документов и путь для получения доступа и обработки документа. Кэш браузера 120 может дополнительно содержать часть кэша страниц 240 для хранения посещенных веб-страниц (веб-страниц, показанных веб-браузером 200). Часть кэша страниц 240 может позволить быструю навигацию вперед-назад путем "останова" страницы и быстрого показа ранее посещенных веб-страниц в случае, если пользователь переходит назад на ту же страницу. Как правило, часть кэша страниц 240 может хранить все ресурсы, связанные с основной HTML страницей и часть кэша для HTTP 232 может хранить каждый ресурс отдельно.
[0045] Для полной загрузки веб-страницы, менеджер кэша 116 может автоматически генерировать идентификатор веб-страницы или подобный идентификатор (например, определенную конкретную подпись данных), который однозначно описывает содержимое полученных ресурсов и информацию, которые могут быть или не могут быть URL ресурсами и информацией (например, глобальный уникальный идентификатор (GUID)). В одном примере, диспетчер кэша 116 может выполнять алгоритм (например, операцию хэширования, алгоритм представления сообщения в краткой форме (например, "MD5"), и/или аналогичный алгоритм) для генерации идентификатора веб-страницы. В другом примере, операции, алгоритмы и/или подпрограммы, используемые для генерации идентификатора веб-страницы могут быть стандартизированы и, как известно в случае других вычислительных устройств в сети общего пользования (например, сети 110 на Фиг. 1), так, что все эти вычислительные устройства, совместно использующие ту же самую сеть, могут генерировать идентичные идентификаторы в случае, если обрабатывают одну и ту же веб-страницу.
[0046] Согласно одному аспекту, менеджер кэша 116 затем может активировать модуль определения логической связи 302, как показано на Фиг. 3 с целью определения являются ли веб-страницы открытыми во вкладках 210, 212, 214, 216, 218 во время текущих сеансов просмотра, и одна или более веб-страниц уже хранятся в кэше 120 браузера с момента предыдущего (например, завершенного в данный момент) просмотра веб-страниц, логически связанных друг с другом. Например, логическая связь между двумя или более веб-страницами может быть установлена в зависимости от контекстного сходства содержимого и ресурсов, совместно используемых на этом сайте. Например, на двух или более веб-страницах обсуждаются автомобильные новости и новые модели автомобилей, являющиеся контекстуально похожими и, следовательно, логически связанными друг с другом. В другом примере, когда две или более страниц были получены с помощью веб-браузера в ответ на один и тот же поисковый запрос со стороны пользователя, то эти веб-страницы также логически связаны между собой. В другом примере, логическая связь может содержать связь по времени между множеством веб-страниц, причем каждой веб-странице соответствует определенный период времени в случае, когда извлекается каждая из множества веб-страниц и осуществляется поиск. Например, в случае, если две или более веб-страницы были открыты пользователем в течение короткого периода времени (например, в течение 10 минут), то эти страницы могут быть связанными по времени. В другом примере логические связи могут содержать подобие веб-адресов по меньшей мере части из множества веб-страниц. Например, две или более веб-страниц, загруженные из того же домена (например, cnet.com) являются также связанными. Еще в другом аспекте существуют логические связи между первой страницей и второй страницей в случае, если вторая страница была открыта с помощью ссылки, встроенной в первую страницу. В других аспектах могут различаться другие типы логических связей между веб-страницами.
[0047] Впоследствии, диспетчер кэша 116 может использовать модуль кластеризации 304, представленный на Фиг. 3 для связи одной или более веб-страниц 220 с одним или несколькими кластерами 312 в зависимости от логических связей, установленных между одной или более открытыми веб-страницами 220 и ранее кэшированными веб-страницами, которые могут быть уже связанными с одним или несколькими кластерами 312. В одном аспекте, например, в случае, если не установлено никакой логической связи между веб-страницей и другими веб-страницами в кэше, то эта веб-страница не может быть связана с любым из кластеров 312, и, таким образом, хранится отдельно в кэше браузера 120. Тем не менее, в другом аспекте, отдельная веб-страница 220 и все ресурсы, связанные с ней (например, код, текст, изображения, мультимедиа, ссылки, встроенные рекламные объявления, и т.д.) могут быть связаны с отдельным кластером 312, с которым не связана ни одна другая веб-страница. Это отдельная связь веб-страница-кластер позволяет логически группировать все ресурсы, связанные с определенной веб-страницей в один кластер, связанный только с этой веб-страницей, что позволяет еще быстрее получать ресурсы веб-страницы и предотвращает случайное удаление ресурсов веб-страницы, связанной с этим кластером в процессе очистки кэша браузера 312.
[0048] Например, в одном аспекте модуль кластеризации 304 может быть дополнительно выполнен с возможностью декластеризации кластера (то есть, отделения части контента кластера). Например, если кластер связан с несколькими связанными веб-страницами, при этом одна или несколько из связанных веб-страниц могут быть декластеризованными из кластера. В другом примере, если кластер связан с одной веб-страницей, часть содержимого веб-страницы (например, ресурсоемкие флэш-анимации, встроенные рекламы, изображения с высоким разрешением и т.д.) могут быть декластеризованными из кластера. Декластеризация кластера может быть использована, например, для облегчения удаления декластеризованного контента из кэша браузера 312. В одном типовом аспекте, менеджер кэша 116 может учитывать следующие критерии, оценивающие важность содержимого вебстраницы для пользователя при определении декластеризации определенного содержимого из кластера: время последнего запроса конкретного содержимого кластера (например, открытие веб-страницы, загрузка изображения, доступ из URL, и т.д.); время, затраченное пользователем при просмотре кластеризованной веб-страницы; количество операций, выполняемых на веб-странице (например, просмотр встроенного мультимедийного контента, открытие URL-адресов, и т.д.); сделана ли пользователем закладка на кластеризованной вебстранице. На основании этих и других критериев, менеджер кэша 116 может определить, какой из кластеров является более важным для пользователя, а какой менее важным. Например, кластер, связанный с веб-страницами, недавно открытыми или веб-страницами, на просмотр которых пользователь затратил больше времени (например, более 5 минут) и выполнено большое количество операций (например, 3 или более операций), для менеджера кэша 116 может считаться более важным, чем кластер, связанный со старыми веб-страницами (например, просмотренными пользователем более 2 часов назад), или которые пользователь просматривает быстро (например, менее чем за 1 минуту). Менеджер кэша 116 может затем предоставить модулю кластеризации 304 команды для декластеризации содержимого веб-страницы, связанной с менее важными веб-страницами. Декластеризация определенного контента веб-страницы позволяет упростить удаление этого контента из кэша браузера 120.
[0049] В одном типовом аспекте кластер, связанный с одной или более веб-страницами может содержать флаг неразрывности, гарантирующий, что никакое содержимое, связанное с этим кластером, не является декластеризованным и удаляется отдельно от другого содержимого этого кластера. Например, флаг неразрывности может быть использован для информации, связанной с определенной веб-страницей в случае только, если веб-страница полностью загружена, так что прямо с этого момента найденные и сохраненные ресурсы и информация, связанные с уникальным идентификатором того, что конкретная веб-страница стала по меньшей мере частью целого неразрывного кластера, причем статус или целостность которого может быть проверена с помощью менеджера кэша 116. В другом примере, флаг неразрывности используется в кластере, содержащем несколько связанных веб-страниц, показывает, что все веб-страницы, связанные с этим кластером, должны быть обработаны с помощью менеджера кэша 116 совместно для целей управления и удаления этих страниц. Если извлекаемые и кэшируемые ресурсы и информация, связанные с идентификатором веб-страницы, не имеют флага неразрывности, менеджер кэша 116 может управлять или удалять эти ресурсы и информацию в кэше браузера 120 отдельно от другого содержимого данного кластера. Удаление флага неразрывности из элементов кэша, связанных с идентификатором веб-страницы может привести к отделению ресурсов и информации, связанных с существующим кластером в кэше браузера 120.
[0050] В дополнительном аспекте диспетчер кэша 116 может поддерживать список/таблицу кластеров 312, содержащую информацию о логически связанных веб-страницах 220. В одном типовом аспекте кластеры 312, могут храниться отдельно от процессора 114 в оперативной памяти, используемой для запуска менеджера кэша 116, как показано на Фиг. 3. В одном типовом аспекте кластеры 312 могут храниться в кэше 120 браузера вместе с другим содержимым в кэше 120, как показано на Фиг. 4. Независимо от того, где хранятся эти кластеры, каждый кластер 312 в качестве примера может иметь конфигурацию, показанную на Фиг. 4. В частности, как показано, каждый кластер 312 может содержать уникальный идентификатор кластера, дату создания кластера, которая может соответствовать дате загрузки наиболее ранней веб-страницы, связанной с этим кластером, список идентификаторов веб-страниц из кэша 120, связанный с каждым кластером, и флаг неразрывности (не показан).
[0051] В общем, на Фиг. 4 представлена схема, поясняющая типовую конфигурацию 400 кэш-памяти, связанной с веб-браузером. Более конкретно, как представлено на Фиг. 4, в данный момент веб-страницы открыты во вкладках 210, 212, 214 веб-браузера 124, а также открытые ранее (а теперь закрытые) веб-страницы могут быть логически представлены в виде блоков данных 402, 404, 406 и 408 в кэш-памяти браузера 120. Каждый блок данных 402-408 может содержать, но не ограничивается этим, уникальный идентификатор (например, GUID), URL-адрес(а) на веб-странице, сохраненной в нем, дату последнего поиска веб-страницы, например, хост-сервер и сервер приложений/контент-провайдеров 104а-с, и данные, связанные с веб-страницей. В одном аспекте, информация, содержащаяся в каждом блоке данных 402-408 может быть собрана из различных частей кэша 232-240 кэша браузера 120. Модуль кластеризации 304 может быть выполнен с возможностью связи блоков данных 402 и 404 с Кластером #1410, в соответствии с определенной логической связью между множеством веб-страниц, открытых во Вкладках 210, 212, и соответствующих блоков данных 406 и 408 с Кластером #2412, в соответствии с определенной логической связью между множеством веб-страниц, открытых во Вкладках 214, 216. В одном аспекте, отдельный блок данных может быть связан с двумя или более различными кластерами в случае, если содержимое этих блоков данных логически связано с двумя или более кластерами.
[0052] Например, снова возвращаясь к Фиг. 2, веб-страницы 1-3, открытые во вкладках 210, 212, 214 с помощью модуля определения логической связи 302 могут быть определены как логически связанные друг с другом на основе, например, временной связи между этими веб-страницами, в связи с соответствующей каждой веб-странице времени, когда каждая из множества веб-страниц изначально была загружена или перезагружена, в зависимости от сходства веб-адресов этих веб-страниц, в зависимости от связи по меньшей мере с одним поисковым запросом пользователя или других критериев, и сопоставлены модулем кластеризации 304 с Кластером #1226. В то время как, веб-страницы 4 и 5 открыты во вкладках 216 и 218, соответственно, могут быть найдены с помощью модуля определения логической связи 302 логически несвязанными и сопоставлены модулем кластеризации 304 с Кластером #2228 и Кластером #3230, соответственно.
[0053] В другом аспекте, менеджер кэша 116 может также использовать модуль определения объема кэша 306, показанный на Фиг. 3 для контроля используемого объема кэша браузера 120 и определения, когда используемый объем кэша браузера 120 равен или превышает заданное пороговое значение. Пороговое значение может быть определено как максимальный объем кэша (например, 85% от максимального объема кэша), который должен обслуживаться менеджером кэша 116 с целью предотвращения неожиданной перегрузки кэша. Это пороговое значение может быть указано (и при необходимости подстроено) менеджером кэша 116 и может зависеть от общего объема кэша браузера 120, типа устройства 102 (например, смартфон, персональный компьютер и т.д.), типа приложения веб-браузера 124 (например, Яндекс, Chrome и т.д.), среднего размера загружаемых веб-страниц, частоты загрузки новых веб-страниц, типа сетевого соединения (например, сотовое, Ethernet), доступной пропускной способности сети, или других критериев. Как правило, кэш-браузер 120 может поддерживаться при 85% объема памяти с целью гарантирования того, что всегда достаточно места в кэше браузера 120 для того, чтобы полностью загрузить новую веб-страницу без необходимости удаления другой веб-страницы из кэша браузера 120.
[0054] В другом аспекте в случае, если модулем определения объема кэша 306 определяется, что текущий размер использования кэша браузера 120 равен или превышает заданное пороговое значение, то диспетчер кэша 116 может использовать модуль идентификации кластера 308 для идентификации информации, связанной с одним или более кластерами 312 и определения, с учетом выявленной информации, веб-страницы или кластера веб-страниц, для удаления из кэша 120 с целью уменьшения используемого объема кэша веб-браузера 120 ниже порогового значения. Модуль идентификации кластера 308 может использовать различные критерии для определения того, какие веб-страницы должны удаляться в первую очередь в зависимости от логических связей между кэшированными веб-страницами. В одном типовом аспекте кластеры с большим числом связанных веб-страниц могут иметь более высокий приоритет перед кластерами с меньшим количеством связанных веб-страниц в зависимости от предположения, что пользователи, которые просматривают много связанных веб-страниц (например, контекстуально, по времени или иным образом) больше интересуются этими веб-страницами и, таким образом, скорее всего, вернутся к одной из этих веб-страниц (например, запрос перезагрузки одной из этих веб-страниц из кэша браузера 120), а потом в случае, когда пользователь просматривает несколько несвязанных веб-страниц или только несколько связанных веб-страниц. С этой целью, отдельная или самостоятельная веб-страница, не связанная с существующими кластерами в кэше браузера 120, может быть удалена первой, следующая за кластером с только несколькими связанными веб-страницами (например, от 2 до 5 веб-страниц), а затем следующая за кластерами с большим количеством связанных веб-страниц (например, более 5 веб-страниц).
[0055] При принятии решения, удалять одну или несколько страниц в идентифицированном кластере (или даже весь кластер веб-страниц), модуль идентификации кластера 308 может учитывать дату создания кластера и/или дату загрузки отдельных веб-страниц, связанных с этим кластером. Например, модуль идентификации кластера 308 может определить для удаления наиболее ранние веб-страницы в пределах идентифицированной первой группы. В другом примере, модуль идентификации кластера 308 может удалить весь кластер страниц, если дата создания кластера или дата загрузки последней (то есть, наиболее поздней) веб-страницы, связанной с этим кластером, превышает заданный порог времени (например, 2 часа). В одном аспекте, если кластер имеет установленный флаг неразрывности, модуль идентификации кластера 308 может назначить только для удаления все или ни одну из веб-страниц, связанных с этим кластером. Другими словами, содержимое этого кластера (содержит ли он одну или более веб-страниц) не может быть удалено отдельно друг от друга, они должны удаляться вместе. В другом аспекте, модуль идентификации кластера 308 может учитывать объем веб-страниц, хранящихся в кэше браузера 120 для гарантирования того, что удаление указанных веб-страниц (или кластеров веб-страниц) фактически не приводит к уменьшению общего используемого объема кэша браузера 120 ниже порогового значения. Таким образом, модуль идентификации кластера 308 может идентифицировать одну или несколько веб-страниц для удаления из кэша браузера 120.
[0056] В другом аспекте, менеджером кэша 116 может использоваться модуль удаления кэша 310, представленный на Фиг. 3 для удаления из кэша браузера 120, например, одной или нескольких веб-страниц (или кластеров веб-страниц), определенных модулем идентификации кластера 308. В частности, модуль удаления кэша 310 принимает от модуля идентификации кластера 308 уникальные идентификаторы веб-страниц в кэше браузера 120, которые были отмечены для удаления. Модуль удаления кэша 310 затем декластеризует (т.е. выделяет) из кластеров уникальные идентификаторы, идентифицирующие веб-страницы. Модуль удаления кэша 310 затем удаляет из кэша браузера 120 по меньшей мере часть по меньшей мере одного или более декластеризованных веб-страниц. Модуль удаления кэша 310 может также удалить из всех кластеров записи удаленных веб-страниц, и, в случае, если весь кластер веб-страниц будет отмечен для удаления, удалит записи этого кластера из кэша браузера 120.
[0057] Например, в одном аспекте один кластер может быть связан с отдельной веб-страницей. В этом случае клиентское приложение веб-браузера 124 может запросить менеджер кэша 116 в отношении целостности конкретного кластера в кэше браузера 120, таким образом, что вся веб-страница может быть перегружена в браузере онлайн или в автономном режиме, не требуя никакого содержимого веб-страницы с хост-сервера и/или сервера приложений/контент-провайдеров 104а-с.В одном аспекте кластер, связанный с одной веб-страницей может быть помечен флагом неразрывности для отображения, что никакое содержимое связанной с ним веб-страницы не будет удалено из кэша 120, так что веб-страница извлекается из кэша браузера 120 целиком по запросу браузера.
[0058] На Фиг. 5 представлен типовой способ логической организации и управления кэшем браузера согласно одному типовому аспекту. Способ 500 может быть реализован с помощью системы Фиг. 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.
[0059] На Фиг. 6 представлен один типовой аспект компьютерной системы 5, которая может использоваться для реализации описанных устройств и способов логической организации и управления кэшем веб-браузера. Компьютерная система 5 может содержать (но не ограничена ими) компьютер, ноутбук, планшет, смартфон, мобильное устройство, сетевой сервер, роутер или обрабатывающее устройство другого типа. Как показано, компьютерная система 5 может содержать один или более аппаратных процессоров 15, память 20, один или несколько жестких дисков 30, оптический(е) привод(ы) 35, последовательный(е) порт(ы) 40, графический адаптер 45, звуковую карту 50 и сетевой адаптер 55, соединенные системной шиной 10. Системная шина 10 может представлять собой любую из нескольких типов шинных структур, включая шину памяти, контроллер памяти, периферийную шину и локальную шину, использующую любую из множества известных типов шинной архитектуры. Центральный процессор 15 может содержать один или более процессоров Intel Core 2 Quad 2.33 ГГц или другие типы микропроцессоров.
[0060] Системная память 20 может содержать постоянную память (ПЗУ) 21 и оперативную память (ОЗУ) 23. Память 20 может быть реализована как динамическое ОЗУ, стираемое программируемое ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любая другая архитектура памяти. ПЗУ 21 хранит базовую систему ввода/вывода 22 (BIOS), содержащую основные подпрограммы, которые помогают передавать информацию между модулями компьютерной системы 5, например, во время запуска. В ОЗУ 23 хранится операционная система 24 (ОС), например, Windows 7 Professional или другой тип операционной системы, который отвечает за управление и координацию процессов и распределение аппаратных ресурсов в компьютерной системе 5. Память 20 также хранит приложения и программы 25. В памяти 20 также хранятся различные исполняемые данные 26, используемые программами 25.
[0061] Компьютерная система 5 может дополнительно содержать жесткий(е) диск(и) 30, например SATA HDD, и оптический(е) привод(ы) 35 для чтения или записи съемного оптического диска, например CD-ROM, DVD-ROM или другого оптического носителя. Диски 30 и 35 и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых инструкций, структур данных, приложений и программных модулей/подпрограмм, реализующих описанные в данной заявке алгоритмы и способы. Несмотря на то, что типовая компьютерная система 5 использует магнитные и оптические диски, специалисты в данной области техники согласятся с тем, что в альтернативных аспектах компьютерной системы 5 также могут быть использованы другие типы машиночитаемых носителей, способные хранить данные, доступные компьютерной системе 5, например, магнитные кассеты, флэш-карты памяти, цифровые видеодиски, ОЗУ, ПЗУ, стираемое программируемое ПЗУ и другие типы памяти.
[0062] Компьютерная система 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, например, к сети Интернет.
[0063] В различных аспектах, системы и способы, описанные в данной заявке, могут быть реализованы на аппаратном обеспечении, прикладном программном обеспечении, системном программном обеспечении или любой из их комбинаций. При реализации в виде прикладного программного обеспечения, способы могут быть сохранены в виде одной или нескольких команд или коде на постоянном машиночитаемом носителе. Машиночитаемый носитель содержит хранилище данных. В качестве примера, а не ограничения, подобный машиночитаемый носитель может представлять собой ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любой другой тип электрического, магнитного или оптического носителя, или любой другой носитель, который может быть использован для переноса или хранения желаемого программного кода в виде команд или структур данных, к которым может обращаться процессор компьютера общего назначения.
[0064] Для ясности стоит отметить, что не все обычные признаки аспектов описаны в данной заявке. Следует иметь в виду, что при модификации какого-либо фактического варианта реализации технологии, необходимо принять ряд специфичных для варианта осуществления решений для достижения конкретных целей разработчика, и эти конкретные цели будут отличаться для различных вариантов осуществления и для различных разработчиков. Следует иметь в виду, что подобная разработка может быть сложной и затратной по времени, но, тем не менее, не будет представлять сложности для опытных специалистов в данной области техники, обладающих преимуществом от прочтения настоящего описания.
[0065] Кроме того, следует иметь в виду, что фразеология и терминология используется здесь в целях описания, а не ограничения, таким образом, терминология или фразеология настоящего описания должна интерпретироваться специалистами в данной области техники с учетом представленных здесь указаний и руководства в сочетании со знаниями специалистов в соответственной(ых) области(ях) техники. Более того, ни одному термину в описании или формуле не следует приписывать особого или специального смысла, если явно не указано иное.
[0066] Различные описанные в данной заявке аспекты охватывают нынешние и будущие известные эквиваленты известных модулей, указанных в данном описании в целях иллюстрации. Кроме того, несмотря на представленные и описанные аспекты и приложения, специалистам в данной области техники, обладающим преимуществом от прочтения настоящего описания, будет очевидно, что возможна реализация многих других вышеописанных модификаций без отступления от представленной здесь концепции технологии.