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

Анотація наукової статті з комп'ютерних та інформаційних наук, автор наукової роботи - Точилін С.Д.


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.


Область наук:

  • Комп'ютер та інформатика

  • Рік видавництва: 2016


    Журнал: Вісник Херсонського національного технічного університету


    Наукова стаття на тему 'АНАЛІЗ ПРОДУКТИВНОСТІ SOAP І RESTFUL JAVA WEB-СЕРВІСІВ ПОШУКУ В ДАНИХ СУБД MYSQL'

    Текст наукової роботи на тему «АНАЛІЗ ПРОДУКТИВНОСТІ 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в на octobi 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.

    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. 385 392.

    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 с.


    Ключові слова: ПРОДУКТИВНІСТЬ /PERFORMANCE /SOAP /RESTFUL /WEB-СЕРВІС /WEB SERVICE /MYSQL

    Завантажити оригінал статті:

    Завантажити