Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WSO2_diplom.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.74 Mб
Скачать

2.4.5 Проведение тестов

Для того чтобы определиться, какая из представленных систем лучше всего удовлетворяет поставленным целям, было решено проанализировать их производительность и другие характеристики, проведя несколько соответствующих тестов. Было решено сравнивать производительность самых последних версий технологий, о которых было сказано выше: WSO2 ESB 4.6.0, Mule 3.3.0, Talend-SE-5.1.1 и UltraESB 1.7.1- Enhanced. Так как по результатам тестов WSO2 ESB 4.6.0 показал одни из лучших результатов, то так же было решено проанализировать и одну из предыдущих версий этого продукта: WSO2 ESB 4.5.1, а так же особое внимание будет уделяться именно этому продукту, чтобы дать более полные его характеристики и объяснить достоинства его использования в проекте.

WSO2 ESB 4.6.0 является последней версией ESB на момент проведения анализа, и данные ниже показывают прирост производительности по сравнению с WSO2 ESB 4.5.x.Критерии оценки эффективности работы выполняются в Amazon EC2, поэтому они могут быть независимо проверены и повторены. Amazon EC2 — веб-сервис, который предоставляет вычислительные мощности в облаке. Простой веб-интерфейс сервиса позволяет получить доступ к вычислительным мощностям и настроить с минимальными затратами ресурсы. Он предоставляет пользователям полный контроль над вычислительными ресурсами, а также доступную среду для работы. Сервис сокращает время, необходимое для получения и загрузки нового сервера.

Сценарии тестирования:

  • DirectProxy;

  • CBRProxy;

  • CBRSOAPHeaderProxy;

  • XSLTProxy;

  • XSLT Enhanced Proxy (Используется FAST XSLT медиатор, управляемый сквозным(passthrough) траспортом);

  • SecureProxy.

Для каждого сценария были проведены тесты с использованием различных значений: размеров сообщений и количества пользователей. Размеры образца сообщения колебались от 512 до 100K байт, с одновременным количеством 20, 40, 80, 160, 320, 640, 1280 и 2560 пользователей.

Общие наблюдения.

В следующей таблице и графике показаны результаты теста производительности. Этот график показывает среднее значение среди сообщений всех размеров.

Количество сообщений для одного клиента N = 1000 при подключении до 320 параллельных клиентов и N = 10 для реализации более высокого параллелизма (1280/2560 клиентов).

Mule 3.3.0

Talend-SE-5.1.1

UltraESB 1.7.1 -Enhanced

WSO2 ESB 4.5.1

WSO2 ESB 4.6.0

DirectProxy

3,375

3,315

4,839

2,879

8,278

CBRProxy

1,458

3,108

4,703

2,694

7,765

CBRSOAPHeaderProxy

2,262

3,185

5,063

3,118

7,573

CBRTransportHeaderProxy

2,225

3,751

5,523

3,502

11,024

XSLTProxy

2,225

2,333

3,387

1,735

2,504

XSLTEnhancedProxy  (Fast XSLT mediator)

2,225

2,333

3,387

N/A

5,473

Security

458

534

603

486

560

Тем не менее, было обнаружено, что результаты данного теста были, возможно, ненадежными. Данный факт был исследован более подробно и было отмечено, что в опубликованных тестах при большом количестве параллельных клиентов для WSO2 ESB проявляются неожиданно высокие показатели. Для тестов было задано очень низкое количество сообщений на одного клиента (N = 10) при большом количестве параллельных клиентов. Это не позволяет дать JVM достаточного количества времени, чтобы разогреться, а также не представляет собой длительных испытаний, которые могут показать правдоподобные результаты.

Поэтому было решено повторно запустить тест для WSO2 ESB с использованием 200 сообщений на клиенте с большим числом параллельно работающих клиентов. После этого аномальных данных больше не наблюдалось. Также были перезапущены тесты для UltraESB в EC2 с 200 сообщениями на каждом клиенте для более высокого числа параллельно работающих клиентов. Наблюдения для N = 200 и с большой степенью параллелизма с UltraESB были намного ниже, чем ранее опубликованные. Тесты для Mule и Talend с использованием N = 200 не перезапускались. Результаты показаны в следующей диаграмме и таблице.

В будущих тестах будет использовано N = 200 для высокого числа параллельно работающих клиентов для обеспечения приемлемых результатов.

Количество сообщений в клиенте N = 1000 в случае до 320 параллельных клиентов и N = 200 для большего числа параллельных клиентов (1280/2560).

Mule 3.3.0

Talend-SE-5.1.1

UltraESB 1.7.1-Enhanced

WSO2 ESB 4.5.1

WSO2 ESB 4.6.0

DirectProxy

3,375

3,315

4,839

3,311

5,278

CBRProxy

1,458

3,108

4,703

2,920

4,078

CBRSOAPHeaderProxy

2,262

3,185

5,063

3,270

4,634

CBRTransportHeaderProxy

2,225

3,751

5,523

3,849

5,998

XSLTProxy

2,225

2,333

3,387

1,856

1,800

XSLTEnhancedProxy  (Fast XSLT mediator)

2,225

2,333

3,387

N/A

3,456

Security

458

534

603

529

566

На приведенном выше графике показано, что WSO2 ESB 4.6.0 работает значительно быстрее, чем ESB 4.5.1 и является конкурентоспособным с UltraESB. Заметно, что XSLTProxy на WSO ESB проходит значительно медленнее, чем эквивалентный тест для UltraESB. Но эта проблема решается путем включения в WSO2 ESB 4.6.0 новой опции FastXSLT, которая обеспечивает производительность на уровне UltraESB.

Среднее время задержки для WSO2 ESB 4.6.0 и 4.5.1.

Бал проведен дополнительный тест для измерения среднего времени задержки, добавленной в WSO2 версии ESB 4.6.0 и 4.5.1. Была рассчитана задержка для параллелизма в 20 клиентов и размера сообщения 1000 по следующей формуле: [Задержка = время прямого вызова – время в обе стороны через ESB]. В следующей таблице приведены результаты теста:

Latency for 1K message

ESB 4.6.0

ESB 4.5.1

DirectProxy

0.582

0.828

CBRProxy

0.742

0.979

CBRSOAPHeaderProxy

0.691

0.857

CBRTransportHeaderProxy

0.827

0.861

XSLTProxy

1.987

1.818

XSLTEnhancedProxy

1.345

N/A

SecureProxy

8.867

9.497

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

WSO2 ESB 4.6.0 Анализ использования памяти (После долгой работы).

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

Заключение.

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

Mule и WSO2 имеют множество дополнительных удобных инструментов, помогающих программисту в разработке приложений, основанных на SOA. Это такие инструменты как:

  • Application Server;

  • Governance Registry;

  • Activity Monitor и др.

Но тесты для Mule показывают более низкие результаты, чем для WSO2.

В отличие от Mule и WSO2, UltraESB показывает более высокие результаты в тестах. Но эта технология не имеет такого количества дополнительных инструментов для облегчения разработки, как представленные выше технологии, поэтому использование UltraESB на данный момент является нецелесообразным.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]