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

Иллюстрации

Показать все

Заявленное изобретение относится к способу и системе для предоставлении возможности клиенту в филиале извлекать данные из локального поддерживаемого хост-узлом кэша вместо сервера приложений по Глобальной вычислительной сети (WAN). Технический результат состоит в предоставлении улучшения в отношении времени задержки и уменьшения полного трафика WAN. Для этого сервер в центре обработки и хранения данных может быть выполнен с возможностью предоставлять либо список хэшей, либо запрошенные данные на основе того, разрешена или нет система поддерживаемых хост-узлом кэшей. Поддерживаемый хост-узлом кэш на стороне клиента может предоставлять данные в клиент на основе хэшей. Хэши могут быть сформированы, чтобы предоставлять контрольную сумму данных, которая может использоваться для того, чтобы эффективно индексировать данные. 3 н. и 17 з.п. ф-лы, 10 ил.

Реферат

Область техники, к которой относится изобретение

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

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

Конфигурация сети передачи данных, как правило, реализуемой в деловых окружениях, заключает в себе централизацию хранения данных в центре обработки и хранения данных и предоставление данных в соответствии с этими данными (к примеру, через сервер в центре обработки и хранения данных) во множество клиентских вычислительных устройств по глобальной вычислительной сети. Множество клиентских вычислительных устройств может находиться в одном или более филиалов WAN. Филиалы могут представлять множество вычислительных устройств, функционально соединенных друг с другом с помощью локальной вычислительной сети (LAN), которая имеет, по меньшей мере, одно подключение к WAN. LAN может соединяться с WAN через маршрутизатор или другое мостовое устройство, как известно в данной области техники. В больших корпоративных окружениях центр обработки и хранения данных может быть расположен удаленно от филиала(ов). Приложения, выполняющиеся на клиентских устройствах, могут требовать данных от центра обработки и хранения данных (к примеру, обслуживаемого через центр приложений в центре обработки и хранения данных) для работы. Значительный трафик данных в глобальной вычислительной сети (WAN) может, в общем, уменьшать полосу пропускания и увеличивать время задержки для запросов на данные по WAN. Это может увеличивать времена отклика приложений в вычислительных устройствах в филиале.

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

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

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

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

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

Фиг. 1 иллюстрирует блок-схемы вычислительной системы, которая может работать в соответствии с описанными вариантами осуществления;

Фиг. 2 иллюстрирует общую систему оптимизатора WAN;

Фиг. 3 иллюстрирует вариант осуществления системы процесса извлечения данных с использованием поддерживаемого хост-узлом кэша;

Фиг. 4 иллюстрирует формат записи для использования с поддерживаемым хост-узлом кэшем;

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

Фиг. 6 иллюстрирует вариант осуществления сети с равноправными узлами с использованием распределенного кэша;

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

Фиг. 8 иллюстрирует вариант осуществления процесса на стороне сервера с использованием системы по фиг. 3;

Фиг. 9 иллюстрирует вариант осуществления процесса на стороне клиента с использованием системы по фиг. 3; и

Фиг. 10 иллюстрирует формат записи с использованием параметра истечения срока действия.

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

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

Следует также принимать во внимание, что, если термин не задан в явной форме в данном патенте с помощью предложения "При использовании в данном документе термин '____' задан таким образом, чтобы означать..." или аналогичного предложения, отсутствует намерение ограничивать значение данного термина, явно или косвенно, пределами его очевидного или обычного значения, и этот термин не должен интерпретироваться как ограниченный по объему на основе какого-либо утверждения, сделанного в любом разделе данного патента (за исключением формулировок формулы изобретения). В рамках, в которых на любой термин, приведенный в формуле изобретения в конце данного патента, ссылаются в данном патенте способом, согласованным с единственным значением, это осуществляется исключительно для понятности, с тем чтобы не вводить читателя в заблуждение, и нет намерения, чтобы данный термин формулы был ограничен, косвенно или иным образом, этим единственным значением. В заключение, если элемент формулы изобретения не определен посредством изложения слова "средства" и функции без изложения какой-либо структуры, нет намерения, что объем элемента формулы изобретения должен интерпретироваться на основе применения 35 U.S.C. §112, шестой параграф.

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

Со ссылкой на фиг. 1, примерная система для реализации этапов заявленного способа и блоков заявленного устройства включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не только, процессор 120, системное запоминающее устройство 130 и системную шину 121, которая соединяет различные компоненты системы, в том числе системное запоминающее устройство, с процессором 120.

