Научная статья на тему 'Анализ производительности soap и RESTful Java Web-сервисов поиска в данных СУБД MySQL'

Анализ производительности soap и RESTful Java Web-сервисов поиска в данных СУБД MySQL Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
120
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОИЗВОДИТЕЛЬНОСТЬ / PERFORMANCE / SOAP / RESTFUL / WEB-СЕРВИС / WEB SERVICE / MYSQL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Точилин С.Д.

На языке программирования Java разработаны SOAP и RESTful Web-сервисы поиска в данных СУБД, а также программа-тестер для определения их производительности. C помощью созданных программ получены данные о производительности Web-сервисов при обработке различных объемов информации, хранящейся в СУБД MySQL. Анализ данных тестирования был выполнен на основе математической аппроксимации. Результаты исследований, полученные для SOAP и RESTful Java Web-сервисов, указывают на более высокую производительность RESTful сервиса при поиске в данных СУБД MySQL

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

PERFORMANCE ANALYSIS OF SOAP AND RESTFUL JAVA WEB SERVICES FOR DATA SEARCH IN MYSQL DBMS

SOAP and RESTful Web-services for data search in the DBMS, as well as, a test program for determination of their performance had been developed on the basis of Java programming language. By means of created software applications obtained Web services performance data, while processing different amount of information, saving in MySQL DBMS. Data analysis of test was executed on the basis of mathematical approximation. The results of researches that were received for SOAP and RESTful Java Web services, show higher performance of a RESTful service for data search in the MySQL DBMS.

Текст научной работы на тему «Анализ производительности soap и RESTful Java Web-сервисов поиска в данных СУБД MySQL»

УДК 004.42:004.75

С.Д. ТОЧИЛИ

Запор1зький нащональний техшчний ушверситет

АНАЛ1З ПРОДУКТИВНОСТ1 SOAP ТА RESTFUL JAVA WEB-СЕРВЮТ ПОШУКУ В ДАНИХ СКБД MYSQL

На Moei програмування Java розроблет SOAP та RESTful Web-cepeicu пошуку в даних СКБД, а також програма-тестер визначення Их продуктивностi. З допомогою створених програм отримат данi про продуктивнкть Web-сервiсiв при обробцi ргзних обсягiв тформаци, яка збер^аеться в СКБД MySQL. Анал1з даних тестування був виконаний на основi математичног апроксимацИ. Результати до^джень, отримаш для SOAP та RESTful Java Web-сервiсiв, вказують на бшьш високу продуктивнкть RESTful сервка при пошуку в даних СКБД MySQL.

Ключовi слова: продуктивнкть, SOAP, RESTful, Web-сервiс, MySQL.

С.Д. ТОЧИЛИН

Запорожский национальный технический университет

АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ SOAP И RESTFUL JAVA WEB-СЕРВИСОВ ПОИСКА В ДАННЫХ СУБД MYSQL

На языке программирования Java разработаны SOAP и RESTful Web-сервисы поиска в данных СУБД, а также программа-тестер для определения их производительности. C помощью созданных программ получены данные о производительности Web-сервисов при обработке различных объемов информации, хранящейся в СУБД MySQL. Анализ данных тестирования был выполнен на основе математической аппроксимации. Результаты исследований, полученные для SOAP и RESTful Java Web-сервисов, указывают на более высокую производительность RESTful сервиса при поиске в данных СУБД MySQL

Ключевые слова: производительность, SOAP, RESTful, Web-сервис, MySQL.

S.D. TOCHILIN

Zaporizhzhia National Technical University

PERFORMANCE ANALYSIS OF SOAP AND RESTFUL JAVA WEB SERVICES FOR DATA SEARCH IN MYSQL DBMS

SOAP and RESTful Web-services for data search in the DBMS, as well as, a test program for determination of their performance had been developed on the basis of Java programming language. By means of created software applications obtained Web services performance data, while processing different amount of information, saving in MySQL DBMS. Data analysis of test was executed on the basis of mathematical approximation. The results of researches that were received for SOAP and RESTful Java Web services, show higher performance of a RESTful service for data search in the MySQL DBMS.

Keywords: performance, SOAP, RESTful, Web service, MySQL.

Постановка проблеми

При розробщ сучасних розподшених комп'ютерних систем, як працюють в локальних мережах та Internet, широко використовуеться серв1с-ор1ентована архитектура SOA (Service Oriented Architecture).

