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

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

Пользовательский интерфейс клиентской подсистемы представляет собой мультидокумент-ный интерфейс (MDI, multiple document interface): каждая дочерняя MDI-форма является формой представления результатов запроса. Соответствующие элементы пользовательского интерфейса создаются динамически в результате конфигурирования клиента во время выполнения.

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

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

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

ВЫБОР 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, необходимые лицензии и сертификаты, интеграция со средствами разработки приложений и информационного наполнения, надеж-

Рис. 1. Типичная ИСУП, использующая Java ПСП

ность, безопасность, масштабируемость, серьезная техническая поддержка, стабильное положение на рынке - 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. Промежуточные варианты (частично 12ЕЕ-совместимые ПСП; на практике обычно рассматриваются наряду с продвинутыми ПСП при ограничениях бюджета) также подошли бы для таких ИСУП, однако поскольку они не полностью совместимы с 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. горизонтальная масштабируемость (кластеризация);

Таблица 1

Соответствие стандартам наиболее распространенных Java ПСП

Поставщик/ Продукт Редакция/ Версия Дата выпуска JDK EJB JSP JMS J2EE лиц. J2EE серт. Цена Совместимость

Apache/ Tomcat v4.1 Dec-01 1.3 1.4.1 1.2 Free OSS JDK 1.1.8 JVM

BEA/ WebLogic Express 8.1 Basic Feb-03 1.4.1 1.2 + $495 Win 2K, Solaris 8,9 Redhat Linux 2.1

Express 8.1 Premium $3,000

Workgroup 8.1 2.0 1.0.2 1.3 $4,000

Server 8.1 Advantage $10,000

Server 8.1 Premium $17,000

IBM/ Websphere Express 5.0 Oct-02 IBM 1.3.1 1.2 + $1778 /CPU NT, Win2K, Solaris, AIX, OS/400, HP-UX, Linux (Red Hat, SuSE, TurboLinux), Linux/390, NetWare, OS/390

Enterprise 5.0 Mar-03 2.0 1.0.2 +XA 1.3 $25K /CPU

Websphere v5 Nov-02 $8K /CPU

Websphere Network Deployment v5 Nov-02 $12K /CPU

JBoss/ JBoss v3.2 Apr-03 1.3.1 1.4.1 2.0 1.2 1.0.2 Free OSS (LGPL) NT, Win2k, 0S/390, Solaris, ...

Oracle/ Oracle Application Server 10g (includes Toplink) Java Edition v9.0.4 Dec-03 1.4.1 1.4.2 (только для Linux) 2.0 1.2 1.0.2b + 1.3 $5K /CPU Solaris, HP-UX, Redhat Linux, United Linux, NT, Win2K

Standard Edition v9.0.4 $10K /CPU

Enterprise Edition v9.0.4 $20K /CPU

Sun/ Sun Java System Application Server Platform Edition 7.0 Oct-02 1.4 2.0 1.2 1.0.2 + 1.3 Free Solaris 8, 9; WinXP, Win2K; Linux Red Hat 7.2, Sun Linux 5.0

Standard Edition 7.0 $2000 /CPU

Enterprise Edition 7.0 Sept-03 $10,000 /CPU

6.3. результаты бенчмарков.

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

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

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

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

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

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

Рис. 2. Типичная конфигурация тестируемой системы бенчмарка SPECjAppServer2002

граммно-аппаратные конфигурации.

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

Таблица 2

Система Результаты Общая стоимость

BEA WebLogic Server 8.1 SP1 на HP DL 360 Cluster 1,037.02 TOPS@MultipleNode 200.34 US$/TOPS@MultipleNode US$207,750

Источник результатов: BEA Systems, Inc.

Software: BEA WebLogic Server 8.1 SP1, Advantage Edition; BEA WebLogic JRockit 8.1 SP1 SDK; Microsoft SQL Server 2000 Standard Edition; BEA WebLogic Type 4 JDBC MS SQL Server driver

J2EE Application Server (3 systems): HP ProLiant DL360 G3 with Windows 2000 Advanced Server (NTFS); CPU 2 x Intel Xeon DP @3.06GHz; RAM 2048MB; HDD 1x36Gb 10K RPM U320; 1000BaseT Ethernet Database Server (1 system): HP ProLiant DL580 G2 with Windows 2000 Advanced Server (NTFS); CPU 4 x Intel Xeon MP @2.8GHz; RAM 2048MB; HDD 2x36Gb 10K RPM U320; 1000BaseT Ethernet; Smart Array 5312 Controller, Storage Works 4354R Rackmount, 10x36GB 10K U320 HDD