Компьютер 110 может работать в сетевом окружении с использованием логических подключений к одному или более удаленных компьютеров, таких как удаленный компьютер 180, через локальную вычислительную сеть (LAN) 171 и/или глобальную вычислительную сеть (WAN) 173 через модем 172 или другой сетевой интерфейс 170.

Компьютер 110 типично включает в себя множество машиночитаемых носителей, которые могут быть любыми доступными носителями, к которым может осуществляться доступ посредством компьютера 110, и включают в себя энергозависимые и энергонезависимые носители, съемные и стационарные носители. Системное запоминающее устройство 130 включает в себя компьютерные носители хранения данных в форме энергозависимого и/или энергонезависимого запоминающего устройства, к примеру постоянного запоминающего устройства (ROM) 131 и оперативного запоминающего устройства (RAM) 132. ROM может включать в себя базовую систему 133 ввода-вывода (BIOS). RAM 132 типично содержит данные и/или программные модули, которые включают в себя операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137. Компьютер 110 также может включать в себя другие съемные/стационарные, энергозависимые/энергонезависимые компьютерные носители хранения данных, такие как жесткий диск 141, накопитель 151 на магнитных дисках, который считывает или записывает на магнитный диск 152, и накопитель 155 на оптических дисках, который считывает или записывает на оптический диск 156. Жесткий диск 141, 151 и 155 может взаимодействовать с системной шиной 121 через интерфейсы 140, 150.

Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие как клавиатура 162 и указательное устройство 161, обычно упоминаемое как мышь, шаровой манипулятор (трекбол) или сенсорная панель. Другие устройства ввода (не проиллюстрированы) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода часто подключены к процессору 120 через пользовательский интерфейс 160 ввода, который соединен с системной шиной, но могут быть подключены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип дисплейного устройства также подключен к системной шине 121 посредством такого интерфейса, как видеоинтерфейс 190. Помимо монитора, компьютеры также могут включать в себя другие периферийные устройства вывода, например динамики 197 и принтер 196, которые могут быть подключены через периферийный интерфейс 190 вывода.

Системы оптимизаторов WAN

Фиг. 2 иллюстрирует глобальную вычислительную сеть (WAN), реализующую систему 200 оптимизатора WAN, общеизвестную в данной области техники. Система оптимизатора WAN может, в общем, развертываться на обеих сторонах подключения к глобальной вычислительной сети.

Системы оптимизаторов WAN, в общем, заключают в себе двухкомпонентные аппаратные устройства: компонент 201 на стороне сервера, в общем, реализуемый в центре 202 обработки и хранения данных на одной стороне WAN 203, и компонент 204 на стороне клиента в филиале 206. Во многих случаях устройство компонента оптимизатора WAN (серверного 201 или клиентского компонента 204) может быть расположено после WAN-маршрутизатора 208 (к примеру, соединено с маршрутизатором на порту, противоположном от WAN-подключения). Эти устройства 201 и 204 могут быть выполнены с возможностью настраивать трафик приложений, предназначенный для WAN 203, так что производительность приложений в WAN 203 повышается. Результатом может быть ускорение WAN и меньшее время отклика приложений. Это позволяет обеспечивать для конечных пользователей в филиале, а также для мобильных сотрудников (подключенных, например, через переносной компьютер или другое мобильное вычислительное устройство) более высокие скорости доступа к важным приложениям.

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

Сервер 215 приложений может соединяться с базой 217 данных (к примеру, расположенной в центре обработки и хранения данных или удаленно от центра обработки и хранения данных) для предоставления данных в приложения, выполняемые посредством сервера 215 приложений и предоставленные в клиенты 211 в филиале по WAN 203. Конечно, вместо конфигурации филиала с использованием LAN 210, фиг. 2 является в равной степени применимой к любому клиентскому устройству, подключенному к WAN для приема трафика из сервера 215 по WAN, к примеру, к удаленным переносным компьютерам, соединяемым через Интернет.

Функциональность оптимизатора WAN

В общем, устройство 201 оптимизатора WAN на стороне сервера может быть выполнено с возможностью анализировать и индексировать пакеты данных, инициированные посредством сервера центра обработки и хранения данных (к примеру, сервера 215), сжимать пакеты данных на основе проверки и передавать пакеты данных по WAN 203. Компонент 204 оптимизатора WAN на стороне клиента может быть выполнен с возможностью принимать сжатые данные из компонента 201 на стороне сервера по WAN 203, распаковывать пакеты данных и предоставлять данные в запрашивающее клиентское 211 устройство в филиале 206.

