Борис Вольфсон
Сервер приложений от SUN с открытым исходным кодом
В 2005 г. Корпорация SUN анонсировала проект GLASSFISH - сервер приложений с открытым исходным кодом для платформы JAVA. Этот шаг в направлении open source позволил создать действительно качественный сервер приложений. Вскоре сообщество разработчиков glassfish выпустило первую версию, а сейчас - готовится вторая.
Версии GlassFish
Проект GlassFish был анонсирован на конференции JavaOne 2005. Менее чем через год, на следующей конференции JavaOne, был представлен первый выпуск. Причем этот сервер приложений можно было скачать с сайта Sun либо с сайта сообщества—отличия были только в инсталляторе и названиях. GlassFish v. 1 был сфокусирован на выполнении спецификации Java ЕЕ 5 и функциональности класса предприятия, которые не были включены в предыдущую версию сервера приложений от Sun. GlassFish v. 2 на момент написания статьи все еще находится в стадии разработки (правда, последнюю версию можно скачать с официального сайта). Таким образом, GlassFish v. 1 распространяется с мая 2006-го, a GlassFish v. 2 окончательно доводится до ума. Фактически все сообщество сейчас работает над второй версией, и специалисты рекомендуют немного подождать ее выхода. GlassFish v. 2 включает весь необходимый набор функций для корпоративных приложений из предыдущей версии. Кроме того, он поддерживает концепцию профилей, поэтому может быть сконфигурирован для использования в режиме разработки, в режиме «предприятия» или кластера. GlassFish v. 3 находится в стадии планирования (в рамках сообщества GlassFish употребляется термин «Concept Creation» — стадия концепции программного продукта, или просто прототипирования). Ведется переработка модульной архитектуры, что позволит увеличить скорость загрузки и скажется на производительности в целом. Планируется, что первые версии для тестирования появятся в середине года. У пользователей также есть выбор при установке конкретного дистрибутива GlassFish: можно взять либо версию Sun, либо сообщества разработчиков GlassFish. Эти программные продукты различаются только инсталлятором и поддержкой. Для тех, кому будет недостаточно по той или иной причине поддержки сообщества, смогут воспользоваться коммерческим вариантом фирмы Sun.
Возможности GlassFish
GlassFish включает поддержку самых последних спецификаций JC: JSP 2.1, JSF 1.2, Servlet2.5 и JSTL 1.2.
Технология Java Server Faces (JSF) была добавлена в платформу Java ЕЕ 5 и является компонентной моделью для слоя приложения, который занимается представлением данных. JSF можно использовать с JavaServer Pages (JSP) или другими похожими технологиями. JSF версии 1.2 имеет множество улучшений по сравнению с предыдущими выпусками. Хотелось бы особо отметить улучшения в обработке запросов, что позволяет более эффективно работать с методологией AJAX. Другой особенностью GlassFish является Jasper, JSP-компилятор, который теперь может использовать преимущества API в Java 6 SE. По разным оценкам, благодаря этому происходит увеличение производительности в 8-10 раз. Jasper также можно сконфигурировать для использования JDT-компилятора платформы Eclipse, хотя выигрыш в скорости будет не таким большим. Некоторое время назад в GlassFish стали применять довольно качественные JSF-компоненты проекта Woodstock, которые могут быть интересны многим разработчикам. Они также поставляются с открытым исходным кодом, что является несомненным плюсом (см. врезку).
Отдельно расскажем о возможностях интеграции с существующими библиотеками и фреймворками. Они позволяют команде программистов не только быстро приступить к разработке действительно нужной функциональности, а не реализации рутинных вещей, но увеличить производительность при дальнейшем развитии проекта. Сообщество GlassFish очень щепетильно относится к интеграции с различными фреймворками и тщательно следит за совместимостью с ними. Их список постоянно растет, в качестве примера можно упомянуть такие известные и популярные проекты, как AppFuse, DWR, Facelets, IBATIS, JBoss Seam, Shale, Spring, Struts, Tapestry, WebWork, Wicket и прочие.
Open Source
Очень важно понять, почему корпорация Sun выбрала именно такую форму распространения своего продукта—с открытым исходным кодом. Для этого немного оглянемся назад... Одним из первых серверов приложений для платформы Java был Tomcat. Его разрабатывает сообщество Apache, которое включает в себя, в том числе и специалистов фирмы Sun. Tomcat стал ранним стандартом для Java-сервлетов и JSP. Многие считают, что огромной популярности этого продукта в значительной степени способствовала его бесплатность и открытый исходный код. Как известно, есть очень много видов лицензий для продуктов open source. Причем от выбора лицензии подчас зависит их популярность, особенно в корпоративной среде, где такие вопросы очень важны. На данный момент GlassFish использует CDDL (Common Development and Distribution License), которую предложила Sun, на основе Mozilla Public License. Но существует и альтернативная лицензионная схема на основе GPL второй версии и СРЕ. Очевидно, что возможность выбора также расширит базу пользователей GlassFish. Корпоративные клиенты предпочтут преимущества CDDL, а сообщества разработчиков смогут использовать альтернативный вариант, если в этом будет необходимость.
Процесс создания GlassFish довольно транспарентен: в нем активно участвует сообщество разработчиков и налажены коммуникации с другими заинтересованными сообществами. Аналогичная гибкость проявляется и к пользователям, как результат—оперативно поступают отзывы о функционировании продукта, что самым положительным образом сказывается на его качестве. В целом процесс разработки по сравнению с другими проектами более гибкий и продуманный. Гибкость процесса и вовлеченность разработчиков обеспечивается гетерогенностью (можно употребить менее точные термины «относительной децентрализо-ванностью» или «распределенностью») сообщества GlassFish: его участники используют различные средства общения с помощью Интернета. В результате скорость циркуляции информации резко увеличивается, несмотря на то что разработчиков разделяют многие тысячи километров.
Веб-сервисы
Веб-сервисы постепенно занимают чуть ли не центральное место в архитектуре систем класса предприятия. Это связано в том числе и с тем, что они являются промежуточным звеном между Java-платформой и платформой Microsoft, которые используются наиболее часто. В рамках сообщества GlassFish разрабатывается проект Tango (WSIT). WSIT полностью использует преимущества, которые дает вторая версия GlassFish. Созданы специальные стандарты, которые обеспечивают полную совместимость с другими продуктами, прежде всего компании Microsoft.
Что такое GlassFish -краткие сведения
GlassFish -это не только программный продукт, но и целое сообщество, целью которого является создание полноценного сервера приложений для платформы Java ЕЕ 5. Сообщество также разрабатывает вспомогательные технологии для Java ЕЕ 5, в частности JAXB,JAX-WS, JAXP,StAX,JSP и JSF. Сам сервер приложений GlassFish включает в себя несколько известных проектов, например jMaki, Phobos и DynaFaces, и множество инструментов. Hudson-для непрерывной интеграции.
Инструменты
Сообщество GlassFish активно взаимодействует с разработчиками NetBeans, поэтому именно эта IDE стала первой поддерживающей GlassFish. С тех пор такой поддержкой могут похвастаться различные среды разработки, например IDEA, JBuilder и Eclipse. Кроме того, разработчики GlassFish создали большое число инструментов, которые стали популярны сами по себе. В качестве примера стоит рассмотреть средство непрерывной интеграции—Hudson. Оно используется для создания билдов, тестирования и других подобных действий. Hudson достаточно прост и поддерживает систему плагинов для расширения базовой функциональности. Одной из сильных сторон второй версии GlassFish является система администрирования. Она поддерживает как дружественный GUI-интерфейс, так и работу через командную строку. В качестве языка программирования используется TCL Разумеется, система администрирования позволяет управлять кластерами и нагрузкой на сервер. Как говорилось выше, GlassFish v. 2 поддерживает различные профили —для разработки, для «предприятия» и кластера. Сам дистрибутив значительно уменьшился по сравнению с предыдущим из-за применения технологии сжатия Раск200, которая применяется и для дистрибутива Java SE 6. Инсталлятор GlassFish v. 2 также может использовать автоматический центр обновлений, что избавит отлишних хлопот администраторов и позволит иметь актуальную версию GlassFish.
Планы на будущее
Усовершенствования проекта GlassFish не прекращаются. Сообщество разработчиков продолжает вносить новые улучшения в этот продукт. Кроме того, оно само постоянно расширяется за счет новых членов. В планах есть как организация собственных групп пользователей, так и проведение небольших конференций в рамках JavaOne.
Тактической целью сообщество можно назвать выпуск второй версии. Кроме того, постоянно расширяется список приложений и фреймворков, которые успешно интегрируются с GlassFish. Глобальные планы предусматривают разработку третьей, более производительной и интеллектуально потребляющей ресурсы версии сервера приложений. Такой сервер позволит использовать его не только в рамках систем уровня предприятия, но и каклег-кий сервер приложений для небольших задач. Прототипы третьей версии уже в процессе разработки.
Есть несколько разных мнений по поводу применения продукта. Первое заключается в том, что «надо подождать, пока ягодка дозреет». То есть подождать релиза второй версии, который, видимо, будет выпущен на момент публикации этой статьи. Другая часть экспертов рекомендует уже сейчас использовать GlassFish. Причем именно последние варианты второй версии, так как она на данный момент они достаточно стабильны. А первую версию уже постепенно относят к устаревшим.
Цикл разработки GlassFish
Существуют три версии GlassFish на разных стадиях разработки:
- Концепт-версия (Concept Creation). Прототип продукта, в котором собрана основная функциональность;