Научная статья на тему 'Оптимизация работы web-сервисов путем кэширования данных'

Оптимизация работы web-сервисов путем кэширования данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
345
104
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Евсеенко И. А., Мельников И. И., Демиденков К. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Оптимизация работы web-сервисов путем кэширования данных»

Conclusion

The proposed program module can be useful, first of all to enterprises with a centralized processing and management information systems, which are composed of one or more servers that provide access to information through web services, and many customers located at a great distance from the server (servers). The usage and combination of caching, compression and encryption, allow you to make data transfer faster.

The WAN accelerator is not a generalized facility. The efficiency of its usage in situations of very frequent data updates for responses on server, as well as audio and video transmission by the network, is not great. Its usage is practical in the case of necessity of work intensification of the customs applications that require frequent synchronous requests to web services

that transmit data by uncompressed SOAP-based protocol.

References

1. Sedykh С., Available at: http://www.setevoi.ru/cgi-bin/ text.pl/magazines/2000/1/64 (accessed 11 Oct. 2012).

2. Introduction to WAN Optimization, Available at: http:// www.excitingip.com/459/introduction-to-wan-optimization-techni-ques/ (accessed 11 Oct. 2012).

3. Troelsen A., Pro C# and the .NET 4 Platform, 5th ed., NY, Springer-Verlag, 2010, 1752 p.

4. Optimize WAN and LAN Application Performance with TCP Express, Available at: http://www.f5.com/pdffwhite-papers/ tcpexpress-wp.pdf (accessed 11 Oct. 2012).

5. WAN Optimization, Available at: http://www.riverbed. com/us/solutions/wan_optimization/ (accessed 11 Oct. 2012).

6. WinGate: The Comprehensive Internet Management Solution for Windows, Available at: http://www.redline-software.com/ eng/support/docs/wingate/ (accessed 11 Oct. 2012).

7. Vorobyov I., Storage News, 2008, no. 2 (35), pp. 24-27.

Версия статьи на русском языке

УДК 621.397:004.738

ОПТИМИЗАЦИЯ РАБОТЫ WEB-СЕРВИСОВ ПУТЕМ КЭШИРОВАНИЯ ДАННЫХ

И.И. Мельников, аспирант; К.А. Демиденков, аспирант; И.А. Евсеенко, к.т.н., доцент (Белорусско-Российский университет, просп.. Мира, 43, г. Могилев, 212005, Беларусь, mel_igor@mail.ru, sdk@mail.by, 327igor@rambler.ru)

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

Ключевые слова: WAN-акселератор, web-сервис, кэширование, компрессия, кодирование, хеш-код, оптимизация.

WEB SERVICE OPTIMIZATION USING CACHING Melnikov I.I., Postgraduate; DemidenkovK.A., Postgraduate; Evseenko I.A., Ph.D., Associate Professor (Belarusian-Russian University, 43, Mira Av., Mogilev, 212005, Belarus, mel_igor@mail.ru, sdk@mail.by, 327igor@rambler.ru) Abstract. The paper describes a method for accelerating network data transfer through combination of caching, selective compression and encryption and a WAN-accelerator based on this method. The accelerator contains a client part and a server part. It encapsulates the data channel and caches data on the client and server side. Special hashes are used to synchronize cached data on the client and server side. If some data cached on the client side and some data cached on the server side are same, a response will be extracted from client cache and won't be waited from the server. Data can be quickly and effectively

compressed by the methods of selective compression used in the accelerator if necessary. The WAN-accelerator encrypts data to improve data transfer security. WAN-accelerator server part cache asynchronous update helps to cut latency time of a response from a web-service caused by computational complexity and transaction time. Usage of the accelerator can be an effective solution for the problem of client application speed acceleration when a client application requires permanent communication with a web-service. The WAN-accelerator is an independent program module that doesn't require integration with an existing web-service and its modification. It is transparent for a web-service and a client application. Especially it is useful for an organization that has a host system for data processing and management that contains one or more servers with data access through web-services and many clients on a great distance from them.

