ISSN 0236-235X (P)
ISSN 2311-2735 (E)
4

09 Сентября 2024

Выбор Java сервера приложений для информационных систем уровня предприятия


Князев М.В. () -
Ключевое слово:
Ключевое слово:


     

При разработке информационных систем уровня предприятия (ИСУП) использование созданного ранее третьими фирмами программного сервера приложений (ПСП) обеспечивает построение качественной системы в более сжатые сроки, чем при построении инфраструктуры поддержки качества ИСУП с нуля. Таким образом, важным шагом при создании многих ИСУП является выбор конкретного ПСП. Следует учитывать, что при использовании «открытых» (open source) ПСП стоимость желаемой ИСУП оказывается существенно меньшей.

В статье рассматриваются особенности выбора Java ПСП, поскольку именно такие ПСП традиционно используются при создании кроссплатформенных ИСУП (то есть ИСУП, имеющих возможность развертываться на более чем одной операционной системе), что актуально в связи с темпом развития Unix ОС.

На рисунке 1 приведена UML диаграмма развертывания типичной ИСУП, использующей Java ПСП.

Выбор категории Java ПСП

Java ПСП можно классифицировать по нескольким категориям верхнего уровня.

1.  Серверы начального уровня, поддерживающие сервлеты и JSP (Java server pages) – apache tomcat.

2.  Серверы начального уровня, поддерживающие большинство возможностей J2EE – JBoss.

3.  Серверы среднего уровня, поддерживающие большинство возможностей J2EE и имеющие серьезную коммерческую поддержку – caucho resin.

4.  Продвинутые J2EE серверы – полная поддержка J2EE, необходимые лицензии и сертификаты, интеграция со средствами разработки приложений и информационного наполнения, надежность, безопасность, масштабируемость, серьезная техническая поддержка, стабильное положение на рынке – BEA WebLogic, IBM WebSphere, Oracle application server, Sun java system application server.

5.  Специальные серверы – “нишевые” продукты, как правило, меньшая доля рынка, чем у серверов предыдущей группы, полный набор возможностей плюс разного рода специфическая функциональность (например, интеграция с развитыми системами управления производством/ предприятием) – ATG Dynamo, SAP AG Web application server, Novell exteNd.

Для простых стандартных приложений, требующих динамическую генерацию Web-страниц (например, Web-сайт компании, настраиваемый на конкретного посетителя), подходящим выбором мог бы быть ПСП начального уровня c поддержкой сервлетов и JSP. Продвинутые ПСП подошли бы для большинства ИСУП, для которых достаточно возможностей J2EE. Промежуточные варианты (частично J2EE-совместимые ПСП; на практике обычно рассматриваются наряду с продвинутыми ПСП при ограничениях бюджета) также подошли бы для таких ИСУП, однако поскольку они не полностью совместимы с J2EE спецификациями, последующий перенос ИСУП на другой Java ПСП был бы нетривиальной задачей.

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

Таблица 1, построенная по материалам сай- та [1], показывает соответствие стандартам наиболее распространенных Java ПСП.

Нетрудно заметить, что все лидирующие серверы приложений (включая и JBoss, хотя он и не сертифицирован на соответствие J2EE 1.3) поддерживают практически одни и те же версии J2EE стандартов. Таким образом, уровень поддержки стандартов сам по себе больше не может служить решающим фактором при выборе Java ПСП.

Характеристики Java ПСП можно разделить на следующие группы.

1.          Поддерживаемые стандарты:

1.1.      сервлеты – 2.2, 2.3, 2.4;

1.2.      JSP – 1.1, 1.2, 2.0;

1.3.      EJB – 1.1, 2.0, 2.1;

1.4.      JMS – 1.0, 1.02, 1.1;

1.5.      наличие сертификата соответствия J2EE – 1.3, 1.4;

1.6.      другие стандарты, как-то: JCA, JTA, JAF, JAXM, JAXP, JAXR, JAX-RPC, JAAS, Java ACC, JavaMail, JNDI, J2EE Management, JDBC, WS-I Basic profile и т.д.

2.          Поддерживаемые реализации и версии Java runtime (среды выполнения Java):

2.1.      Sun SDK/JRE;

2.2.      IBM SDK/JRE;

2.3.      BEA JRockit SDK;

2.4.      версии Java 2 – 1.3.x, 1.4.x, 1.5.x.

3.          Поддерживаемые серверы баз данных и наличие оптимизированных JDBC драйверов для таких серверов.

4.          Поддерживаемые операционные системы и аппаратные платформы (архитектуры).

5.          Требования к ресурсам: как правило, указываются минимальный/рекомендуемый объемы оперативной памяти и объем необходимого для инсталляции дискового пространства.

