Научная статья на тему 'Анализ производительности XML-RPC и soap php Web-служб поиска в данных СУБД PostgreSQL'

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

CC BY
123
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОИЗВОДИТЕЛЬНОСТЬ / XML-RPC / SOAP / WEB-СЛУЖБА / POSTGRESQL / PERFORMANCE / WEB SERVICE

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

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

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

PERFORMANCE ANALYSIS OF XML-RPC AND SOAP PHP WEB SERVICES FOR DATA SEARCH IN POSTGRESQL DBMS

XML-RPC and SOAP 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 PHP programming language. By means of created software applications obtained Web services performance data, while processing different amount of information, saving in PostgreSQL DBMS. Data analysis of test was executed on the basis of mathematical approximation. The results of researches that were received for XML-RPC and SOAP PHP Web services, show higher performance of a XML-RPC service for data search in the PostgreSQL DBMS.

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

УДК 004.42:004.75

С. Д. ТОЧИЛИ

Запсрзький нацюнальний техшчний ушверситет

АНАЛ1З ПРОДУКТИВНОСТ1 XML-RPC ТА SOAP PHP WEB-СЛУЖБ ПОШУКУ В ДАНИХ СКБД POSTGRESQL

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

Ключовi слова: продуктивтсть, XML-RPC, SOAP, Web-служба, PostgreSQL.

С. Д. ТОЧИЛИН

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

АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ XML-RPC И SOAP PHP WEB-СЛУЖБ ПОИСКА В ДАННЫХ СУБД POSTGRESQL

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

Ключевые слова: производительность, XML-RPC, SOAP, Web-служба, PostgreSQL.

S. D. TOCHILIN

Zaporizhzhia National Technical University

PERFORMANCE ANALYSIS OF XML-RPC AND SOAP PHP WEB SERVICES FOR DATA SEARCH IN POSTGRESQL DBMS

XML-RPC and SOAP 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 PHP programming language. By means of created software applications obtained Web services performance data, while processing different amount of information, saving in PostgreSQL DBMS. Data analysis of test was executed on the basis of mathematical approximation. The results of researches that were received for XML-RPC and SOAP PHP Web services, show higher performance of a XML-RPC service for data search in the PostgreSQL DBMS.

Key words: performance, XML-RPC, SOAP, Web service, PostgreSQL.

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

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

На сьогодшшнш день Web-програмування та створення додатшв для роботи в глобальнш мережi 1нтернет е фактично окремою дисциплшою програмування та iндустрiею розробки програмного забезпечення [ 1].

При цьому важливе значення мае розробка 1нтернет-додатшв на основi Web-служб [2-6].

Web-служби представляють собою слабозв'язаш додатки, яш надають IT-послуги з використанням протоколу НТТР та, як правило, мови розмггки XML.

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

Вщповщно пвдвищення продуктивносп Web-служб, при робот с даними СКБД, е актуальною проблемою.

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

На ochobí Web-служб створюються, як OKpeMi додатки, так i програмш комплекси Í3 сервю-орieнтованою архiтектурою (Service-Oriented Architecture - SOA).

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

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

У той час, особливе значения мають служби, якi надають доступ до даних, що збер^аються на Web-вузлах. При цьому, вщповщно до [9], запити на пошук е найбiльш важливим типом транзакцш iнформацiйного Web-вузла. У цьому зв'язку актуальною е задача одержання шформацп вiд Web-служби з максимальною оператившстю, яка залежить ввд того, яким чином вона программно реалiзуеться [10,11].

До шструмеипв розв'язання подiбноi задачi належать програми визначення продуктивностi роботи Web-служб - Apache JMeter, LoadRunner, soapUI та iн. Однак щ програми або комерцiйнi, або мають досить складний iнтерфейс користувача та займають великий обсяг оперативноi пам'яп комп'ютера.

Тому поряд iз задачею вибору оптимального програмного забезпечення, що реалiзуе Web-службу для оперативного доступу до шформацп, актуальною е також i задача вибору або розробки програми-тестера Web-служби.

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

