Тимоти Дик (PC Week Labs)

Спецификация устанавливает стандарт для серверов приложений

В июне на конференции JavaOne в Сан-Франциско фирма Sun Microsystems представила предварительный вариант спецификации платформы Java2 Enterprise Edition (J2EE), внедрение которой поможет компаниям снизить затраты на Java-разработки и уменьшить зависимость от капризов производителя конкретного сервера приложений.

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

Модель программирования Java2 Enterprise Edition

Мощь J2EE, уже достигнутое быстродействие и надежность JVM (виртуальных машин Java)  -  это то, что способно серьезно удешевить сложные корпоративные проекты.

Тестовый центр PC Week Labs рекомендует компаниям, разрабатывающим распределенные Java- или Web-приложения, быстро принять на вооружение этот стандарт и добиться, чтобы весь создаваемый ими новый код удовлетворял требованиям J2EE.

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

Java2 Enterprise Edition перед энергичным стартом

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

J2EE будет поддерживаться большинством продуктов. К конкурирующим же стандартам, например COM+ корпорации Microsoft, будет тяготеть все меньше пакетов. ИТ-менеджерам придется призадуматься, на чем остановить свой выбор.

Sun предприняла верный шаг. Новый стандарт укрепит Java как платформу, которая лишь недавно доказала свою эффективность в серьезных корпоративных приложениях. Ведь только в этом году мы смогли убедиться, что Java способна удовлетворить требованиям безукоризненно высокой производительности и надежности, предъявляемым подобными приложениями. (cм. www.zdnet.com/pcweek/stories/news/ 0,4153,397683,00.html). В наших прошлогодних тестах Java откровенно буксовала из-за некачественных СУБД-драйверов и медлительных JVM.

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

Спецификация делится на два крупных раздела: один из них описывает презентационные функции, вроде создания или форматирования HTML-документов, а другой  -  разработку серверных компонентов бизнес-логики и взаимодействие с СУБД (см. схему).

J2EE определяет два способа взаимодействия с Web-серверами для визуализации информации  -  JSP (Java Server Pages  -  серверные Java-страницы) и Java-сервлеты.

Исключительная простота в использовании делает JSP крупным шагом вперед для разработчиков Web-приложений. JSP  -  это просто HTML-страницы, в любое место которых можно включать код Java, обрамляя его специальными HTML-подобными тегами, что напоминает использование Active Server Pages корпорации Microsoft. Этот способ намного органичнее и проще для кодирования, чем традиционный метод написания CGI-подобных Java-программ, запускаемых сервером приложений или Web-сервером в ответ на запрос Web-клиентами определенной HTML-страницы и генерирующих пересылаемые им обратно новые HTML-страницы.

Таким программам (сервлетам), уже успевшим немного прижиться в мире Java, спецификация просто отводит законное место в Java-стратегии Web-разработки. Создание сервлетов требует более глубоких знаний Java, чем это необходимо для кодирования JSP, однако сервлеты обеспечивают лучшую гибкость и хорошо подходят для среднемасштабных приложений. Многими серверами приложений сервлеты уже поддерживаются.

Для более сложных задач, решаемых серверными компонентами систем, J2EE предлагает модули EJB (Enterprise Java Beans)  -  многократно используемые Java-компоненты бизнес-логики, связанные например с расчетами страховых сумм или процедурами обновления клиентских счетов.

J2EE требует от серверов приложений поддержки будущего стандарта EJB 1.1, в том числе нового типа EJB под названием “сущностные элементы” (entity beans). Эти элементы обеспечивают синхронизацию данных между Java-объектами и данными реляционных СУБД.

Требование поддержки EJB 1.1, и в частности сущностных элементов, станет серьезным препятствием на пути повсеместного распространения J2EE. Компоненты EJB довольны сложны в использовании. Хотя их поддерживает ряд серверов приложений, например NetDynamics фирмы Sun, WebLogic фирмы BEA Systems и Sapphire/Web фирмы Bluestone Software, еще нельзя сказать, что технология EJB общепринята.

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

Как говорят представители Sun, стандарт EJB 1.1 устраняет огрехи спецификации 1.0 и к окончательному варианту стандарта J2EE будет приложен эталонный пример работающего EJB-сервера и набор тестов на совместимость.

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

Полный стандарт на EJB, как ожидается, установится с выпуском EJB 2.0, намеченным на конец будущего года.

С автором и редактором PC Week Тимоти Диком можно связаться по адресу: timothy_dyck@dyck.org.