Keywords: WAN-accelerator, web service, caching, compression, encryption, hash, optimisation.

Сетевые технологии стали неотъемлемой частью современного общества. Благодаря им передача информации на большие расстояния перестала быть сложной задачей, а Интернет посредством коммуникационных каналов связывает все страны мира. Но многие технологии передачи данных и широко используемые протоколы, такие как TCP\IP, были разработаны довольно давно и сегодня не успевают за многократно возросшим трафиком [1]. Поэтому достаточно актуальны задачи оптимизации IP-трафика. Решаются они как на программном, так и на аппаратном уровне.

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

В Республике Беларусь существует немало крупных предприятий, имеющих свои локальные сети, предназначенные для обмена информацией между рабочими станциями и серверами, на которых размещены централизованные БД. Как правило, информация передается в несжатом виде, поэтому время ее передачи от серверов к рабочим станциям и наоборот может значительно возрасти, если последние находятся за пределами локальной сети, допустим, в сервисном центре другого региона. Сегодня некоторые белорусские предприятия (например «Атлант» и «МАЗ») интенсивно осваивают новые рынки сбыта и активно создают или начинают создавать сервисные центры за рубежом. Чтобы держать постоянную связь с головным отделением и иметь доступ к централизованным хранилищам информации, необходимы надежные технологии коммуникации. Такой технологией являются web-сервисы - идентифицируемые web-адресом программные системы, расположенные на стороне сервера, которые позволяют принимать запросы от клиентских приложений, расположенных на удаленных рабочих станциях, обрабатывать их, формировать ответ и отсылать его обратно.

Существует немало технологий создания надежных и безопасных web-сервисов, например технология Windows Communication

Foundation (WCF) [3]. С ростом удаленности клиентов от серверов резко возросли задержки при передаче данных. Главная причина этого - отсутствие компрессии и кэширования данных, представляющих собой запросы и ответы на базе протокола SOAP (другими словами, большие объемы несжатой текстовой информации). Для решения данной проблемы был разработан акселератор WAN (Wide Area Network), который является независимым программным модулем.

В отличие от существующих сложных и достаточно дорогих универсальных WAN-акселераторов, предназначенных для оптимизации IP-трафика [4-6], предложенный акселератор прост в установке и сопровождении, так как представляет собой программный комплекс, специально предназначенный для ускорения работы web-сервисов. Он использует хорошо зарекомендовавшие себя алгоритмы сжатия и кодирования (шифрования) данных, а также оригинальный подход предупреждения передачи часто повторяемых ответов от сервера клиенту путем возвращения ответа прямо из кэша клиента, если нет явной необходимости его обновить. Использование данного акселератора позволит избежать больших затрат, связанных с модификацией уже существующих web-сервисов с целью ускорения передачи информации по сети, особенно по нестабильным каналам или каналам с низкой пропускной способностью.

Архитектура акселератора web-сервисов

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

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

Акселератор-клиент служит прокси-сервером. Он перехватывает запросы, отсылаемые клиентским приложением web-сервису, определенным образом их обрабатывает и перенаправляет акселератору-серверу. Акселератор-сервер принимает запросы от акселератора-клиента, обрабатывает их, а затем направляет web-сервису. Между акселератором-клиентом и акселератором-сервером устанавливается TCP-соединение. К одному акселератору-серверу могут подключаться один или несколько акселераторов-клиентов. Данные по TCP-каналу передаются в зашифрованном виде. Шифрование осуществляется посредством самого акселератора. Рассмотрим подробнее ключевые методы, ускоряющие передачу данных по сети.

Ускорение передачи данных

по сети путем кэширования