Програмнi засоби PHP е ефективною платформою для SOA. На ii основi розробляються Web-служби, яш пiдтримують рiзнi протоколи та технологи [2-6]. Зокрема, служби засноваш на обмш XML-поввдомленнями використовують, як XML-RPC, так i SOAP-протокол. 1х застосувания дозволяе програмiстовi легко створювати та конфиурувати РНР Web-службу. Крiм того, приховують ввд нього мехашзм клiент-серверноi взаемодп, надаючи можливiсть повшстю зосередитися на реалiзацii логiки додатшв.

Зокрема, РНР Web-служби, широко використовуються для доступу до шформаци, яка збертаеться в базах даних СКБД, розмiщених на Web-вузлах [3].

XML-RPC та SOAP Web-служби, як правило, розмiщуються на Web-серверi. Як ввдомо, сервер Apache е одним з найпоширешших та продуктивних Web-серверiв.

У той час, PostgreSQL ввдносять до найпоширешших та продуктивних СКБД, яш поширюють на умовах вiдкритих вихвдних кодiв [12,13].

Продуктивнiсть PHP та JavaTM XML-RPC Web-служб пошуку в даних PostgreSQL, при рiзних обсягах оброблюваноi iнформацii, була дослщжена нами рашше в роботi [11]. Аиалiз результатiв роботи [11] дозволив вибрати оптимальне програмне забезпечення для XML-RPC Web-служб, що працюють iз СКБД PostgreSQL. Однак подiбних дослiджень для SOAP PHP Web-^жб не було проведено.

У даиш роботi була поставлена задача аналiзу продуктивностi XML-RPC та SOAP РНР Web-служб при пошуку в однакових об'емах даних СКБД PostgreSQL, для визначення оптимального програмного забезпечення для даноi СКБД. З щею метою передбачалося також розробити програму-тестер з простим шгерфейсом користувача.

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

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

Також були шдготовлеш об'екти дослiджения - 8 таблиць (Data1-Data8) бази даних (БД) СКБД PostgreSQL. Ц таблицi мали однакову структуру полiв (два поля - ключове та даних), але рiзний обсяг збереженоi iнформацii V , у якш здiйснювався пошук (вщ 1,25 MБайт до 10 Мбайт, крок - 1,25 Mбайт).

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

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

т = Т-1, (1)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вш складався з п'яти полiв вводу, трьох кнопок, комбiнованого списку, а також двох таблиць, яш використовувалися аналопчним образом при роботi, як з XML-RPC, так i з SOAP PHP Web-службою пошуку в даних PostgreSQL. Програма-тестер була написана мовою Java з використанням програмних продукпв - Apache XML-RPC та Apache Axis.

При цьому програмне забезпечення, яке використовувалося в данш робоп, мютило в to6î сервер Apache 2.2.25, пакет РНР 5.2.11 та СКБД PostgreSQL-9.3.5.

Додатки працювали на персональному комп'ютерi (CPU - 1,6 ГГц, RAM - 1 ГБайт).

При тдготовщ до проведення дослщжень продуктивностi розроблених додаткiв на сервер Apache установлювалися XML-RPC та SOAP Web-служби пошуку в таблицях Data1 - Data8 СКБД PostgreSQL.

У ходi вимiрiв в програмi JXmlPHP спочатку у списку "Service" вибирався тип Web-служби (XML-RPC або SOAP), тсля чого формувалася таблиця "Request" з iменами вiдносин СКБД, а також максимальними значеннями параметрiв пошуку в них. З щею метою використовувалися поля вводу "Table" та "Max", а також кнопка "Enter" штерфейсу користувача. Попм у поля вводу "URI" та "Reapet" уводилися URI Web-служби та число ïï звернень до кожноï таблиц при пошуку в даних, вщповщно.

У наших дослiдженнях як XML-RPC, так i SOAP Web-служба виконувала 10000 транзакцш пошуку для кожного з восьми ввдносин Data1 - Data8.

Запуск тестування здiйснювався натисканням на кнопку "Run" програми-тестера. У процес тестування розподiлений додаток послщовно працював з даними всiх таблиць БД.

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

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

У наших дослвдженнях спочатку вимiрювалась продуктившсть SOAP Web-служб пошуку у ввдносинах БД СКБД PostgreSQL, попм -. XML-RPC.

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

Як видно з цього рисунка, при восьмикратному збшьшенню обсягу шформацп пошуку V в СКБД, час вщгуку т зростав незначно (не б№ше нж на 20 %, стосовно початкових значень, як для XML-RPC, так i SOAP служб).

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

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

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

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