SOA - це парадигма, яка призначена для проектування та розробки додатшв як набору взаемозалежних сервгав в обчислювальному середовищц модульний шдхвд для розробки програмного забезпечення, оснований на використанш розподшених слабозв'язаних замшних компонента, яш оснащеш штерфейсами для взаемодп по стандартизованим протоколам [1].

Для практично! реал1заци розподшених систем з серв1с-ор1ентованою архитектурою, як правило, застосовують стандартш технологи Web-сервiсiв (Web-служб).

Web-сервюи являються незалежними функцюнальними компонентами та уявляють собою одиницю модульносп в контекст використання сервю-ориентовано! архггектури [2]. На !х основi створюються, як окремi додатки, так i програмш комплекси iз сервiс-орiентованою архитектурою, яш використовуються багатьма компашями. Вони надають широкий спектр Web-послуг - електронна комерщя, банк1вськ1 та бiржовi операцп, хмарш обчислення, метеорологiчне прогнозування та iншi [3-6].

Одною з основних вимог до подiбного роду Web-послуг е оператившсть !х надання, яка залежить вiд того, яким чином сервю програмно реалiзуеться [7,8].

При цьому актуальна задача вибору оптимального програмного забезпечення, що реалiзуe Web-сервю, тюно пов'язана i3 задачею вибору або розробки програми-тестера сервiсу, що дозволяе визначати його пpодуктивнicть [8].

Анaлiз останшх досл1джень i публжацш

Пpогpамнi засоби JavaTM е ефективною платформою для SOA. На и оcновi розробляються Web-cepвicи, яш пiдтpимують piзнi протоколи та технологи [3, 9,10]. Зокрема, сервюи засноваш на обмiнi ХМЬ-пов1домленнями (XML-документами), як правило, використовують SOAP-протокол для !х оформления. Цей протокол дае можливють обмiну iнфоpмацiею в pозподiлeних SOA-додатках, незалежно вiд того на якш мовi peалiзоваиi !х компоненти та на якш платфоpмi вони працюють.

Структура SOAP-повiдомлeння представлена чотирма основними елементами: <Envelope>, <Header>, <Body> та <Fault> [10].

1х призначення: кореневий елемент <Envelope> вказуе на те, що даний документ сформований з використанням SOAP-протоколу; необов'язковий елемент <Header> - заголовок, мicтить додатковi елементи, блоки заголовка, зi cпeцифiчноl для даного додатка шформащею; елемент <Body> призначений для пepeдачi змicту поввдомлення; елемент <Fault> - мicтить шформацш про помилки, як1 виникають при обробщ SOAP-повiдомлeния.

Для розробки SOAP Web-cepвiciв в Java, як правило, застосовують JAX-WS-технологш, яка описуеться специфшащею JSR 224 [9].

Оcтаннiм часом для створення розподшених додатк1в використовують RESTful Web-cepвicи. RESTful Web сервюи забезпечують обмiн i керування представленнями pecуpciв за допомогою HTTP-мeтодiв GET, PUT, POST та DELETE [10].

При цьому, до ввддалених pecуpciв, можна ввднести й окpeмi записи, як1 збepiгаютьcя в базах даних (БД) та являються доступними для сервюу. У той час, шформацш, яка збертаеться в таких БД, ктент RESTful Web-cepвicу може одержувати, додавати, змiнювати та видаляти, використовуючи для цього певним чином HTTP-методи GET, PUT, POST i DELETE, ввдповвдно.

Для розробки RESTful Web-cepвiciв в Java застосовують JAX-RS-тeхнологiю, яка вiдповiдае специфкацп JSR 311 [9].

JAX-WS та JAX-RS технологи дозволяють программу гнучко настроювати сервю. Кpiм того, приховують ввд нього мехашзм ктент-серверно1 взаемоди, надаючи можливють повшстю зосередитися на peалiзацil лопки додаткiв.

Зокрема, SOAP та RESTful Java Web-сервюи, широко використовуються для доступу до шформацп, що збертаеться в БД СКБД, pозмiщeних на Web-вузлах. При цьому, запити на пошук е важливим типом запипв до iнфоpмацiйного Web-вузла.

Як ввдомо, до найпошиpeнiших та продуктивних СКБД, яш поширюють на умовах вщкритих вих1дних кодiв, вiдноcять MySQL [11,12].

Продуктившсть Java та PHP XML-RPC Web-cepвiciв пошуку в даних MySQL, при piзних обсягах оброблювано! шформацп, була дослвджена нами pанiшe в робот [8]. Аиалiз peзультатiв роботи [8] дозволив вибрати оптимальне програмне забезпечення для XML-RPC Web-сервгав, що працюють з СКБД MySQL. Однак подiбних дослвджень для SOAP та RESTful Java Web-сервгав не було проведено.

