Главная
страница 1


СРАВНИТЕЛЬНЫЙ АНАЛИЗ СЕРВЕРОВ приложений

Аннотация

Сервер приложений является одной из ключевых составляющих в многозвенной архитектуре приложений. Он обеспечивают масштабируемую, высокопроизводительную инфраструктуру, предоставляет модель разработки и развертывания, а также различные программные компоненты, значительно облегчающие процесс разработки. Говоря о Java Enterprise, существует несколько вендоров, предоставляющих свои продукты с поддержкой Java EE 6. Каждый из них был по-разному спроектирован и разработан, имеет разную стратегию развития и поддерживает разные компоненты спецификации. Это позволяет проводить сравнение между серверами приложений, оценивать эффективность, надежность и скорость их работы.

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

Введение


Вне контекста приложений, которые могут быть развернуты на серверах, сравнить их можно по некоторым общим критериям, которые будут рассмотрены в данной обзорной статье. Если сравнивать сервера, принимая во внимание зависимость от развернутого на них приложения, то основным составляющим будут бизнес-объекты, входящие в структуру приложения. В составной критерий в таком случае войдет тип объекта, его размер, количество полей и бизнес-методов, а также способы управления сервера жизненным циклом этого объекта. В данном случае речь идет об объектах Enterprise JavaBeans, входящих в состав Java EE, для работы с которыми сервер приложений должен иметь в своем составе контейнер EJB.

Рассмотрим наиболее распространенные сервера приложений и проведем их общее сравнение с целью в дальнейшем выделить критерии сравнения их работы с компонентами бизнес-логики приложений. В Таблице 1 перечислены сервера приложений, которые будут рассмотрены, и их поддержка Java EE – полная или вэб-профиль.




Application Server

Version

Java EE Compatibility

Oracle Glassfish

3.1.2.2

Full

Oracle WebLogic

12c(12.1.1)

Full

JBoss AS

7.1.1

Web Profile

IBM WebShepre

3.0.0.3

Full

Apache TomEE

1.5.1

Web Profile

Таблица 1: JavaEE Compability [1]

Oracle Glassfish Server


Когда Oracle овладел всеми продуктами Sun Microsystems, активнее стала использоваться стратегия разделения на бесплатное и платное решение. Также произошло и с Glassfish [2]: Glassfish Server Open Source Edition & Oracle Glassfish Server. Open Source версия позиционируется как лучший бесплатный сервер приложений и полностью поддерживает Java EE 6. Коммерческая версия расширяет функционал бесплатной версии поддержкой Oracle и некоторыми интересными функциями, такими как Active Redeploy - возможность взаимодействовать с приложением во время его переразвертывания.

Примечательно, что в состав Glassfish входит Apache Tomcat в качестве контейнера сервлетов.


Говоря о продуктах Oracle, стоит упомянуть и Oracle WebLogic Server [3], зародившийся еще в 1997м году. Последняя версия 12 также обеспечивает полную поддержку Java EE 6.

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



JBoss AS


Продукт компании Red Hat. Основанный на Java, JBoss [4] имеет лишь вэб-профиль лицензию JavaEE6: например, нет поддержки JNDI (Java Naming and Directory Interface). Однако, поддержки этой и других технологий нет в Open source версии JBoss AS. Покупая лицензию Red Hat, можно получить поддержку необходимой технологии поверх JBoss AS. JBoss Enterprise Application Platform – это платформа, с настройкой производительности под высоко нагруженные, масштабируемые приложения. Помимо поддержки Java EE, JBoss EAP предоставляет и различные инструменты для управления. Например, JBoss Operating Networks, позволяющий администрирования все окружения для тестирования и разработки.


IBM WebSphere


Флагман бренда WebSphere [5] компании IBM. Также разделен на коммерческую версию и с открытым исходным кодом. Обе версии обеспечивают полную поддержку Java EE 6. Основан на Apache Geronimo, в состав которого входит Apache Tomcat в качестве контейнера сервлетов. Geronimo, к слову сказать, также полностью поддерживает Java EE 6.

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



Apache TomEE


Осенью 2011го увидел свет новый продукт от Apache – TomEE [6]. JavaEE Web Profile on Tomcat. Поддержка EJB в нем осуществляется за счет Open EJB - контейнера EJB с открытым исходным кодом по лицензией Apache 2.0. Ранее Open EJB уже интегрировался в другие сервера приложений, например, тот же Geronimo. Open EJB в текущей версии 3.1.4 полностью поддерживает EJB 3.0 и частично 3.1. В октябре 2011 TomEE получил сертификат Oracle как совместимая реализация Java EE 6 (вэб-профиль).

TomEE выступает как надстройка на Tomcat. Стоит сказать, что решение, наподобие TomEE уже существовали. Например, TCat, также основанный на чистом Tomcat и осуществляющий поддержку EJB за счет Open EJB. Однако, это платный продукт, в то время как Apache предоставляет бесплатное решение.



Сравнение


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

Для измерений была взята машина со следующими характеристиками:



  • OС Windows 7 Professional, SP1, 64bit, build 6.1.7601 (Win7 RTM)

  • Процессор Intel(R) Core(TM) i5-2430M, 2.40GHz

  • 4GB оперативной памяти

Помимо общих следует описать и аппаратные характиристики, также влияющие на результаты измерений. Они были установлены с помощью программы диагностики и тестирования AIDA64 Extreme Edition v2.2.1800:

  • IDE Controller Intel(R) Mobile Express Chipset SATA AHCI Controller

  • Disk Drive TOSHIBA MK6476GSX (640 GB, 5400 RPM, SATA-II)

  • Disk File System NTFS

  • Memory Type DDR3 SDRAM

  • Memory Speed DDR3-1333 (667 MHz)

  • DRAM Manufacturer Samsung

  • Serial Number 61E2CAC5h (3318407777)

Проведенные тесты памяти на скорость чтения и записи показали следующие результаты:



  • Memory Read Speed 9817 MB/s

  • Memory Write Speed 10307 MB/s

  • Memory Copy Speed 9141 MB/s

Размер дистрибутива



Сервер приложений

Размер (mb)

Oracle Glassfish

54.6(32.7*)

JBoss AS

127

IBM WebShepre

106

Apache TomEE

27.1

Таблица 2. Размер дистрибутива. * - Web Profile

Объем занимаемого дискового пространства



Сервер приложений

Размер (mb)

Oracle Glassfish

105(60*)

JBoss AS

78

IBM WebShepre

2200

Apache TomEE

31

Таблица 3. Объем занимаемого дискового пространства после установки. * - Web Profile

Время развертывания



Сервер приложений

Время старта (мс)

Oracle Glassfish

5756

JBoss AS

2218

IBM WebShepre

>40 000

Apache TomEE

734

Таблица 4. Время старта сервера.

Память, используемая процессом java.exe



Сервер приложений

Java.exe (mb)

Oracle Glassfish

119

JBoss AS

83

IBM WebShepre

150

Apache TomEE

53

Таблица 5. Память, используемая процессом java.exe.

Дальнейшее сравнение невозможно без попытки развернуть на сервере какое-либо приложение. Т.к. исследование проводится в контексте технологии Enterprise JavaBeans, то в рамках сравнения на каждом из серверов приложений были развернуты тестовые приложения, представляющие собой имплементации типов EJB 3.1: Singleton, Stateless и Statefull бины. Эти примеры предоставляет официальный сайт Apache TomEE[6].



Сервер приложений

Singleton (мс)

Stateless (мс)

Statefull (мс)

Oracle Glassfish

970

499

216

JBoss AS

290

281

120

Apache TomEE

234

196

115

Таблица 6. Время развертывания приложений (мс)

Заключение


Подводя итог сравнительному анализу, можно выделить Oracle Glassfish Server: два дистрибутива для full support и web profile, сравнительно быстрый старт и потребление ресурсов, поддержка Oracle. Также все большую популярность набирает продукт от Apache (TomEE и OpenEJB), во многом за счет открытого исходного кода и быстродействия. Безусловно, стоит отметить и тот факт, что IBM WebSphere - это единственный из представленных полностью платный сервер приложений, чтобы пользоваться им полноценно в любом случае придется приобрести лицензию.

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


Литература


  1. Поддержка JAVA EE серверами приложений JavaEE Compability [Электронный ресурс] // http://java.sun.com/javaee/overview/compatibility.jsp [дата просмотра: 02.04.2013]

  2. Oracle Glassfish Server [Электронный ресурс] // http://glassfish.java.net/ [дата просмотра: 02.04.2013]

  3. Oracle Weblogic Server [Электронный ресурс] // http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html [дата просмотра: 02.04.2013]

  4. JBoss AS [Электронный ресурс] // http://www.jboss.org/jbossas [дата просмотра: 02.04.2012]

  5. IBM Websphere [Электронный ресурс] // http://www-01.ibm.com/software/ru/websphere/ [дата просмотра: 02.04.2013]

  6. Apache TomEE [Электронный ресурс] // http://openejb.apache.org/ [дата просмотра: 02.04.2013]

  7. Application Servers Benchmark [Электронный ресурс] // http://agoncal.wordpress.com/2011/10/20/o-java-ee-6-application-servers-where-art-thou/ [дата просмотра: 02.04.2013]

  8. Survey Results: Java EE Containers [Электронный ресурс] // http://zeroturnaround.com/blog/java-ee-container-heaven-hell-survey-results/ [дата просмотра: 02.04.2013]

  9. Оценивая серверы приложений J2EE // Interface Ltd. — 2001

  10. Буди Карниван. Программирование web-приложений на языке Java // Лори. — 2009. — 880с.

  11. Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2. Распределенные приложения // Бином-пресс. — 2009. — 466с.





Смотрите также:
Сравнительный анализ серверов приложений
73.69kb.
1 стр.
Еврипид и Гете: сравнительный анализ
41.54kb.
1 стр.
Анализ способов защиты приложений…
78.18kb.
1 стр.
Сравнительный анализ водных конфликтов в международных речных бассейнах
737.16kb.
12 стр.
«Сравнительный анализ условий ведения малого бизнеса в США и Японии»
687.18kb.
9 стр.
Чарльз Ф. Эндрейн. Сравнительный анализ политических систем
6064.23kb.
19 стр.
Сравнительный анализ потребительских свойств продукции
222.28kb.
1 стр.
Новое мощное поколение Unix-серверов начального уровня, производительность и надежность которых не уступают мэйнфреймам
49.49kb.
1 стр.
Проект модернизации и расширения центра обработки данных засо
33.34kb.
1 стр.
Сравнительный анализ регулирования рекламной деятельности в РФ и европейских странах
458.34kb.
1 стр.
Диссертация на тему: «Влияние заинтересованных групп на изменение политического курса: сравнительный анализ США и ссср» Направление 030200. 68 Политология
1076.13kb.
6 стр.
Диссертации: «Противодействие терроризму: сравнительный анализ опыта России и сша»
11.89kb.
1 стр.