m

т = £KV", (2)

n=0

де к0,k1,...,km - постiйнi коефiцiенти.

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

Оцiнка вiдповiдностi моделi (2) з даними тестування здiйснювалася нами за допомогою коефщента детермшацп D. Коефщент детермшацп - частка дисперси залежною змшно1, що пояснюеться моделлю залежностi яка використовуеться [16]. Коефщент детермшацп змiнюеться вiд 0 до 1, чим ближче D до 1, тим точшше модель.

о 5 ю

V, МБайт

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

Як з'ясувалося, у результат математично! апроксимацп результата тестування на основi (2), за допомогою програми JMathDFP, коефщент детермшацп D, для використано! модел1, мав значення: 0,939 i 0,933 (при m =1), 0,941 i 0,939 (m =2), 0,994 i 0,992 (m =3), для XML-RPC та SOAP служб, вщповвдно.

Так1 ж значення D, для використано1 модел^ були отриманi нами при подiбних обчисленнях з допомогою ввдомих статистичшх програм.

Залежностi (2) з m =3, отриманi в результатi апроксимацп даних експерименту, та яш найбшьш точно lx описують, також наведеш на рис.1. При цьому, як показують додатковi досл1дження, функцп t(V) з m =3 е монотонно зростаючими для V < 10.0 МБайт.

У той час, як наведеш на рис.1 експериментальш значення т , так i залежностi t(V), отримаш в результатi lx математично1 апроксимацп, вказують на те, що продуктившсть Web-служб на основi XML-RPC протоколу була вище, нж на основi SOAP, для всього дослвдженого iнтервалу значень V .

Цей результат можна пояснити тим, що стандарт XML-RPC у порiвняннi з SOAP е бшьш простим, вщповвдно час який витрачаеться програмним API на формування та парсiнг документа обмiну у розподiлениx додатках на основi XML-RPC Web-служб менше, чим для функцюнально подiбниx на основi SOAP.

Висновки

Таким чином, у данш роботi нами була створена програма-тестер з програмним iнтерфейсом доступу до шформацшних Web-служб та виконаний аналiз продуктивностi XML-RPC i SOAP РНР служб пошуку в даних СКБД PostgreSQL.

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

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

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

Крiм того, передбачаеться розширити функцiональнi можливостi iнтерфейсу програми-тестера для роботи з б№шою кiлькiстю стандарпв XML-документiв обмiну, як1 використовують шформацшш Web-служби.

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

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

2. Mitchell L. J. PHP Web Services / L. J. Mitchell. - Sebastopol, CA: O'Reilly Media, 2013. - 115 p.

3. Rosebrock E. Creating Interactive Websites with PHP and Web Services / E. Rosebrock. - SYBEX, 2003. - 432 p.

4. Гутманс Э. РНР 5. Профессиональное программирование / Э. Гутманс, С. Баккен, Д. Ретанс. -СПб: Символ-Плюс, 2006. - 704 с.

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

5. Олищук А.В. Разработка Web-приложений на РНР 5. Профессиональная работа / А.В. Олищук, А.Н. Чаплыгин. М.: Вильямс, 2006. - 352 с.

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

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

8. Горбенко А. В. Анализ производительности Web сервисов в среде Cloud Computing /

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

9. Менаске Д. Производительность Web-служб. Анализ, оценка и планирование / Д. Менаске,

B. Алмейда. - СПб.: ООО «ДиаСофтЮП», 2003. - 480 с.

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

11. Точилин С. Д. Производительность XML-RPC Web-служб поиска в данных СУБД MySQL и

PostgreSQL / С. Д. Точилин, Д. С. Точилин // Вюник ЗДУ. - 2010. - № 1. - С.109-113.

12. Уорсли Дж. PostgreSQL. Для профессионалов / Дж. Уорсли, Дж. Дрейк. - СПб: Питер, 2003. -

496 с.

13. Гешвинде Э. Разработка Web-приложений на РНР и PostgreSQL. Руководство разработчика и

администратора / Э. Гешвинде, Ганс-Юрген Шениг. - СПб: ООО «ДиаСофтЮП», 2003. - 608 с.

14. Носач В. В. Решение задач аппроксимации с помощью персональных компьютеров / В. В. Носач.

- М.: МИКАП, 1994. - 382 с.

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

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