Формулювання мети дослiдження

У данш pоботi була поставлена задача аналiзу пpодуктивноcтi SOAP та RESTful Java Web-cepвiciв при пошуку в однакових об'емах даних СКБД MySQL, з метою визначення оптимального програмного забезпечення для дано1 СКБД. З щею метою передбачалося також розробити програму-тестер з простим шгерфейсом користувача.

Викладення основного мaтерiaлу дослiдження

Для розв'язку поставлено1 задачi було розроблено два ваpiаити розподшених додатшв, як1 у своему cкладi мали однакову клiентcьку частину (програма-тестер), але piзнi Java Web-cepвicи, розроблеш на оcновi JAX-WS i JAX-RS-технологп.

Також були пiдготовлeнi об'екти дослщження - 8 таблиць (Data1-Data8) БД СКБД MySQL типу MylSAM. Як ввдомо, БД MySQL з таблицями MylSAM забезпечують високу пpодуктивнicть операцш пошуку та читання даних [11].

Кpiм того, об'екти досл1дження Data1-Data8 мали однакову структуру полiв (два поля - ключове та даних), але piзний обсяг збережено1 шформацп V , у якш здшснювався пошук (ввд 2,5 МБайт до 20 Мбайт, крок - 2,5 Мбайт). При цьому ва поля даних в таблицях мали ушкальш значення.

Для оцiнки та поpiвняння пpодуктивноcтi SOAP та RESTful Web-cepвiciв, при pоботi з даною БД, ми визначали !х час ввдгуку т (час, що витрачае сервю на виконання запиту користувача) при робоп з кожною таблицею.

Ввдповвдно до [13], для визначення z можна використовувати вираз:

т = т-1, (1)

де Т - повний час виконання запиту в розподшеному додатку;

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

Визначення часу вщгуку т Web-сервiсiв здiйснювалося нами за допомогою компактно! програми-тестера jaxTochno, розроблено! для вирiшення поставлено! в данш роботi задачi. З цieю метою вона спочатку одержувала значения Т та t, при послвдовному виконаннi розподiленим додатком двох подiбних алгоритмiв.

Перший з них складався з тако! послiдовностi дiй:

1. У кл1ентському додатку зафiксувати час початку роботи розподшеного додатка.

2. Виконати п.3 - п.8 певну к1льк1сть разiв (значення кiлькостi визначае користувач).

3. Сформувати параметри запиту до Web-сервюу.

4. Вiдправити з ктентського додатка запит.

5. У програмнш реалiзацi! Web-сервiсу одержати параметри запиту мента.

6. Здшснити виконання SQL-запиту пошуку в даних СКБД з використанням параметрiв з п.3.

7. Ввдправити результат пошуку ктентовг

8. Одержати в клiентському додатку результат пошуку в даних СКБД.

9. Зафжсувати час.

10. Визначити час роботи розподшеного додатка та зберегти його значення.

Другий алгоритм являв собою скорочену версш першого (без виконання п.4 - п.8).

При цьому запит до кожного сервюу складався з iменi таблищ даних СКБД MySQL, а також параметра пошуку в нш, який у ходi експерименту змiнював значення випадковим образом ввд 1 до максимально можливого для кожного об'екта дослщження.

У той час програма-тестер була написана мовою Java та мала простий iнтерфейс користувача.

Вш складався з п'яти пол1в вводу, трьох кнопок, комбiнованого списку, а також двох таблиць, як1 використовувалися аналогiчним образом при роботi, як з SOAP, так i з RESTful Java Web-сервюом пошуку в даних MySQL.

У той час програмне забезпечення, використане в данш робоп, являло собою останнi версп вiдповiдних програмних продуктiв (на момент написання статтi). Воно мiстило: набiр Java-класiв та утил1т jdk-8u102, Java-драйвер доступу до СКБД mysql-connector-java-5.1.39-bin.jar, jaxws-ri-2.2.10 та jaxrs-ri-2.23.2, API для розробки JAX-WS i JAX-RS Web-сервiсiв, вщповвдно. Для дослвджень також використовувався сервер Apache Tomcat 9.0.0.M9 та СКБД MySQL-5.7.14.

Додатки працювали на персональному комп'ютерi частота центрального процесора якого дорiвнювалась 2,7 ГГц, а обсяг оперативно! пам'яп мав значення 1 ГБайт.