Существует ряд хорошо зарекомендовавших себя и широко применяемых методов оптимизации IP-трафика. Одним из них является кэширование данных, то есть хранение часто используемой информации в месте, откуда при необходимости ее можно быстро и легко извлечь. Такой возможностью обладают, например, web-браузеры, что позволяет загружать не весь контент повторно запрашиваемой web-страницы с удаленного сервера, а только некоторую обновленную информацию. Если множество клиентов выходят в Интернет через один серверный компьютер, имеющий непосредственное подключение к данной сети, с помощью специальных средств можно кэширо-вать информацию о запросах всех пользователей, извлекая ее каждый раз не из удаленного компьютера, а из памяти сервера [6]. Кроме того, можно использовать промежуточные серверы, предназначенные для кэширования информации, доступ

к которым в большинстве случаев будет быстрее, чем при запрашивании этих же данных повторно с удаленного сервера, как это, например, реализовано в технологии Google Global Cache.

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

При перехвате HTTP-запроса от клиентского приложения акселератором-клиентом для него формируются постоянный уникальный ключ, который создается путем хеширования строки URI-запроса и (если это POST-запрос) его тела, а также временный уникальный ключ, сгенерированный случайным образом. Под временным ключом копия запроса помещается в кэш акселератора-клиента, а сам запрос направляется дальше акселератору-серверу. Акселератор-сервер получает запрос, помещает его копию под временным ключом, не совпадающим в общем случае с аналогичным ключом на клиенте, в свой кэш, вычисляет постоянный ключ, совпадающий с аналогичным ключом на клиенте, и направляет запрос web-сервису. Web-сервис генерирует ответ, приходящий сначала акселератору-серверу. Последний на базе тела ответа вычисляет хеш-код, затем помещает этот код и копию ответа в кэш, связывая его с соответствующим кэшированным запросом, присваивает паре запрос-ответ постоянный ключ (временный ключ удаляется) и отсылает ответ акселератору-клиенту, который осуществляет аналогичную операцию, направляя затем ответ клиентскому приложению. Таким образом, каждый запрос и ответ на него кэшируются дважды - на клиенте и на сервере. Общие схемы алгоритмов работы акселератора-клиента и акселератора-сервера представлены на рисунках 2 и 3 соответственно.

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

Рис. 2. Алгоритм работы акселератора-клиента

словами, акселератор-сервер асинхронно обновляет собственный кэш с тем, чтобы данные в нем были как можно актуальнее.

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

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

нескольких акселераторов-клиентов в акселераторе-сервере.

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

Ускорение передачи данных по сети путем их избирательного сжатия (компрессии)

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

Рис. 3. Алгоритм работы акселератора-сервера

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

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

Кроме того, в перспективе предполагается использование адаптивного сжатия пакетов, суть которого в том, чтобы в зависимости от типа данных подбирать наилучший алгоритм сжатия [7].

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

Разработанный WAN-акселератор не является универсальным средством. Эффективность его применения в условиях очень частого обновления информации для ответов на сервере и при передаче аудио и видео по сети невелика. Его применение целесообразно в случае необходимости ускорения работы клиентских приложений, требующих для своего функционирования частых синхронных запросов к web-сервисам, передающим данные в несжатом виде на базе SOAP-протокола.

Литература

1. Седых С. Аппаратная оптимизация IP-трафика: сохраним и приумножим TCP/IP? URL: http://www.setevoi.ru/cgi-bin/text.pl/magazines/2000/1/64 (дата обращения: 11.10.2012).

2. Introduction to WAN Optimization. URL: http://www.ex-citingip.com/459/introduction-to-wan-optimization-techniques/ (дата обращения: 11.10.2012).

3. Troelsen A., Pro C# and the .NET 4 Platform, 5th ed. NY, Springer-Verlag, 2010, 1752 p.

4. Optimize WAN and LAN Application Performance with TCP Express. URL: http://www.f5.com/pdf/white-papers/tcpex-press-wp.pdf (дата обращения: 11.10.2012).

5. WAN Optimization. URL: http://www.riverbed.com/us/so-lutions/wan_optimization/ (дата обращения: 11.10.2012).

6. WinGate: The Comprehensive Internet Management Solution for Windows. URL: http://www.redline-software.com/ eng/support/docs/wingate/ (дата обращения: 11.10.2012).

7. Воробьев И. WAN акселераторы // Storage News. 2008. № 2 (35). С. 24-27.

References

1. Sedykh С., Available at: http://www.setevoi.ru/cgi-bin/ text.pl/magazines/2000/1/64 (accessed 11 Oct. 2012).

2. Introduction to WAN Optimization, Available at: http:// www.excitingip.com/459/introduction-to-wan-optimization-tech-niques/ (accessed 11 Oct. 2012).

3. Troelsen A., Pro C# and the .NET 4 Platform, 5th ed., NY, Springer-Verlag, 2010, 1752 p.

4. Optimize WAN and LAN Application Performance with TCP Express, Available at: http://www.f5.com/pdi/white-papers/ tcpexpress-wp.pdf (accessed 11 Oct. 2012).

5. WAN Optimization, Available at: http://www.riverbed. com/us/solutions/wan_optimization/ (accessed 11 Oct. 2012).

6. WinGate: The Comprehensive Internet Management Solution for Windows, Available at: http://www.redline-software.com/ eng/support/docs/wingate/ (accessed 11 Oct. 2012).

7. Vorobyov I., Storage News, 2008, no. 2 (35), pp. 24-27.

УДК 519.6+004.4'2

ТЕХНОЛОГИЯ АВТОМАТИЗИРОВАННОЙ ОЦЕНКИ СОДЕРЖАТЕЛЬНОЙ БЛИЗОСТИ ТЕКСТОВ

Л.А. Кузнецов, д.т.н., профессор; В.Ф. Кузнецова, к.т.н., доцент

(Липецкий государственный технический университет, ул. Московская, 30, г. Липецк, 398600, Россия, kuznetsov(@stuЛipetsk.ru)

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

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

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

Приводятся примеры реализации технологии и оценки ее адекватности некоторым практическим задачам.

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

AUTOMATED TECHNOLOGY CONFORMANCE EVALUATION OF THE TEXT'S KuznetsovL.A., Ph.D., Professor; Kuznetsova V.F., Ph.D., Associate Professor (LipetskState Technical University, 30, Moskovskaya St., Lipetsk, 398600, Russia, kuznetsov@stu.lipetsk.ru)

Abstract. Considered matching the content of information sources in natural language. Developed a comparison technology based on formalization of texts in the form of probabilistic models, the amount of information is estimated by entropy, and a measure of similarity is the amount of mutual information. Described the technology of text formalization by decomposition of the text in random semantic components, which reflect the probability of semantic nuances of information sources.

Identifying closeness of texts semantic content based on the compliance of the morphological and syntactic language objects and their semantic roles. Compared texts are requested to be provided in the form of formal systems of similar morphological and/or syntactic objects, which is associated with a certain semantic role.

Semantic proximity of texts may be assessed by proximity of introduced systems of semantic components. Representation of the text in the form of a formal system allows the use of statistical tools for quantitative assessment of their proximity. Proper representation of the text in the form of morphological and syntactic systems can be performed using automated systems analysis and parsing texts in which formalized the existing rules of the language.

Provided the examples of implementation this technology and evaluation its adequacy.

Keywords: text, conformance evaluation technology of texts, probabilistic model, semantic components, components expansion of text, mathematical text model, information theory, entropy, semantic similarity of text's.

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

ковых системах при классификации текстов, проверке на плагиат [1] применяются статистические подходы на основе векторно-пространственной модели текста, предложенной в работе [2]. Формальной основой этой модели является скалярное

i Надоели баннеры? Вы всегда можете отключить рекламу.