В некоторых системах оптимизаторов WAN устройство 201 компонента на стороне сервера может индексировать данные для диспетчеризации передачи (к примеру, по приоритету) данных. Устройство компонента оптимизатора WAN в клиенте 204 также может быть выполнено с возможностью кэшировать данные на основе индексации, выполняемой посредством серверного устройства 201. Когда второй запрос из клиента 211 в филиале 206 принимается для идентичных данных в устройстве 204 оптимизатора WAN на стороне клиента, устройство 204 оптимизатора WAN на стороне клиента может просто возвращать данные из своего кэша вместо обращения в WAN 203.

Проблемы с оптимизаторами WAN

Как проиллюстрировано на фиг. 2, существующие системы 200 оптимизаторов WAN, в общем, требуют установки устройства 201 первого компонента на конце сервера, таком как центр 202 обработки и хранения данных, и устройства 204 второго компонента на конце клиента, таком как филиал 206, при этом центр 202 обработки и хранения данных и филиал 206 обмениваются данными по глобальной вычислительной сети (WAN) 203. В окружениях, имеющих множество филиалов 206, возможно, должно быть установлено несколько устройств 204 оптимизаторов на стороне клиента.

Работа нескольких устройств компонентов повышает затраты на установку и техническое обслуживание. В частности, поскольку оптимизаторы WAN требуют очень подробной (т.е. с высокой степенью детализации) проверки трафика данных, большой объем служебной информации обработки может накладываться на работы системы оптимизатора. Кроме того, поскольку процесс проверки существующих оптимизаторов WAN требует значительного уровня детализации частей данных (т.е. оптимизатор, в общем, должен понимать то, что представляют собой данные, так что он может классифицировать данные или иным способом управлять данными), оптимизаторы WAN, в общем, не могут управлять зашифрованными данными (к примеру, когда данные отправляются по сети с использованием протокола сквозного шифрования, такого как протокол IP Security, или IPSec, либо протокола защищенных сокетов, или SSL). В этом случае, оптимизаторы WAN могут не иметь влияния на трафик WAN, поскольку они не могут управлять этим потоком данных (компонент на стороне сервера оптимизатора WAN может не понимать зашифрованные данные и, таким образом, существующая система оптимизатора WAN может не иметь возможности сжимать или индексировать зашифрованные данные). Кроме того, поскольку оптимизаторы WAN должны анализировать и понимать данные, сквозная безопасность не может легко предоставляться с использованием существующих оптимизаторов WAN. Кроме того, поскольку безопасность, в общем, является основной проблемой в большинстве корпоративных окружений, в которых WAN включает в себя общедоступный трафик (к примеру, подключение к Интернету), оптимизатор WAN может не предоставлять полезные преимущества по сжатию и задержке для защищенного (к примеру, зашифрованного) трафика.

Оптимизация с помощью поддерживаемого хост-узлом кэша

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

Далее описывается общая работа системы по фиг. 3. Центр 302 обработки и хранения данных предоставляет данные через сервер 315 приложений в клиент 311 в филиале 306. Филиал 306 может представлять географическое местоположение, в котором множество клиентских компьютеров 311 соединяются через локальную вычислительную сеть или LAN 310. Аналогично фиг. 2, клиентские компьютеры 311 могут обмениваться данными с сервером 315, чтобы запрашивать и извлекать данные, хранимые и управляемые в центре 302 обработки и хранения данных. Клиентские компьютеры 311 могут извлекать данные через соединение между LAN 310 и WAN 303. Подключения к WAN могут осуществляться через маршрутизаторы 308. В этом варианте осуществления, поддерживаемый хост-узлом кэш 320 также соединен с LAN 310 в филиале 306. Поддерживаемый хост-узлом кэш 320 может быть реализован на конкретном вычислительном устройстве или может представлять распределенный кэш, который реализуется во множестве вычислительных устройств, например, когда клиенты работают в режиме равноправных узлов (дополнительно поясняется ниже). Поддерживаемый хост-узлом кэш 320 может быть функционально соединен с клиентом через локальную вычислительную сеть. В некоторых вариантах осуществления, поддерживаемый хост-узлом кэш может постоянно размещаться на устройстве, идентичном устройству клиента, запрашивающего данные, например любого из клиентов 311.

Клиенты 311 по фиг. 3 могут программироваться, чтобы отправлять запросы на данные на сервер 315. Сервер 315 приложений может программироваться, чтобы определять то, разрешено или нет клиенту 311, запрашивающему данные, использовать поддерживаемый хост-узлом кэш 320. Сервер 315 приложений затем может предоставлять либо данные, запрошенные посредством клиента 311, либо список идентификаторов, которые конкретно идентифицируют данные, запрошенные посредством клиента 311. Сервер 315 приложений может формировать идентификаторы (к примеру, с помощью алгоритма), либо другой вычислительный объект или приложение (к примеру, система управления базами данных) может формировать идентификаторы и сохранять их в местоположении (к примеру, в базе данных в центре обработки и хранения данных) для извлечения посредством сервера приложений. Примером идентификатора является хэш, который формируется посредством хэш-функции, причем хэш может выступать в качестве контрольной суммы запрошенных данных (дополнительно поясняется ниже). Если сервер подключен к базе данных 317, хэши могут сохраняться наряду с данными в базе данных 317 или хэшированы посредством сервера 315, по мере того как данные извлекаются для передачи в клиент.

Некоторым клиентам 311 может быть разрешено использовать поддерживаемый хост-узлом кэш 320, тогда как некоторым клиентам может быть запрещено (к примеру, унаследованным вычислительным устройствам и системам). Когда клиенту 311 разрешено использовать поддерживаемый хост-узлом кэш 320, клиент 311 может программироваться, чтобы принимать либо запрашиваемые данные из сервера 315 приложений, либо набор хэшей из сервера 315 приложений, который соответствует запрошенным данным. Клиент 311 может быть выполнен с возможностью использовать хэши, чтобы извлекать кэшированные данные из поддерживаемого хост-узлом кэша 320 вместо сервера 315 приложений. Поддерживаемый хост-узлом кэш 320 может программироваться, чтобы сохранять принимаемые данные 326, индексированные посредством соответствующих хэшей, которые могут выступать в качестве ключей 327 записей. Поддерживаемый хост-узлом кэш 320 дополнительно может программироваться, чтобы извлекать и возвращать данные 326, соответствующие хэш-значению или ключу 327. Поддерживаемый хост-узлом кэш 320 может сохранять индексированные данные с помощью любого известного способа перечисления, такого как таблица 325 или другой программный объект.

Хэш-функции и хэш-индексация

Хэш-функция, в общем, является алгоритмом или четкой процедурой для приема некоторых данных и вывода относительно небольшого значения (к примеру, небольшого целого числа). Значения, возвращаемые посредством хэш-функции, могут называться хэш-значениями, хэш-кодами, хэш-суммами или просто хэшами. Кроме того, в зависимости от конкретной хэш-функции, хэш может предоставлять статистически уникальную контрольную сумму части данных (к примеру, сегмента, пакета, блока и т.д.). Иногда эти хэш-функции могут называться криптографическими хэш-функциями. Контрольная сумма хэша может использоваться для того, чтобы выполнять анализ целостности данных для данных, соответствующих хэшу. Например, когда данные возвращаются на основе хэша, данные могут вводиться в идентичную хэш-функцию (если известна), чтобы возвращать хэш. Если хэши совпадают, то может быть статистически высокая вероятность того, что принимаемые данные являются данными, идентичными данным, используемым для того, чтобы формировать хэш.

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

Работа поддерживаемого хост-узлом кэша

В одном варианте осуществления системы, поддерживаемый хост-узлом кэш 320 может содержать хэш-таблицу 325, которая используется для того, чтобы индексировать принимаемые данные 326 посредством хэш-значений 327. Поддерживаемый хост-узлом кэш 320 может поддерживаться, например, как таблица базы данных или другая функция перечисления или регистр, в котором данные могут извлекаться посредством хэш-значения. Любой механизм извлечения (к примеру, вызов на языке запросов), известный в данной области техники, может использоваться для того, чтобы запрашивать поддерживаемый хост-узлом кэш на предмет данных на основе хэш-значений (к примеру, SQL).

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

Вариант осуществления схемы индексации поддерживаемого хост-узлом кэша может использовать конкретный формат записи, как подробнее проиллюстрировано на фиг. 4. В варианте осуществления индексации по фиг. 4, хранилище 400 индексированных данных может содержать запись 401, имеющую часть 402 данных, индексированную посредством ключа 403 записи. Ключ 403 записи может быть хэшем записи (где хэш соответствует общей хэш-функции, используемой в описанной системе в данном документе). Ключ или хэш 403 записи может быть криптографически уникальным идентификатором (CUI). CUI может иметь два основных свойства. Во-первых, CUI может быть статистически уникальным. Аналогично общим схемам индексации базы данных, ключ записи, возможно, должен быть уникальным, чтобы предотвращать дублированные записи объектов в таблице. Соответственно, CUI может быть идентификатором, который извлечен так, что существует высокая вероятность того, что он является уникальным для отдельной ситуации или приложения. Например, в информационной системе, как описано выше, CUI может быть статистически уникальным, если вероятность того, что криптографически уникальный идентификатор может извлекаться из идентичной части данных, является небольшой для диапазона значений данных. Во-вторых, CUI может соответствовать конкретной пользовательской хэш-функции, к примеру общей хэш-функции, используемой посредством сервера, клиента и поддерживаемого хост-узлом кэша. В случаях, когда хэшем является система шифрования на основе пары ключей, CUI может соответствовать конкретному открытому или закрытому ключу для конкретного алгоритма шифрования, используемого для того, чтобы формировать хэш. Например, CUI может извлекаться из открытого ключа с использованием алгоритма шифрования. В некоторых вариантах осуществления, CUI может быть проверен на соответствие или совпадение со своим открытым ключом с помощью алгоритма.

Записи 401 по фиг. 4 могут использоваться для того, чтобы кэшировать данные, индексированные посредством хэш-значений. Хэш-ключ 403 записи CUI может использоваться для того, чтобы находить каждую запись 401 и извлекать часть 402 данных, соответствующую хэш-ключу 403. В одном варианте осуществления, записи 401 могут быть общедоступными для локальной сети, т.е. индексированная информация может не быть зашифрованной (кроме возможно хэш-ключей). Тем не менее другие варианты осуществления, описанные ниже, могут шифровать части 402 данных или записи 401.

Несколько поддерживаемых хост-узлом кэшей

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

Распределенная хэш-таблица с использованием сети с равноправными узлами

В одном варианте осуществления, клиенты могут быть частью сети с равноправными узлами. Фиг. 6 иллюстрирует вариант осуществления с использованием сети с равноправными узлами, которая реализует распределенный поддерживаемый хост-узлом кэш 600. Распределенный поддерживаемый хост-узлом кэш может представлять независимую от сервера систему постоянной индексации. Распределенный кэш 600 может поддерживаться в группе равноправных объектов 601-604, которые формируют сеть 605 с равноправными узлами. Записи в распределенном поддерживаемом хост-узлом кэше 600 могут логически разделяться или группироваться с помощью, например, хэш-функции. Хэш-функция может группировать или кластеризовать записи в некотором логическом порядке так, что извлечение может становиться более эффективным. Хэш-функция может группировать записи организованным образом, тем самым делая поиск более эффективным. Распределенный поддерживаемый хост-узлом кэш может иметь два основных свойства: 1) распределение содержимого записи по множеству узлов/клиентов/равноправных узлов, таких как узлы 601-604; и 2) механизм маршрутизации (не показан), который предоставляет способ для публикации и извлечения записей.

В варианте осуществления по фиг. 6, сервер может быть выполнен так, как описано выше, чтобы предоставлять хэш данных в любой из клиентов 601-604, запрашивающих информацию. Клиент затем может отправлять широковещательное сообщение с запросом, включающее в себя хэш, в сеть 605 с равноправными узлами, чтобы находить равноправный узел в сети с равноправными узлами, который содержит данные, соответствующие хэшу. Если равноправный узел ранее запрашивал и сохранял данные, то равноправный узел может отвечать на запрос и предоставлять данные в равноправный узел, который отправляет широковещательное сообщение. Таким образом, поддерживаемый хост-узлом кэш может поддерживаться во множестве различных равноправных узлов (равноправных элементов) сети с равноправными узлами. Таким образом, клиент в филиале может возвращать запрошенные данные на основе хэшей, предоставленных посредством сервера приложений. В этом варианте осуществления, равноправные узлы в сети с равноправными узлами могут взаимодействовать, чтобы кэшировать данные. Хотя вариант осуществления с равноправными узлами в описанном в этом разделе, следует отметить, что способ и система могут использоваться с любым клиент-серверным протоколом, в том числе с протоколами, не заключающими в себе сети с равноправными узлами.

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

Даже когда только один равноправный узел по фиг. 7 обозначается как поддерживаемый хост-узлом кэш, каждый равноправный узел, выступающий в качестве клиента (702-704) в сети 705 с равноправными узлами, может поддерживать собственный поддерживаемый хост-узлом кэш. В этой конфигурации, клиентский равноправный узел (к примеру, 701-704) может запрашивать данные из сервера, принимать набор хэшей из сервера и сначала проверять то, включает или нет его локальный кэш в себя данные. Если локальный кэш равноправного узла не содержит данные, то равноправный узел может искать обозначенный равноправный узел поддерживаемого хост-узлом кэша. В другом варианте осуществления, в случае ошибки равноправного узла 701, другие равноправные узлы в сети с равноправными узлами (к примеру, 702-704) затем могут переключаться на модель распределенного поддерживаемого хост-узлом кэша, в которой они начинают искать локальные кэши равноправной сети для данных (т.е. модель распределенного поддерживаемого хост-узлом кэша).

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

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

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

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