GlassFish Золота Рибка h2>
Борис Вольфсон p>
Сервер
додатків від SUN з відкритим вихідним кодом p>
В
2005 р. Корпорація SUN анонсувала проект GLASSFISH - сервер програм з
відкритим вихідним кодом для платформи JAVA. Цей крок у напрямку open source
дозволив створити дійсно якісний сервер додатків. Незабаром
співтовариство розробників glassfish випустило першу версію, а зараз - готується
друге. p>
Версії GlassFish h2>
Проект
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. p>
Можливості GlassFish h2>
GlassFish
включає підтримку найостанніших специфікацій JC: JSP 2.1, JSF 1.2,
Servlet2.5 і JSTL 1.2. P>
Технологія
Java Server Faces (JSF) була додана в платформу Java ЇЇ 5 і є
компонентної моделлю для шару програми, який займається поданням
даних. JSF можна використовувати з JavaServer Pages (JSP) або іншими схожими
технологіями. JSF версії 1.2 має безліч поліпшень в порівнянні з
попередніми випусками. Хотілося б особливо відзначити поліпшення в обробці
запитів, що дозволяє більш ефективно працювати з методологією AJAX. Інший
особливістю GlassFish є Jasper, JSP-компілятор, який тепер може
використовувати переваги API в Java SE 6. За різними оцінками, завдяки цьому
відбувається збільшення продуктивності в 8-10 разів. Jasper також можна
настроїти для використання JDT-компілятора платформи Eclipse, хоча
виграш у швидкості буде не таким великим. Якийсь час назад в GlassFish
стали застосовувати досить якісні JSF-компоненти проекту Woodstock, які
можуть бути цікаві багатьом розробникам. Вони також постачаються з відкритим
вихідним кодом, що є безсумнівним плюсом (див. врізку). p>
Окремо
розповімо про можливості інтеграції з існуючими бібліотеками і
фреймворками. Вони дозволяють команді програмістів не тільки швидко приступити до
розробці дійсно потрібної функціональності, а не реалізації рутинних
речей, але збільшити продуктивність при подальшому розвитку проекту.
Спільнота GlassFish дуже педантично ставиться до інтеграції з різними
фреймворками і ретельно стежить за сумісністю з ними. Їх список постійно
росте, як приклад можна згадати такі відомі та популярні
проекти, як AppFuse, DWR, Facelets, IBATIS, JBoss Seam, Shale, Spring, Struts,
Tapestry, WebWork, Wicket та інші. P>
Open Source h2>
Дуже
важливо зрозуміти, чому корпорація Sun вибрала саме таку форму розповсюдження
свого продукту-з відкритим вихідним кодом. Для цього небагато оглянемося назад ...
Одним з перших серверів додатків для платформи Java був Tomcat. Його
розробляє співтовариство Apache, яке включає в себе, в тому числі і
фахівців фірми Sun. Tomcat став раннім стандартом для Java-сервлетів і JSP.
Багато хто вважає, що величезної популярності цього продукту в значній мірі
сприяла його безкоштовність і відкритий вихідний код. Як відомо, є
дуже багато видів ліцензій для продуктів open source. Причому від вибору ліцензії
часом залежить їхня популярність, особливо в корпоративному середовищі, де такі
питання дуже важливі. На даний момент GlassFish використовує CDDL (Common Development and Distribution
License), яку запропонувала Sun, на основі Mozilla Public License. Але існує і
альтернативна ліцензійна схема на основі GPL другої версії і Ср. Очевидно,
що можливість вибору також розширить базу користувачів GlassFish.
Корпоративні клієнти віддадуть перевагу переваги CDDL, а спільноти розробників
зможуть використовувати альтернативний варіант, якщо в цьому буде необхідність. p>
Процес
створення GlassFish досить транспарентен: у ньому бере активну участь співтовариство
розробників і налагоджені комунікації з іншими зацікавленими громадами.
Аналогічна гнучкість проявляється і до користувачів, як результат-оперативно
надходять відгуки про функціонування продукту, що самим позитивним чином
позначається на його якості. В цілому процес розробки в порівнянні з іншими
проектами більш гнучкий і продуманий. Гнучкість процесу і залучення розробників
забезпечується гетерогенність (можна вжити менш точні терміни
«Відносної децентралізованих-ванность» або «розподіл») спільноти
GlassFish: його учасники використовують різні засоби спілкування за допомогою
Інтернету. У результаті швидкість циркуляції інформації різко збільшується,
незважаючи на те що розробників розділяють багато тисяч кілометрів. p>
Веб-сервіси h2>
Веб-сервіси
поступово займають чи не центральне місце в архітектурі систем класу
підприємства. Це пов'язано в тому числі і з тим, що вони є проміжною
ланкою між Java-платформою і платформою Microsoft, що використовуються
найбільш часто. У рамках спільноти GlassFish розробляється проект Tango
(WSIT). WSIT повністю використовує переваги, які дає друга версія
GlassFish. Створено спеціальні стандарти, які забезпечують повну
сумісність з іншими продуктами, перш за все компанії Microsoft. p>
Що таке GlassFish-короткі відомості h2>
GlassFish
-це не тільки програмний продукт, а й ціле співтовариство, метою якого
є створення повноцінного сервера додатків для платформи Java ЇЇ 5.
Співтовариство також розробляє допоміжні технології для Java ЇЇ 5, в
Зокрема JAXB, JAX-WS, JAXP, StAX, JSP і JSF. Сам сервер додатків GlassFish
включає в себе кілька відомих проектів, наприклад jMaki, Phobos і
DynaFaces, і безліч інструментів. Hudson-для безперервної інтеграції. P>
Інструменти h2>
спільноти
GlassFish активно взаємодіє з розробниками NetBeans, тому саме ця
IDE стала першою підтримуючої GlassFish. З тих пір такою підтримкою можуть
похвалитися різні середовища для розробки, наприклад IDEA, JBuilder і Eclipse.
Крім того, розробники GlassFish створили велику кількість інструментів, які
стали популярні самі по собі. Як приклад варто розглянути засіб
безперервної інтеграції-Hudson. Воно використовується для створення билдов,
тестування та інших подібних дій. Hudson досить простий і підтримує
систему плагінів для розширення базової функціональності. Однією з сильних
сторін другій версії GlassFish є система адміністрування. Вона
підтримує як дружній GUI-інтерфейс, так і роботу через командну
рядок. В якості мови програмування використовується TCL Зрозуміло, система
адміністрування дозволяє управляти кластерами і навантаженням на сервер. Як
говорилося вище, GlassFish v. 2 підтримує різні профілі-для розробки,
для «підприємства» і кластеру. Сам дистрибутив значно зменшився в
порівнянні з попереднім через застосування технології стиснення Раск200, яка
застосовується і для дистрибутиву Java SE 6. Інсталятор GlassFish v. 2 також
може використовувати автоматичний центр оновлень, що позбавить Отлишно клопоту
адміністраторів та дозволить мати актуальну версію GlassFish. p>
Плани на майбутнє h2>
Удосконалення
проекту GlassFish не припиняються. Спільнота розробників продовжує вносити
нові поліпшення в цей продукт. Крім того, воно само постійно розширюється за
рахунок нових членів. У планах є як організація власних груп
користувачів, так і проведення невеликих конференцій в рамках JavaOne. p>
Тактичною
метою співтовариство можна назвати випуск другої версії. Крім того, постійно
розширюється список програм і фреймворку, що успішно інтегруються з
GlassFish. Глобальні плани передбачають розробку третє, більш
продуктивної і інтелектуально споживає ресурси версії сервера
додатків. Такий сервер дозволить використовувати його не тільки в рамках систем
рівня підприємства, але і каклег-кий сервер додатків для невеликих завдань.
Прототипи третьої версії вже в процесі розробки. P>
Є
кілька різних думок з приводу застосування продукту. Перше полягає в
те, що «потрібно почекати, поки ягідка дозріє». Тобто почекати реліза другу
версії, який, мабуть, буде випущений на момент публікації цієї статті. Інша
частина експертів рекомендує вже зараз використовувати GlassFish. Причому саме
останні варіанти другої версії, так як вона на даний момент вони досить
стабільні. А першу версію вже поступово відносять до застарілих. P>
Цикл розробки GlassFish h2>
Існують
три версії GlassFish на різних стадіях розробки: p>
--
Концепт-версія (Concept Creation). Прототип продукту, в якому зібрана
основна функціональність; p>
--
Розробляється версія (Active Development). Версія продукту, що розробляється
в даний момент; p>
--
Випущена версія (Maintenance). Дана версія продукту вже випущена, йде
тільки виправлення помилок. GlassFish v. 1 - випущена версія; GlassFish v. 2 --
версія в розробці; GlassFish v. 3 - все ще перебуває в стадії концепції. P>
Сервери додатків від Sun h2>
Компанія
Sun позиціонує як сервери додатків кілька продуктів. Перед
вами список їх самих останніх версій: p>
--
iPlanet AS 6.0 (Netscape AS)-сервер додатків сумісний CJ2EE1.2; p>
--
SunOne AppServer 7.0 - сервер додатків сумісний з J2EE 1.3 RI; p>
--
Sun Java System p>
AppServer
8.0 - сервер додатків сумісний з J2EE 1.4; p>
--
Sun Java System AppServer 9.0 (GlassFish v. 1) - сервер додатків сумісний
з Java ЇЇ 5; p>
--
Sun Java System AppServer 9.1 (GlassFish v. 1) - сервер додатків сумісний
з Java ЇЇ 5. p>
Підтримувані стандарти для WS h2>
--
WS-MetadataExchange, WS-MetadataExchange WSDL, WS-Transfer; p>
--
WS-ReliableMessaging, WS-ReliableMessaging Policy; p>
- WS-CoordinationandWS-Atomic
Transaction; p>
- WS-Security, WS-SecurityPolicy,
WS-Trust, WS-SecureConversation; p>
- WS-Policy, WS-PolicyAttachment. p>
*** p>
Думка експерта p>
Катерина
Павлова, провідний інженер, технічний лідер групи Sun Microsystems p>
Який
ваш досвід роботи з GlassFish? p>
Строго
кажучи, не вважаю себе експертом з Java ЇЇ, оскільки в основному останнім
час працюю над проектами з інших областей (зараз це Real-Time Java, Java
VM). P>
Однак
я намагаюся стежити за розвитком подій у світі Java ЇЇ і не тільки
теоретично. Я є одним з редакторів новинної стрічки «Акваріум» (http://
bloas.sun.com/theaauarium ru) і координувала організацію стенду, присвяченого
Java ЇЇ на Sun TechDays 2007 в Санкт-Петербурзі. P>
Яка,
на ваш погляд, головна мета проекту? p>
Якщо
говорити про GlassFish як про проект, то він з'явився як частина зусиль Sun
Microsystems з відкриття значного обсягу розробленого в компанії коду
(наприклад, OpenSolaris і OpenJDK). Так, в основу GlassFish лягли частини Sun Java
System Application Server компанії Sun і TopLink (рішення для зберігання Java об'єктів
в реляційних БД, надане Oracle). Проект успішно живе, так що
формально, напевно, можна вважати, що початкова мета досягнута. Однак
GlassFish-це не тільки проект. Це ще і сервер програм з відкритим кодом,
тобто деякий продукт. І тут цілі змінюються від версії до версії. Найбільш
Найважливіші з них - сумісність з поточною версією специфікації Java ЇЇ і
промислове якість. GlashFish повністю сумісний з Java ЇЇ 5 і використовується
багатьма компаніями (SJSAS 9 РЕ - сервер додатків Sun Microsystems заснований на
GlassFish). Успіх це? Реалізації J2EE 1.4 стали доступні через два-три роки
після публікації специфікації, з появою GlassFish ситуація різко змінилася
- Більшість серверів оголосило про підтримку Java ЇЇ 5 набагато швидше (від 6
місяців до 2 років). GlassFish - це також і співтовариство. Близько 7000 незалежних
програмістів та представників компаній беруть участь у роботі над проектом.
Звичайно, не кожен член спільноти відіграє активну роль у написанні коду.
Багато допомагають просто використовуючи свіжі версії і повідомляючи про виявлені
проблемах. Завдяки зусиллям спільноти багато частин GlassFish реалізовані в
вигляді компонентів, які можна використовувати окремо, - JAXB, JAX-WS, JAXP,
StAX, JSP, JSF і т. д. спільноти активно розвивається, і, я сподіваюся, його внесок
в GlassFish буде тільки збільшуватися. p>
В
яких інших проектах ви брали участь? p>
За
10 років мені довелося взяти участь у проектах в багатьох областях - від створення
веб-додатків і баз даних, написання програм для телекомунікацій до системної
розробки на великій кількості різноманітних платформ. Перший досвід
промислової розробки я отримала під час роботи над першим російськомовним
дистрибутивом Linux в 1996 р., зараз в основному займаюся Java VM. p>
Для
кого в першу чергу призначений GlassFish? p>
Важливою
особливістю GlassFish є швидкість, з якою у ньому з'являється підтримка
нових стандартів і технологій. Тому GF особливо цікавий і зручний для
користувачів, що бажають оцінити нові функції. GF також надає
унікальну можливість розібратися самостійно, як влаштована реалізація Java
ЇЇ платформи, і спробувати свої сили в роботі над її розвитком. Ну і звичайно
ж, GF - класичний сервер додатків, призначений як для розробки,
так і для промислового впровадження. p>
Для
яких типів проектів призначений GlassFish? p>
Остання
бета-версія GFv2 (випуск фінальної версії GF планується восени 2007) - це
повнофункціональний сервер додатків, що годиться для всіх традиційних
типів Java ЇЇ-проектів. GFv2 забезпечує функціональність, необхідну для
впровадження великих корпоративних проектів, зокрема кластеризації,
відмовостійкість, балансування навантаження, раскопірованіе в оперативній пам'яті,
адміністрування. p>
GF
також підтримує інтероперабельність з технологіями Microsoft (з HOMOщью
WSIT). Останнє дозволяє налагодити взаємодію між Web-сервісами на Java
і середовищами. Net. Інший з багатьох нових можливостей у GlassFish версії v2
є інтегрована реалізація стандарту JBI (Java Business Integration), що
робить GF орієнтованим на сервіс-орієнтовану архітектуру (SOA). На
JavaOne 2007 було оголошено про те, що Ericsson планує надати
реалізацію контейнера для SIP-сервлетів (SIP - Session Initiation Protocol) для
включення до GlassFish. Більшість ЇЇ додатків має трансакціонної природу,
тобто логіка сфокусована навколо отримання/оновлення даних в базах даних.
Підтримка сесій дозволить робити ще більш цікаві програми. Наприклад,
замість простого списку ваших клієнтів зі статичною інформацією ви зможете
дізнатися, чи доступний цей клієнт зараз онлайн і якщо так, то чи використовує він
мобільний телефон або фіксований канал зв'язку? Така інформація дозволяє
вибрати найбільш зручний спосіб зв'язатися з клієнтом в конкретний момент часу. p>
Але
незважаючи на велику кількість просунутих можливостей, GlassFish залишається зручним
засобом і для створення невеликих додатків, і для отримання першого досвіду з
розробкою на платформі Java ЇЇ. p>
Як
позиціонуватиметься GlassFish на ринку продуктів для створення ПЗ? p>
GF
позиціонується як високоякісний сервер додатків з відкритим вихідним
кодом. І мова не про майбутнє, він вже використовується в багатьох проектах. P>
Безумовно,
GF буде і далі проектом Open Source. P>
Які
фірми вже використовують GlassFish? p>
Їх
багато. На сайті новин «Акваріум» є спеціальна рубрика, в якій
розповідається про деяких відомих впровадження GF (blogs.sun.com /
theaquarium/tags/stories /). Так, в останній історії розповідається, як
переносився на GF код системи для російського відділення Auchan - одного з
найбільших рітейлерів світу. Ще одне джерело інформації про впровадження систем на
GF-слайди з конференції JavaOne 2007 (їх можна завантажити з
http://develQpers.sun.com/learning/ iavaoneonline /). p>
Всього
станомна травень 2007 р. на сайті GF було зареєстровано більше 2 500 000
завантаженні продукту. Деякі з відомих установок наочно представлені на
карті - http:// beta.glassfish.iava.net: 81/maDS /. p>
Яке
майбутнє чекає GlassFish? p>
Я
не вмію передбачати майбутнє. Мені здається, що у GF є шанси зайняти місце
серед найбільш популярних серверів додатків і що внесок у розвиток співтовариства
GF в недалекому майбутньому стане основним. P>
Для
кого в першу чергу призначений GlassFish? p>
Важливою
особливістю GlassFish є швидкість, з якою у ньому з'являється підтримка
нових стандартів і технологій. Тому GF особливо цікавий і зручний для
користувачів, що бажають оцінити нові функції. GF також надає
унікальну можливість розібратися самостійно, як влаштована реалізація Java
ЇЇ платформи, і спробувати свої сили в роботі над її розвитком. Ну і звичайно
ж, GF - класичний сервер додатків, призначений як для розробки,
так і для промислового впровадження. p>
Які
найближчі конкуренти є у GlassFish? p>
Часто
питають, що краще використовувати Tomcat або GlassFish? Звичайно, Tomcat НЕ
є повноцінним сервером додатків, але якщо нічого крім servlet/JSP і не
потрібно? Інтуїтивно здається, що GlassFish великовагові і повільніше, але в
реальності не так. Завдяки ледачою ініціалізації, GlassFish такий же
легкий, як Tomcat, а при використанні http-коннектора Grizzly
демонструє значно вищу продуктивність на реальних
додатках в порівнянні з Tomcat. p>
Формально
найближчими конкурентами GF, напевно, треба вважати інші відкриті реалізації
платформи Java ЇЇ - JBoss, Geronimo і JOnAS. Проте багато в чому ці проекти
співпрацюють з метою поліпшити взаємодію і переносимість. Наприклад, GF і
JBoss на JavaOne 2007 продемонстрували результати своїх зусиль з підтримки
компонентів JSF (проекти Woodstock від Sun і RichFaces від JBoss) на різних
контейнерах/реалізаціях. JBoss взагалі є офіційним помічників в код
GlassFish (JSFRI). До речі, на Apache Wiki (http://wiki.apache.
ora/ws/StackComparison) є порівняльна таблиця для ряду доступних стеків
веб-сервісів. За суб'єктивну думку, реалізація GlassFish - один із самих
передових і стає тільки краще. p>
Є
Чи є можливість використовувати фреймворк для веб-розробок Ruby on Rails? p>
Так,
звичайно. Використанню RoR-при-ложении з GlassFish присвячено, до речі, дуже
багато нотаток на «Акваріум» (категорія rails). У них розповідається про першу
кроки RoR з GF, як змусити працювати RoR-додаток в GF з БД Derby в режимі
embeded, про Rails Integration, про розгортання Web-додатків на RoR
кластерах GlassFish. Одним із прикладів успішного развертава-ня RoR-додатки
в GF є система для управління Web-контентом Mephisto. p>
Які
засоби розробки підтримують роботу з GlasFish? p>
GFv2
підтримується всіма основними середовищами розробки на Java, включаючи Netbeans,
IDEA й Eclipse (починаючи з MyEclipse 5.5). З безлічі інших цікавих
інструментів хочу відзначити JVantage - інструмент для візуальної розробки
веб-додатків, що дозволяє швидко створювати Java ЇЇ-додаток з опису
моделі бази даних, Quickr - утиліту для керування persistence layer, яка
заснована на Java Persistence Query Language і YourKit Profiler, зручне
засіб оптимізації додатків. p>
Список літератури h2>
IT
спец № 07 ЛИПЕНЬ 2007 p>