При пiдготовцi до проведення досл1джень продуктивностi розроблених додатк1в на сервер Apache Tomcat установлювалися SOAP та RESTful Web-сервюи пошуку в таблицях Datal - Data8 СКБД MySQL.

У ходi вимiрiв в програмi jaxTochno спочатку у списку "Service" вибирався тип Web-сервiсу (SOAP або RESTful), тсля чого формувалася таблиця "Request" з iменами об'ектiв дослвдження, а також максимальними значеннями параметрiв пошуку в них. З щею метою використовувалися поля вводу "Table" та "Max", а також кнопка "Enter" штерфейсу користувача. Попм у поля вводу "URI" та "Reapet" уводилися URI Web-сервiсу та число його звернень N до кожно! таблищ при пошуку в !х даних, вщповвдно. У наших дослвдженнях N =10000.

Запуск тестування здшснювався натисканням на кнопку "Run" програми-тестера.

У процеа тестування розподiлений додаток послщовно працював з даними таблиць Datal -Data8 БД. При цьому, програма-тестер визначала значення повного часу виконання запиту Т, попм час обмiрковування користувача t, при формуваннi запиту, та час вщгуку т Web-сервiсу при пошуку в даних. Пюля чого в таблищ "Times" додатка jaxTochno з'являлася шформащя про т, t та Т при пошуку в даних для кожного об'екта дослвдження Data1 - Data8 СКБД MySQL.

За допомогою кнопки "Save" результати тестування та його параметри збер^алися в текстовому файлг 1м'я файлу для зберп'ання даних попередньо вводилося у поле введення "File".

На рис. 1 точками та трикутниками зображеш значення т, отримаш при тестуваннi. Точки -результат експерименту для SOAP, трикутники - RESTful Web-сервюу.

Як видно з цього рисунка, час вщгуку, при пошуку в даних СКБД MySQL, для SOAP та RESTful Web-сервiсiв, монотонно зростав при збшьшенш обсягу шформацп V. При цьому, при восьмикратному зб№шенню обсягу шформацп пошуку V в СКБД, значення т зростало на величину порядку 3,5• 10-3 с, стосовно початкових значень, як для SOAP, так i RESTful сервюу.

У той час ва експериментальш значення часу ввдгуку для SOAP сервюу, були б№ше в 2-3 рази, щодо даних по т для RESTful сервюу, отриманих при вщповвдних обсягах V.

Крiм того, як видно з рис.1, залежшсть т вщ V , при пошуку в даних СКБД MySQL, мала нелшйний характер. Поява дано! нелшшносп може бути обумовлена впливом рiзного роду факторiв на час ввдгуку Web-сервiсiв. 1х опис наведений у робот [13].

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

V, МБайт

Рис.1. Залежносп т (V), при пошуку в даних СКБД MySQL, для SOAP i RESTful Web-cepBiciB, крив1 1 та 2, ввдповвдно. Точки i трикутники на рисунку - результати тестування

Для цих цшей була використана додаткова комп'ютерна програма, написана нами мовою програмування Java на основi даних роботи [14]. Ця програма реалiзовувала один з найбтш ефективних методiв нелшшного оцiнювання параметрiв, а саме квазшьютоновський метод змiнно! метрики (метод Девщона-Флетчера-Пауела).

При цьому передбачалося, що час ввдгуку т, для SOAP та RESTful Java Web-сервiсiв пошуку в даних СКБД MySQL, може бути представлений у виглядi багаточлена ступеня m :

m

Т =z knVn , (2)

n=0

де k0,kl,...jcm - постшт коефiцiенти.

Використання подiбних багаточленiв широко застосовуеться при математичнш апроксимацi! експериментальних даних для ввдновлення функцiональних особливостей величин, як1 дослщжуються

[15].

Як з'ясувалося, у результал математично! апроксимацi! результатiв тестування на основi (2), коефiцiент детермiнацi!' D , для використано! моделi, мав значення: 0,981 i 0,969 (при m =1), 0,986 i 0,978 (m =2), 0,995 i 0,991 (m =3), для SOAP та RESTful сервгав, вщповвдно.

Залежносп (2) з m =3, отримаш в результатi апроксимацi! даних експерименту, та яш найбiльш точно !х описують, також наведенi на рис.1.

При цьому, як показують додатковi дослвдження, функцi! t(V) з m =3 е монотонно зростаючими

для V < 20.0 Мбайт.