6.          Производительность и масштабируемость:

6.1.      вертикальная масштабируемость (SMP – симметричная мультипроцессорность);

6.2.      горизонтальная масштабируемость (кластеризация);

6.3.      Подпись:  
Рис. 2. Типичная конфигурация тестируемой системы бен-чмарка SPECjAppServer2002
результаты бенчмарков.

7.          Надежность: поведение при отказах аппаратуры, программных сбоях и т.п.

8.          Варианты поставки и стоимость.

9.          Варианты технического сопровождения и стоимость.

10.       Стабильность и рыночное положение фирмы-производителя.

Как упоминалось, функциональные возможности лидирующих Java ПСП весьма близки, что делает соотношение стоимости и производительности одним из важнейших критериев выбора. Традиционно для оценки производительности используются стандартные бенчмарки, однако единственным, имеющим серьезную коммерческую поддержку, является бенчмарк для Java ПСП, – SPECjAppServer2002 от Standard Performance Eva luation Corporation, оценивающий производительность Java ПСП, совместимых с J2EE 1.3, и преимущественно производительность EJB-кон тейнера (EJB 2.0). Существует более новая версия бенчмарка SPECjAppServer2004 (рис. 2), однако на данный момент не было зарегистрировано ни одного результата с его использованием.

В таблице 2 приведены некоторые результаты SPECjAppServer2002 и соответствующие программно-аппаратные конфигурации.

Основными результатами являются общая производительность системы в единицах TOPS (Total operations per second) и стоимость одной единицы производительности в US$/TOPS. Результаты приводятся в двух категориях: Dual node – один сервер приложений и один сервер базы данных; и Multiple node – несколько серверов приложений и один сервер базы данных. Всего на данный момент был зарегистрирован 21 результат, причем все результаты были поданы либо производителями Java ПСП, либо производителями аппаратуры для своих систем.

Хотя подобный формат результатов (рассматривающий целый комплекс элементов системы как одно целое) позволяет выбирать программно-аппаратные платформы для ИСУП, недостатки подобных источников для оценки производительности Java ПСП очевидны:

·    SPECjAppServer2002 оценивает лишь малую долю возможностей J2EE 1.3 совместимых серверов приложений;

·    довольно высокая стоимость бенчмарка и необходимых программно-аппаратных средств, а также жесткие ограничения на порядок публикации результатов ведут к отсутствию независимых результатов тестирования;

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

Для подобного SPECjAppServer2002 бенчмарка основное влияние на общую производительность системы оказывают следующие факторы: аппаратная конфигурация серверов приложений и базы данных; ПСП; используемый Java runtime; сервер базы данных и JDBC драйверы; производительность используемых сетевых интерфейсов (в общем случае как локальной, так и глобальной сетей).

Таким образом, для оценки производительности Java ПСП как самостоятельного элемента ИСУП можно предложить следующий эксперимент на основе выбранной категории Java ПСП и стандартных бенчмарков.

При фиксированных Java runtime, аппаратной конфигурации серверов приложений и базы данных, при сервере базы данных и JDBC драйвере, а также сетевых интерфейсах следует применить подобный SPECjAppServer2002 бенчмарк к каждому Java ПСП из выбранной на основании изложенного категории Java ПСП.

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

При отсутствии таких универсальных бенч марков (ранее они не были известны автору) их можно легко разработать для существующего архитектурного прототипа, используя средства записи информации (logging), например, пакет Log4j (http://logging.apache.org/log4j/docs/index.html) для регистрации информации от Apache Software Foundation, сохраняя информацию о времени вызова и возврата архитектурно значимых процедур. При этом следует учитывать время, затрачиваемое средствами регистрации информации на свои собственные вызовы.

Одним из важнейших показателей эффективности Java ПСП является соотношение стоимости оптимальной программно-аппаратной конфигурации на его основе и достижимой производительности. Для предварительного выбора программно-аппаратной конфигурации (Java ПСП, аппаратная архитектура, ОС, Java runtime, сервер базы данных) могут быть использованы результаты стандартных бенчмарков, например SPECjAppSer ver2002. Однако для оптимального выбора Java ПСП и оценки требований к аппаратному обеспечению необходимы бенчмарки на основе архитектурных прототипов проектируемой системы.

Список литературы

1. Матрица Java ПСП на TheServerSide.com: http://www.theserverside.com/reviews/matrix.tss

2. Бенчмарк SPECjAppServer2002: http://www.spec bench.org/jAppServer2002/



http://swsys.ru/index.php?id=546&lang=.docs&page=article


Perhaps, you might be interested in the following articles of similar topics: