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

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

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

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

Вариант осуществления сервера с фиксацией состояния

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

Фиг. 9 иллюстрирует процесс использования системы в филиале. Клиент, запрашивающий данные, может принимать ответное сообщение(я) из сервера 901. Ответ может включать в себя данные, запрошенные посредством клиента, или набор хэшей, соответствующий запрошенным данным, без фактического набора данных. На этапе 902, клиент может программироваться, чтобы определять то, включает ответ в себя данные или набор хэшей без данных. Когда клиент определяет то, что ответ из сервера включает в себя фактические запрошенные данные, клиент затем может использовать данные 903 и сохранять копию данных в поддерживаемом хост-узлом кэше 904. Поддерживаемый хост-узлом кэш может сохранять данные, индексированные посредством хэш-значений. Хэш-значения могут быть сформированы посредством сервера и переданы наряду с фактическими данными (к примеру, на этапе 901). Альтернативно, клиент может хэшировать данные и предоставлять хэши в поддерживаемый хост-узлом кэш с фактическими данными. В еще одном другом варианте осуществления, поддерживаемый хост-узлом кэш может хэшировать данные. Независимо от того, какой объект выполняет хэш-функцию, хэши могут использоваться посредством поддерживаемого хост-узлом кэша, чтобы индексировать данные, хранимые посредством поддерживаемого хост-узлом кэша. Кроме того, хэш-функции, используемые посредством любого из объектов (когда несколько объектов выполняют хэш-функцию), могут быть идентичными.

Если клиент принимает набор хэшей без фактического набора данных, клиент может запрашивать поддерживаемый хост-узлом кэш на предмет данных на основе хэшей 905. Поддерживаемый хост-узлом кэш может определять то, имеет он или нет данные, соответствующие набору хэшей 906. Если поддерживаемый хост-узлом кэш содержит данные, то клиент может извлекать данные из поддерживаемого хост-узлом кэша на основе хэшей, которые он принимает из сервера 907 приложений. Необязательно, клиент также может выполнять проверку целостности данных для данных, принимаемых посредством поддерживаемого хост-узлом кэша, с использованием хэшей 908. Как известно специалистам в данной области техники, хэши могут предоставлять уникальную контрольную сумму данных, которые используются для того, чтобы формировать хэш. Таким образом, один способ верификации целостности и идентификации данных, принимаемых посредством клиента из поддерживаемого хост-узлом кэша, состоит в том, чтобы выполнять идентичную хэш-функцию (к примеру, хэш-функцию, о которой известно, что она является общей между сервером, который предоставляет хэш, и поддерживаемым хост-узлом кэшем) для данных из поддерживаемого хост-узлом кэша, чтобы проверять то, получаются идентичные хэши из этих данных или нет. Если да, целостность и идентификация данных могут быть верифицированы. Если данные определены как верифицированные и допустимые 909, клиент может использовать извлеченные данные на этапе 910. Если данные не являются верифицированными и таким образом не являются недопустимыми, набор данных может извлекаться из сервера, и поддерживаемый хост-узлом кэш может обновляться с новыми полученными данными из сервера 911.

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

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

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

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

В варианте осуществления, проиллюстрированном на фиг. 10, параметр 1001 истечения срока действия может быть включен в каждую запись. Записи могут сохраняться в поддерживаемом хост-узлом кэше до тех пор, пока они явно не удаляются издателем или до тех пор, пока срок их действия не истекает на основе параметра истечения срока действия. Этот параметр 1001 истечения срока действия может соответствовать длительности, когда данные являются допустимыми. Параметр 1001 истечения срока действия может указывать истечение срока достоверности для записи. Таким образом, параметр 1001 истечения срока действия может использоваться в процессе извлечения, как проиллюстрировано на фиг. 9. Например, на этапе 909 истечение, указываемое посредством параметра 1001 истечения срока действия, может проверяться, чтобы определять то, истек или нет срок действия. Если параметр 1001 истечения срока действия показывает истечение, то запись может быть недопустимой, и этап 911 может использоваться для того, чтобы извлекать новые данные из сервера. В противном случае, запись может быть допустимой и использоваться посредством клиента 910.

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

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

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

Мониторинг оптимизации

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

Интеграция с существующими оптимизаторами WAN

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

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

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

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