У той час, як наведеш на рис. 1 експериментальш значения т, так i залежносп т(V), отримаш в результат !х математично! апроксимацii, вказують на те, що продуктивнiсть Web-сервiсiв на octobí JAX-RS-технологй' була вище, шж на основi JAX-WS, для всього дослвдженого iнтервалу значень V .

Тобто, для створення високопродуктивних Java Web-сервiсiв для роботи з даними СУБД MySQL, доцшьно використовувати програмне забезпечення JAX-RS-техиологil.

Висновки

Таким чином, у данш роботi нами були виконаш дослiджения та виконаний анал1з продуктивностi SOAP та RESTful Java Web-сервiсiв при пошуку в даних СКБД MySQL.

Як з'ясувалося, залежшсть часу ввдгуку для Web-сервiсiв, при пошуку в даних з обсягом V < 20.0 МБайт, що збер^аються в БД, може бути описана монотонно зростаючо! кривою третього порядку.

У той час, при дослвджених обсягах даних V , що збер^аються в БД СКБД MySQL, RESTful Java Web-сервю е бiльш продуктивним, чим аиалогiчний, на основi SOAP.

Надал1 плануеться модершзувати розроблену програму-тестер для вимiрюваиия продуктивносп Web-сервiсiв при масштабованих запитах до шформацшного Web-вузла та провести подiбнi дослвдження з iншими Web-серверами та СКБД.

Список використаноТ лiтератури

1. Кадочников А.А. Сервис-ориентированные веб-системы для обработки геопространственных данных / А.А. Кадочников, О.Э. Якубайлик // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. - 2015. - Т.13. - Вып.1. - С. 37-45.

2. Горбенко А.В. Анализ особенностей создания и эксплуатации гарантоспособных сервис-ориентированных систем / А.В. Горбенко // Радюелектронш i комп'ютерш системи. - 2013. -№ 5 (64). - С. 237-242.

3. Hewitt E. Java SOA Cookbook / E. Hewitt. - Sebastopol, CA: O'Reilly Media, 2009. - 742 p.

4. Ernst M.D. Detection of Web Service substitutability and composability / M.D. Ernst, R. Lencevicius // Proceedings of the 1st International Workshop on Web Services Modeling and Testing (WS-MaTe 2006), June 2006, Palermo, Italy: proceedings. - 2006. - P. 123-135.

5. Ноор Т. Облачные сервисы масштаба WWW /Т. Ноор, К. Шенг, Э. Нгу, Ш. Дустдар // Открытые системы. СУБД. - 2014. - № 07. - С.26-29.

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

6. Горбенко А.В. Анализ производительности Web сервисов в среде Cloud Computing / А.В. Горбенко, О.М. Тарасюк, А. С. Лысенко // Збiрник наукових праць Харшвського ушверситету Повггряних Сил. - 2013. - Вип.2(35). - С. 82-86.

7. Suzumura T. Performance Comparison of Web Service Engines in PHP, Java, and C / T. Suzumura, S. Trent, M. Tatsubori, A. Tozawa, T. Onodera // Proceedings of the IEEE International Conference on Web Services (ICWS 2008), 23-26 September, 2008, Beijing, China: proceedings. - 2008. - P. 385392.

8. Точилин С.Д. Производительность XML-RPC Web-служб поиска в данных СУБД MySQL и PostgreSQL / С.Д. Точилин, Д.С. Точилин // Вгсник ЗДУ. - 2010. - № 1. - С.109-113.

9. Машнин Т.С. Современные Java-технологии на практике / Т.С. Машнин. - СПб.: БХВ-Петербург, 2010. - 560 с.

10. Машнин Т.С. Web-сервисы Java / Т.С. Машнин. - СПб.: БХВ-Петербург, 2012. - 560 с.

11. Гольцман В.И. MySQL 5.0. Библиотека программиста / В.И. Гольцман. - СПб.: Питер, 2010. -253 с.

12. Веллинг Л. Разработка Web-приложений с помощью PHP и MySQL / Л. Веллинг, Л. Томсон. -М.: Вильямс, 2008. - 880 с.

13. Менаске Д. Производительность Web-служб. Анализ, оценка и планирование / Д. Менаске, В. Алмейда. - СПб.: ООО «ДиаСофтЮП», 2003. - 480 с.

14. Носач В.В. Решение задач аппроксимации с помощью персональных компьютеров / В.В. Носач. - М.: МИКАП, 1994. - 382 с.

15. Бердышев В.И. Аппроксимация функций, сжатие численной информации, приложения / В.И. Бердышев, Л.В. Петрак. - Екатеринбург: УрО РАН, 1999. - 297 с.

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