Система Результаты Общая стоимость

BEA WebLogic Server 8.1 SP2 на HP rx4640 1,305.04 TOPS@DualNode 218.28 US$/TOPS@DualNode US$284,854

Источник результатов: BEA Systems, Inc.

Software: BEA WebLogic Server 8.1 SP2, Advantage Edition; BEA WebLogic JRockit 1.4.2_03 64-bit JVM Microsoft SQL Server 2000 Enterprise Edition 64-bit; BEA WebLogic Type 4 JDBC MS SQL Server driver

J2EE Application Server (1 system): HP rx4640; Microsoft Windows Server 2003 Enterprise Edition 64-bit (NTFS); CPU 4 x Intel Itanium 2 @1.5GHz; RAM 8192MB; HDD 1x73Gb 10K RPM U320; 1000BaseT; Database Server (1 system): HP rx4640; Microsoft Windows Server 2003 Enterprise Edition 64-bit (NTFS); CPU 4 x Intel Itanium 2 @1.5GHz; RAM 8192MB; HDD 1x73Gb 10K RPM U320; 1000BaseT Ethernet; RAID SmartArray 6402 Controller, (1) StorageWorks SA30, (10) 36Gb 10K 320 SCSI

Система Результаты Общая стоимость

Oracle Application Server 10g Java Edition v9.0.4.0.1 на Sun Fire V20z 690.13 TOPS@DualNode 101.10 US$/TOPS@DualNode US$69,766

Источник результатов: Sun Microsystems Inc.

Software: Oracle Application Server 10g Java Edition v9.0.4.0.1; Sun JDK 1.4.2_04 32-bit; Oracle9i Database Release 2, Standard Edition v9.2.0.4; Oracle JDBC Driver 10.1.0.1.1

J2EE Application Server

Система Результаты Общая стоимость

WebSphere 5.1 Application Server на eServer xSer-ies 335 Cluster 2,575.34 TOPS@MultipleNode 330.07 US$/TOPS@MultipleNode US$850,025

Источник результатов: IBM Corporation

Software: WebSphere 5.1 Application Server, Network Deployment; IBM JDK 1.4.1; DB2 Universal Database v8.1.1.32 FP4, Enterprise Server Edition; IBM DB2 JDBC Universal Driver Provider

J2EE Application Server (9 systems): IBM eServer xSeries x335 with SuSE Linux Enterprise Server 8 SP2A (ReiserFS); CPU 2 x Intel Xeon DP @3.2GHz; RAM 3072MB; HDD 1 x 36.4GB Ultra 320 SCSI; 1000BaseT Ethernet; Database Server (1 system): IBM eServer pSeries p650 with AIX 5L v5.2 (JFS2); CPU 8 x IBM POWER4+ @1.45GHz; RAM 16GB; 2x146.8GB 10K RPM Ultra3 SCSI; 1000BaseT Ethernet; FAStT 200 Storage Server with 10x36.4GB 15K FC disks and EXP300 Storage Expansion Unit with 7x18.2GB 15K Ultra 160 SCSI disks

Хотя подобный формат результатов (рассматривающий целый комплекс элементов системы как одно целое) позволяет выбирать программно-аппаратные платформы для ИСУП, недостатки подобных источников для оценки производительности 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/

ПОДХОД К ПОСТРОЕНИЮ СИСТЕМЫ КЛАССА MRP II НА ОСНОВЕ ОБЪЕКТНЫХ ПРЕДСТАВЛЕНИЙ

В.А. Дубенецкий, A.B. Золотое

Новая экономическая ситуация ставит перед предприятиями ряд задач, которые ранее ими не рассматривались: повышение конкурентной борьбы, требование выпускать продукцию в соответствии с текущими заказами покупателей, а не с долгосрочными перспективными планами, необходимость оперативного принятия решений в

сложной экономической ситуации, укрепление связей между поставщиками, производителями и покупателями.

Современные информационные технологии помогают руководителям промышленных предприятий в решении этих задач. Одним из наиболее распространенных методов управления производ-