1. Способ сокращения загруженности полосы пропускания сети и улучшения в отношении времени извлечения данных по сети, содержащий этапы, на которых:
подключают клиент (311) к серверу (315) через первую сеть (303);
подключают клиент (320) к поддерживаемому хост-узлом кэшу (320) через вторую сеть (310), при этом клиент (311) допускает обмен данными с поддерживаемым хост-узлом кэшем (320) через вторую сеть (310) независимо от первой сети (303);
передают первое сообщение с запросом из клиента (311) на сервер (315) по первой сети (303), при этом сообщение содержит запрос на предмет набора данных;
принимают в клиенте (311) через первую сеть (303) запрашиваемый набор данных с соответствующим набором хэшей или набором хэшей, соответствующим набору данных, без набора данных (901); определяют в клиенте (311) то, принимает клиент набор хэшей с набором данных или принимает набор хэшей без набора данных (902);
сохраняют копию набора данных в поддерживаемом хост-узлом кэше (32) через вторую сеть (310), когда клиент (311) принимает набор хэшей с набором данных (904); и выполняют запрос на предмет набора данных посредством клиента (311) из поддерживаемого хост-узлом кэша (320) через вторую сеть (310) на основе набора хэшей, когда клиент принимает набор хэшей без набора данных, при этом поддерживаемый хост-узлом кэш сохраняет данные, индексированные посредством хэшей (905).

2. Способ по п.1, в котором первая сеть - это сквозная защищенная сеть, выполняющая одно из протокола защищенных сокетов (SSL) или протокола IP Security (IPSec).

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

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

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

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

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

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

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

10. Способ сокращения загруженности полосы пропускания сети и улучшения в отношении времени извлечения данных по сети, содержащий этапы, на которых:
принимают сообщение запроса из клиента на сервере по сети, при этом сообщение содержит запрос клиента на предмет набора данных, хранимых на сервере (801);
формируют набор хэшей с использованием первой хэш-функции для набора данных, хранимых на сервере, при этом каждый хэш из набора хэшей представляет статистически уникальную контрольную сумму каждых данных из набора данных;
определяют на сервере то, разрешено или нет клиенту использовать поддерживаемый хост-узлом кэш, при этом поддерживаемый хост-узлом кэш индексирует данные на основе хэшей, которые формируются с использованием первой хэш-функции (802);
передают посредством сервера в клиент через сеть набор данных и соответствующий сформированный набор хэшей, когда клиенту запрещено использовать поддерживаемый хост-узлом кэш (803);
передают посредством сервера в клиент через сеть набор хэшей без набора данных, когда клиенту разрешено использовать поддерживаемый хост-узлом кэш (804).

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

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

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

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

15. Вычислительная система для уменьшения времени задержки в глобальной вычислительной сети, включающей в себя набор вычислительных устройств, причем вычислительные устройства включают в себя процессор и запоминающее устройство, функционально соединенное с процессором, для сохранения инструкций, выполняемых посредством процессора, содержащая:
поддерживаемый хост-узлом кэш (320), выполненный с возможностью сохранять данные, индексированные посредством хэш-значения;
первую сеть (303), функционально соединяющую клиента (311) и сервер (315);
вторую сеть (304), функционально соединяющую клиента (311) с поддерживаемым хост-узлом кэшем (320), при этом вторая сеть (304) является независимой от первой сети (303) и выполнена с возможностью предоставлять обмен данными между клиентом (311) и поддерживаемым хост-узлом кэшем (320) без использования первой сети (303);
сервер (315), выполненный с возможностью передавать набор данных или набор хэшей, соответствующий набору данных, в клиент (311) в ответ на клиентский запрос через первую сеть (303); и
клиент (311), выполненный с возможностью принимать набор хэшей, когда сервер (315) передает набор хэшей, и запрашивать поддерживаемый хост-узлом кэш (320) через вторую сеть (310) на предмет набора данных на основе принимаемого набора соответствующих хэшей.

16. Система по п.15, в которой клиент (311) принимает набор данных, когда сервер (315) передает набор данных, и в которой клиент (311) сохраняет копию набора данных в поддерживаемый хост-узлом кэш (320) хэш-значениями.

17. Система по п.15, в которой поддерживаемый хост-узлом кэш (320) выполнен с возможностью отправлять запрос на предмет запрошенных клиентом данных на сервер (315), когда поддерживаемый хост-узлом кэш (320) не содержит запрошенные данные.

18. Система по п.15, в которой клиент (311) выполнен с возможностью отправлять запрос на предмет набора данных, когда поддерживаемый хост-узлом кэш (320) не содержит запрошенные данные.

19. Система по п.15, в которой сервер (315) выполнен с возможностью формировать хэши с использованием хэш-функции, и в которой клиент (311) выполнен с возможностью верифицировать данные, принимаемые из поддерживаемого хост-узлом кэша (320), посредством хэширования данных, принимаемых из поддерживаемого хост-узлом кэша (320), с использованием хэш-функции, идентичной хэш-функции сервера.

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



 

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

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

Изобретение относится к системам мультимедийных услуг. .

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

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

Изобретение относится к области связи и, в частности, к способу обработки данных связи формата TLV. .

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

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

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

Изобретение относится к услугам быстрой связи (Push-to), далее, РТ-услуга, например, (push to talk - «нажмите и говорите»). .

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

Изобретение относится к системам беспроводной связи

Изобретение относится к области беспроводной связи

Изобретение относится к системам доставки звуковой и видеоинформации с условным доступом

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

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

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

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