Сравнительный анализ серверов приложений
Сервер приложений как одна из ключевых составляющих в многозвенной архитектуре приложений. Анализ наиболее распространенных серверов приложений, сравнение их характеристик с целью выделить критерии их работы с компонентами бизнес-логики приложений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.01.2019 |
Размер файла | 23,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Сравнительный анализ серверов приложений
Шульгин Д.С., аспирант кафедры информатики СПбГУ, dan.shulgin@gmail.com
Аннотация
сервер приложение архитектура бизнес
Сервер приложений является одной из ключевых составляющих в многозвенной архитектуре приложений. Он обеспечивают масштабируемую, высокопроизводительную инфраструктуру, предоставляет модель разработки и развертывания, а также различные программные компоненты, значительно облегчающие процесс разработки. Говоря о Java Enterprise, существует несколько вендоров, предоставляющих свои продукты с поддержкой Java EE 6. Каждый из них был по-разному спроектирован и разработан, имеет разную стратегию развития и поддерживает разные компоненты спецификации. Это позволяет проводить сравнение между серверами приложений, оценивать эффективность, надежность и скорость их работы.
В данной статье будут рассмотрены наиболее распространенные сервера приложений и проведено сравнение их характеристик, общее сравнение с целью в дальнейшем выделить критерии их работы с компонентами бизнес-логики приложений.
Вне контекста приложений, которые могут быть развернуты на серверах, сравнить их можно по некоторым общим критериям, которые будут рассмотрены в данной обзорной статье. Если сравнивать сервера, принимая во внимание зависимость от развернутого на них приложения, то основным составляющим будут бизнес-объекты, входящие в структуру приложения. В составной критерий в таком случае войдет тип объекта, его размер, количество полей и бизнес-методов, а также способы управления сервера жизненным циклом этого объекта. В данном случае речь идет об объектах Enterprise JavaBeans, входящих в состав Java EE, для работы с которыми сервер приложений должен иметь в своем составе контейнер EJB.
Рассмотрим наиболее распространенные сервера приложений и проведем их общее сравнение с целью в дальнейшем выделить критерии сравнения их работы с компонентами бизнес-логики приложений. В Таблице 1 перечислены сервера приложений, которые будут рассмотрены, и их поддержка Java EE - полная или вэб-профиль.
Таблица 1: JavaEE Compability [1]
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 |
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
Размер дистрибутива
Таблица 2. Размер дистрибутива. * - Web Profile
Сервер приложений |
Размер (mb) |
|
Oracle Glassfish |
54.6(32.7*) |
|
JBoss AS |
127 |
|
IBM WebShepre |
106 |
|
Apache TomEE |
27.1 |
Объем занимаемого дискового пространства
Таблица 3. Объем занимаемого дискового пространства после установки. * - Web Profile
Сервер приложений |
Размер (mb) |
|
Oracle Glassfish |
105(60*) |
|
JBoss AS |
78 |
|
IBM WebShepre |
2200 |
|
Apache TomEE |
31 |
Время развертывания
Таблица 4. Время старта сервера.
Сервер приложений |
Время старта (мс) |
|
Oracle Glassfish |
5756 |
|
JBoss AS |
2218 |
|
IBM WebShepre |
>40 000 |
|
Apache TomEE |
734 |
Память, используемая процессом java.exe
Таблица 5. Память, используемая процессом java.exe.
Сервер приложений |
Java.exe (mb) |
|
Oracle Glassfish |
119 |
|
JBoss AS |
83 |
|
IBM WebShepre |
150 |
|
Apache TomEE |
53 |
Дальнейшее сравнение невозможно без попытки развернуть на сервере какое-либо приложение. Т.к. исследование проводится в контексте технологии Enterprise JavaBeans, то в рамках сравнения на каждом из серверов приложений были развернуты тестовые приложения, представляющие собой имплементации типов EJB 3.1: Singleton, Stateless и Statefull бины. Эти примеры предоставляет официальный сайт Apache TomEE[6].
Таблица 6. Время развертывания приложений (мс)
Сервер приложений |
Singleton (мс) |
Stateless (мс) |
Statefull (мс) |
|
Oracle Glassfish |
970 |
499 |
216 |
|
JBoss AS |
290 |
281 |
120 |
|
Apache TomEE |
234 |
196 |
115 |
Заключение
Подводя итог сравнительному анализу, можно выделить 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с.
Размещено на Allbest.ru
...Подобные документы
Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.
дипломная работа [68,7 K], добавлен 04.08.2016Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.
курсовая работа [869,3 K], добавлен 18.05.2014Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.
контрольная работа [362,8 K], добавлен 10.11.2013Методика создания приложений передающих данные в Microsoft Word. Технология взаимодействия приложений с текстовым редактором Microsoft Word. Создание и использование экземпляров серверов автоматизации. Взаимодействие с сервером на уровне документа.
курсовая работа [120,7 K], добавлен 26.03.2010Анализ архитектуры информационной системы, в структуру которой входят системы файл-сервер и клиент-сервер. Сравнение языков запросов SQL и QBE. Принципы разработки приложений архитектуры клиент-сервер при помощи структурированного языка запросов SQL.
курсовая работа [88,9 K], добавлен 11.04.2010Характеристика модели клиент-сервер как технологии взаимодействия в информационной сети. Разработка и описание алгоритмов работы приложений на платформе Win32 в среде Microsoft Visual Studio, использующих для межпроцессного взаимодействия сокеты.
курсовая работа [544,6 K], добавлен 02.06.2014План проекта настройки сервера для удалённого запуска приложений MS Visio 2007 и MS Project 2007 через RemoteApp. Сбор информации об установленном программном и аппаратном обеспечении; аудит событий безопасности объектов всех серверов с помощью подписок.
дипломная работа [10,0 M], добавлен 11.09.2012Создание процедурно-ориентированной и объектно-ориентированной реализации конкретного приложения и сравнительный анализ их вычислительной эффективности. Определение попадания точки внутрь фигуры. Возможности улучшения характеристик качества приложений.
курсовая работа [1,5 M], добавлен 04.12.2021Основы создания мидлетов (midlet) - MIDP приложений для мобильных устройств на языке Java. Особенности устройств, для которых мидлеты предназначены. Библиотеки javax.microedition. Практические примеры создания MIDP приложений для телефона и их запуск.
методичка [25,9 K], добавлен 30.06.2009Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.
монография [4,8 M], добавлен 13.03.2008Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.
контрольная работа [76,4 K], добавлен 08.07.2014Функции технологии Ajax разработки Web-приложений: выполнение HTTP-запросов в клиентской части и анализ ответа XML-сервера. Создание данных объекта XMLHttpRequest для разных браузеров. Обработка с помощью сервлета. Функциональность задач в Ajax.
лабораторная работа [54,8 K], добавлен 06.06.2009Обзор существующих приложений в сфере оказания автомобильной помощи. Рассмотрение алгоритмического конструирования комплекса мобильных приложений по оказанию автомобильной помощи на дорогах. Оценка тестирования авторизации в приложении для водителя.
дипломная работа [1,9 M], добавлен 12.02.2018Основные вехи на пути развития систем программирования. Microsoft Access - первая СУБД для персональных компьютеров, созданная для работы в среде Windows. Перенос файл-серверных приложений в среду клиент-сервер. Использование ActiveX Data Objects.
презентация [662,2 K], добавлен 11.04.2013Использование Windows Installer с целью управления установкой и конфигурированием приложений. Работа в среде Microsoft Word: создание текстового документа со встроенным готовым рисунком. Разработка алгоритма и программы расчета ежемесячной квартплаты.
контрольная работа [1,3 M], добавлен 31.05.2012Подходы и алгоритмы автоматизации тестирования. Анализ специфики работы с локальными и веб-приложениями, внедрение автоматических тестов в процесс контроля качества приложений Global XB, GCube и Thistle. Оптимальный инструмент разработки скриптов.
дипломная работа [1,5 M], добавлен 15.01.2012Облачные технологии в бизнес-процессах. Модели использования бизнес-приложений в качестве интернет-сервисов. Практика применения облачных технологий. Приложения, созданные на основе Windows Azure. Создание систем и офисных приложений по запросу.
реферат [25,3 K], добавлен 16.06.2013Проектирование, кодирование и отладка службы Windows: "Контроль приложений", осуществляющей контроль набора приложений и управление ими; разработка приложения, управляющего этой службой. Взаимодействие службы и приложения; тестирование и сопровождение.
курсовая работа [1,1 M], добавлен 22.05.2013Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.
курсовая работа [867,9 K], добавлен 16.07.2013