2004 г
Средства разработки Java-приложений
© Наталия Елманова
Статья была опубликована в КомпьютерПресс
8'2003 и на сайте компании Interface
Наша статья посвящена одной из самых популярных сегодня категорий средств
разработки приложений — средствам разработки Java-приложений.
Прежде чем обсуждать эту категорию средств разработки, следует обратить
внимание на то, что в настоящее время абсолютно неверно рассматривать Java
лишь как
язык программирования или как средство написания аплетов и иных простых приложений
для настольных компьютеров и конечных пользователей, хотя они, естественно,
с помощью Java по-прежнему создаются и описываются спецификацией J2SE (Java
2 Standard Edition). В последние годы интерес к Java был обусловлен не столько
особенностями, присущими этому языку программирования, сколько появлением
таких технологий, как J2EE (Java 2 Enterprise Edition), включая JSP (Java
Server Pages), J2ME (Java 2 Micro Edition), и ряда других, сделавших Java
наиболее популярной платформой для создания корпоративных решений, поддерживаемой
почти всеми производителями программного обеспечения. Основная сфера применения
Java — это приложения масштаба предприятия и многозвенные распределенные
системы, базирующиеся на J2EE-совместимых серверах приложений. Именно с этой
позиции и следует рассматривать средства разработки на Java, присутствующие
на современном рынке программного обеспечения.
Среди особенностей средств создания Java-приложений, интересных в плане создания
корпоративных решений, следует назвать средства повышения производительности
труда разработчиков, средства поддержки коллективной работы, поддержку
различных этапов жизненного цикла приложений, как предшествующих созданию кода
приложений
(таких как управление требованиями, моделирование данных и приложений),
так и следующих за ним (тестирование, внедрение и сопровождение), возможности,
связанные с повторным использованием моделей и кода, поддержку средств
и
стандартов создания распределенных приложений и их интеграции (включая
поддержку стандарта J2EE и Web-сервисов XML), а также возможность создания
мобильных
решений, в том числе поддержку стандарта J2ME.
Современные инструменты разработки Java-приложений, как правило, обладают
различными средствами повышения производительности труда программистов. Здесь
мы не будем останавливаться на таких ставших уже привычными вещах, как цветовое
выделение синтаксических конструкций, визуальные редакторы пользовательских
интерфейсов, поддержка создания приложений с базами данных (в случае Java —
с помощью универсального механизма доступа к данным JDBC, Java DataBase Connectivity)
или наличие средств обычной и удаленной отладки, — сейчас без них ни один инструмент
для разработки приложений не имеет шансов занять сколь-нибудь значимой позиции
на рынке.
Из средств, наличие которых не является очевидным, в первую очередь отметим
средства рефакторинга — автоматического внесения сопутствующих изменений в
код при переименовании классов (например, изменение кода, содержащего ссылки
на переименованный класс) и изменении параметров методов, автоматического добавления
конструкций try…catch вокруг блока кода с учетом возможных исключений, которые
могут произойти при вызове методов, содержащихся в этом блоке, а также иных
действий, связанных с автоматическим внесением изменений в код, что крайне
необходимо при коллективной работе над большими проектами и при повторном использовании
кода. Помимо этого, к полезным особенностям Java-инструментов можно отнести
средства создания тестовых классов, средства конвертации файлов SQLJ1 в Java-код,
различные средства, упрощающие генерацию тестов и поставку приложений, а также
наличие мастеров создания Web-приложений, Web-сервисов, генерации кода на основании
WSDL2 -описаний.
Говоря о поддержке проектирования приложений, следует подчеркнуть, что создание
Java-приложений масштаба предприятия сейчас практически немыслимо без применения
средств UML-моделирования. Такие средства могут быть включены непосредственно
в состав продукта либо поддерживаться на уровне интерфейсов к ним; при этом
наиболее предпочтительным является наличие средств UML-моделирования в виде
модулей, встроенных в среду разработки и поддерживающих синхронное изменение
моделей и кода.
Особо стоит остановиться на том, что в настоящий момент во всех продуктах,
лидирующих на рынке средств разработки Java-приложений (иногда только в наиболее
дорогих редакциях этих продуктов), реализована возможность создания EJB (Enterprise
Java Beans) — объектов, выполняющихся под управлением серверов приложений,
поддерживающих спецификацию J2EE. Эта возможность наиболее важна с точки зрения
применимости подобного средства при создании корпоративных решений, в частности
распределенных приложений, реализующих следующие схемы: «предприятие — потребитель»
(B2C, business-to-consumer), такие как онлайновая продажа товаров, бронирование
билетов и мест в отелях; «предприятие — предприятие» (B2B, business-to-business),
такие как виртуальные торговые площадки и онлайновые аукционы; «предприятие
— сотрудник» (B2E, business-to-employee), такие как корпоративные порталы.
Зачастую в корпоративных решениях применяются конфигурации, содержащие несколько
серверов приложений или различные кластерные конфигурации. Нередко производители
Java-инструментов производят собственные серверы приложений, но многие из них
поддерживают создание объектов EJB и для серверов приложений других производителей.
Говоря о корпоративных решениях, нельзя не отметить, что и на Западе, и в
России, переживающей сегодня последствия так называемой островковой автоматизации,
весьма актуальна проблема интеграции различных приложений, используемых как
внутри одного предприятия, так и на разных предприятиях. Одним из достаточно
универсальных и простых способов решения этой проблемы является реализация
функций приложений, к которым следует предоставить доступ извне в виде Web-сервисов
XML, что позволяет обращаться к ним другим приложениям, поддерживающим Web-сервисы,
независимо от того, на каких платформах они эксплуатируются и с помощью каких
средств разработки созданы. В настоящее время популярность этой технологии
интеграции быстро растет и большинство производителей серверов приложений и
средств разработки уже так или иначе реализовали поддержку Web-сервисов и связанных
с ними технологий. Отметим, однако, что сегодня имеются и альтернативные средства
интеграции, отличные от Web-сервисов, например средства поддержки синхронного
доступа к EJB из Windows- или .NET-приложений, таких как Borland Janeva3 .
Еще одна важная особенность, характерная для большинства современных средств
разработки Java-приложений, — это поддержка создания мобильных решений, базирующихся
на спецификации J2ME. По мнению аналитической компании Gartner Group, к 2004
году с вероятностью 0,7 на J2ME будут основаны 37% приложений для PDA (Personal
Digital Assistant), а к 2005-му с той же вероятностью 65% сотовых телефонов
будут оснащены виртуальной Java-машиной. Поддержка создания мобильных решений
может быть осуществлена различными способами — от добавления в среду разработки
дополнительных мастеров и классов до создания специализированных редакций средств
разработки Java-приложений, в том числе редакций для конкретных типов мобильных
устройств.
Как правило, современные средства создания Java-приложений поддерживают разработку
приложений для нескольких различных платформ, а зачастую и сами существуют
в версиях для различных платформ. Обычно в их число входят Windows, Linux,
Solaris, а иногда и другие операционные системы.
В заключение отметим, что нередко само средство разработки Java-приложений
может поставляться как отдельно, так и в составе комплекта инструментов, включающих
обычно средства UML-моделирования, версию сервера приложений, предназначенную
для разработки и отладки EJB, а также, возможно, иные инструменты (например,
средства создания пользовательских интерфейсов Web-приложений или средства
оптимизации производительности приложений).
точки зрения аналитической компании Meta Group, в настоящее время лидерами
рынка средств разработки Java-приложений являются Borland, IBM, Oracle,
а к компаниям, имеющим четкое видение рынка и претендующим на заметную его
долю, относятся Sun, JetBrains и Novell (см. Thomas Murphy, Java Intergrated
Development Environments, METAspectrum Evaluation, 25 February 2003; рис.
1).
Рис. 1. Распределение игроков рынка средств разработки Java-приложений, с
точки зрения META Group
Каковы же изменения, произошедшие на рынке средств Java-приложений за последние
полтора года?
Исходя из результатов исследований, проведенных аналитической компанией Gartner
Group, к началу прошлого года лидерами рынка средств разработки Java-приложений
должны были стать Borland, IBM, Oracle и WebGain; Sun считалась компанией,
имеющей четкое видение рынка (см. Mark Driver, Joseph Feiman. 2002 Java IDE
Vendor Magic Quadrant — Research Note M-14-1330, 13 November 2001), а к наиболее
известным так называемым нишевым игрокам относились TogetherSoft, Sybase, Microsoft,
Macromedia. Однако со времени публикации упомянутого отчета произошли некоторые
изменения. В частности, компания Sybase отказалась от дальнейшей поддержки
своего средства разработки Java-приложений PowerJ, рекомендуя своим пользователям
сменить его на Borland JBuilder Sybase Edition; компания Microsoft покинула
рынок средств Java-разработки, предложив взамен средства миграции Java-кода
на платформу .NET и язык J#, предназначенный для Java-разработчиков, предпочитающих
писать .NET-код на привычном для них языке. А недавний лидер рынка средств
Java-разработки компания WebGain год назад объявила о прекращении работ над
новыми версиями WebGain Studio и входящим в его состав Visual Cafе вследствие
продажи корпорации Oracle бизнеса, связанного с продуктом TopLink, предназначенным
для организации связи EJB с реляционными базами данных. В дальнейшем продукт
WebGain Studio был приобретен компанией TogetherSoft, которая, в свою очередь,
была приобретена корпорацией Borland, предложившей пользователям WebGain средства
перехода на ставший практически безусловным лидером рынка Borland JBuilder.
Кроме того, за последнее время на рынке появились новые заметные игроки, такие
как Novell, которая приобрела год назад компанию SilverStream, обладавшую J2EE-сервером
приложений и весьма неплохим средством разработки Java-приложений, а также
чешская компания JetBrains, предложившая весьма привлекательное в плане удобства
применения средство разработки Java-приложений IntelliJ IDEA.
Ниже будут кратко рассмотрены особенности наиболее популярных средств разработки
Java-приложений производства Borland, IBM, JetBrains, Oracle, Novell, Sun.
В настоящее время компания Borland является лидером рынка средств разработки
Java-приложений — ее продукты JBuilder и Enterprise Studio for Java стали
одними из самых популярных средств разработки и компания уделяет их развитию
максимум внимания.
JBuilder 9, выпущенный в мае этого года, поставляется как отдельно, так и
в составе пакета Borland Enterprise Studio 6 for Java. Этот продукт поддерживает
все стандарты Java 2 (J2SE, J2EE, J2ME), обладает разнообразными средствами
повышения производительности труда разработчиков и сокращения затрат на создание
приложений, включая разнообразные средства рефакторинга, инструменты конвертации
файлов SQLJ в Java-код, средства, упрощающие поставку и развертывание приложений,
в том числе J2EE-приложений, мастера создания Web-приложений и Web-сервисов,
средства генерации клиентских классов на основании WSDL-описаний. Кроме того,
этот продукт легко интегрируется с J2EE-совместимым сервером приложений Borland
Enterprise Server, со средствами поддержки различных этапов жизненного цикла
разработки приложений и средствами управления коллективной разработкой приложений,
приобретенными корпорацией Borland в течение последнего года, в том числе со
средством управления коллективной разработкой Borland StarTeam, средством UML-моделирования
Borland Together Edition for JBuilder, а также со средством оптимизации Borland
Optimizeit Suite, позволяющим оптимизировать код JSP (JavaServer Pages), сервлетов,
EJB. Из рис. 2 видно, например, что и консоль Borland Enterprise Server, и
репозитарий StarTeam доступны непосредственно из среды разработки.
Рис. 2. Среда разработки Borland JBuilder 9
В состав данного продукта также входят интерфейсы к наиболее популярным средствам
контроля версий исходных текстов приложений, конфигурируемые интеллектуальные
шаблоны исходных текстов программ (Smart Code templates) для автоматизации
написания кода, а также мастера для создания Web-сервисов. Для разработчиков
кросс-платформенных приложений реализована поддержка Apache Ant — платформенно-независимого
инструмента с открытыми исходными текстами для объектно-ориентированного управления
процессом сборки приложения с помощью конфигурационных файлов, написанных на
языке XML. В состав пакета JBuilder 9 включены средства разработки приложений
JBuilder MobileSet для мобильных платформ, в частности сотовых телефонов Nokia
и Siemens. К несомненным достоинствам данного продукта следует отнести поддержку
серверов приложений различных производителей, в том числе IBM и BEA.
Наряду с несколькими различными редакциями JBuilder компания Borland поставляет
интегрированный пакет для разработчиков Borland Enterprise Studio 6 for Java,
предназначенный для поддержки всего жизненного цикла приложений и содержащий,
помимо Borland JBuilder 9, средство управления требованиями Borland CaliberRM,
Borland Together Edition for JBuilder 6.1, Borland Optimizeit Suite 5.5, Borland
Enterprise Server 5.2, Borland JDataStore 6 и Borland StarTeam.
IBM WebSphere Studio 5 представляет собой интегрированный набор средств разработки
Java-приложений, основанный на WebSphere Studio WorkBench — реализации
IBM платформы Eclipse, предназначенной для интеграции различных инструментов
разработки в единую среду (рис. 3). Данный пакет является первой в отрасли
единой корпоративной средой разработки Web-сервисов для различных платформ,
включая унаследованные платформы, — в этом продукте впервые предлагается
возможность разработки Web-сервисов на базе унаследованных приложений,
написанных
на языках COBOL и PL1.
Рис. 3. Среда разработки IBM WebSphere Studio 5
Существует несколько редакций этого продукта, предназначенных для создания
Web-сайтов, корпоративных приложений, мобильных решений. В состав всех редакций
WebSphere Studio входят сервер приложений WebSphere Application Server Developer
Edition, инструменты для поставки Web-приложений, а также интегрированные в
продукт средства тестирования и отладки компонентов приложения, таких как EJB,
JSP, HTML-код.
WebSphere Studio обладает развитыми средствами поддержки Web-сервисов XML.
В частности, EJB и другие компоненты приложения могут быть представлены в виде
Web-сервисов — для этой цели существуют соответствующие мастера, которые генерируют
WSDL-код, данные UDDI и клиентское приложение для тестирования. С помощью WebSphere
Studio можно также создавать клиентские приложения к уже имеющимся Web-сервисам.
В состав WebSphere Studio 5 не включены средства UML-моделирования, однако
разработчики могут выбрать какое-либо из имеющихся подобных средств, принадлежащих
той же компании IBM (например, Rational XDE), и интегрировать их в WebSphere
Studio WorkBench. Для поддержки коллективной разработки предусмотрены модули
расширения для Concurrent Versions System (CVS) — средства контроля версий,
относящегося к категории Open Source. Имеются также модули расширения для других
средств контроля версий, созданные независимыми производителями.
WebSphere Studio можно использовать на платформах Microsoft Windows 98/Mе/NT/2000,
RedHat Linux, SuSE Linux. Однако созданные с помощью этого продукта приложения
можно эксплуатировать и на других платформах при наличии J2EE-совместимого
сервера приложений и соответствующих средств поставки приложений, созданных
независимыми производителями.
Cредство разработки Java-приложений IntelliJ IDEA чешской компании JetBrains
в последнее время привлекает к себе все большее внимание благодаря высокому
качеству продукта и удобству его применения (лозунг авторов этого продукта:
«Develop with Pleasure!» — «Разрабатывайте с удовольствием!»).
IntelliJ IDEA 3.0 содержит необычайно развитые средства автоматического завершения
кода, применения шаблонов, поиска, оптимизации, отладки и рефакторинга кода
и даже записи неожиданно сгенерированных идей с целью их последующей реализации;
позволяет расширять среду разработки продуктами независимых компаний, предоставляя
для этого соответствующий прикладной программный интерфейс — Open API; содержит
развитые средства создания, преобразования и редактирования XML-документов
и поиска ошибок в них, средства интеграции с инструментами контроля версий,
средство тестирования JUnit, инструмент сборки приложений Jakarta Ant, компилятор
Jikes (высокопроизводительный компилятор Java-кода в байт-код, написанный на
языке C++), средства интеграции с Microsoft Visual SourceSafe (рис. 4).
Рис. 4. Среда разработки JetBrains IntelliJ
IntelliJ IDEA поддерживает создание J2SE-, JSP- и J2EE-приложений, создание
и применение Web-сервисов.
На рынке средств разработки Java-приложений компания Novell появилась сравнительно
недавно, после приобретения ею год назад компании SilverStream, хорошо
известной на американском рынке благодаря ряду крупных проектов, реализованных
с помощью
созданных ею технологий и средств интеграции с ERP- и CRM-системами ведущих
производителей, таких как SAP и FarPoint (из подобных проектов, выполненных
при помощи технологий SilverStream в нашей стране, следует отметить создание
компанией EPAM Systems электронной торговой площадки для Тюменской нефтяной
компании). На данный момент пользователям доступно семейство продуктов
exteNd, содержащее, помимо собственно средства разработки Java-приложений Novell
exteNd Workbench, J2EE-совместимый сервер приложений Novell exteNd Application
Server, портальную службу с возможностью написания сценариев Novell exteNd
Director и средство интеграции XML-данных Novell exteNd Composer.
Novell exteNd Workbench служит для поддержки разработки Web-сервисов и содержит
среду разработки, включающую такие элементы, как мастер создания Web-сервисов,
мастера создания EJB, JSP, сервлетов, редакторы Java-кода, JSP-страниц, XML-данных,
редактор WSDL-описаний, браузер и сервер UDDI (рис. 5).
Рис. 5. Среда разработки Novell exteNd Workbench 4
Многие пользователи этого продукта отмечают, что среда разработки eXtend Workbench
весьма удобна в применении. Из преимуществ этого продукта в первую очередь
стоит отметить высокую скорость разработки J2EE-приложений, поскольку большая
часть кода таких приложений проектируется с помощью визуальных средств и затем
генерируется автоматически, что позволяет создавать приложения, не отвлекаясь
на технические вопросы. Для этого продукта также предусмотрено множество готовых
к применению компонентов, на основе которых можно создавать готовые решения,
а также средства интеграции создаваемых приложений с различными СУБД и ERP-системами
ведущих производителей.
Orасlе9i Developer Suite представляет собой интегрированные друг с другом
средства создания приложений масштаба предприятия для широкого спектра платформ
и
устройств (включая мобильные устройства), в том числе транзакционных Интернет-приложений,
настраиваемых Web-порталов, Web-сервисов. Oracle9i Developer Suite тесно
интегрирован с СУБД Orасlе9i и сервером приложений Oracle9i Application
Server (рис. 6).
Рис. 6. Среда разработки Oracle9i JDeveloper
Этот продукт включает:
- Oracle JDeveloper — средство для быстрой разработки Java-приложений;
- Oracle Designer — средство моделирования данных и бизнес-процессов и поддержки
жизненного цикла приложения;
- Oracle Warehouse Builder — средство проектирования и построения хранилищ
данных;
- Oracle Forms — средство быстрой разработки приложений;
- Oracle Reports — средство для подготовки отчетов;
- Oracle Discoverer — средство разработки аналитических приложений;
- Oracle Portal — средство разработки информационного портала организации.
Oracle9i Developer Suite поддерживает UML-моделирование; при этом модели хранятся
в общем репозитарии Oracle, что позволяет осуществлять контроль их версий.
Кроме того, Oracle9i Developer Suite поддерживает обмен XML-данными с другими
UML-инструментами.
Общий репозитарий хранит структурированные данные как объекты базы данных,
а неструктурированные — как файлы и XML-документы. Данный продукт позволяет
управлять процессом обновления версий объектов. Помимо этого общий репозитарий
служит единым источником метаданных приложений, обеспечивающим эффективную
параллельную работу малых и больших коллективов разработчиков.
Oracle JDeveloper позволяет создавать приложения, поддерживающие стандарты
J2EE, в том числе такие их компоненты, как EJB, сервлеты и JSP.
Отметим также наличие в составе Oracle9i Developer Suite набора Business Components
for Java — готовых EJB-компонентов, реализующих стандартную бизнес-логику,
например функции визуализации данных (графики и диаграммы), построения сложных
запросов, проведения аналитических вычислений. Средствами Oracle9i Developer
Suite эти компоненты можно интегрировать в любое Java-приложение. Наличие подобных
готовых компонентов высоко оценивается многими западными аналитиками, в частности
экспертами все той же аналитической компании Gartner. Помимо серверных компонентов,
Oracle9i Developer Suite содержит также набор компонентов JavaBeans для создания
независимого пользовательского интерфейса, что упрощает разработку и поддержку
Web-приложений. Эти компоненты обеспечивают согласованность интерфейса и облегчают
его настройку и локализацию.
Oracle9i Developer Suite может работать на разных платформах, включая Solaris,
Windows NT/2000 и Linux, однако набор платформ, на которых могут выполняться
созданные приложения, более широк.
Средство разработки Java-приложений компании Sun Microsystems (автора технологии
Java) Sun ONE Studio (ранее этот продукт назывался Forte) — позволяет создавать
приложения с поддержкой всех важнейших стандартов и технологий на платформе
Java 2: J2EE, J2ME, J2SE, а также Web-сервисов XML (рис. 7).
Рис. 7. Среда разработки Sun ONE Studio 5
Sun ONE Studio 5 выпускается в трех редакциях: Enterprise, Mobile и Standard.
Редакция Standard предназначена для создания Web-сервисов, J2EE- и J2SE-приложений
и включает Java Web Services Developers Pack (JWSDP) для создания и потребления
Web-сервисов, сервер приложений Sun ONE Application Server 7, инструмент сборки
приложений Ant Build Tool, а также средство тестирования приложений JUnit.
Редакция Mobile представляет собой средство разработки приложений для платформы
Java 2 Mobile Edition (J2ME). С помощью этого средства можно создавать приложения
для сотовых телефонов, коммуникационного оборудования и других устройств. В
комплект поставки этой версии входит J2ME Wireless Toolkit. Кроме того, Sun
ONE Studio 4 Mobile Edition легко интегрируется с эмуляторами мобильных устройств
и сотовых телефонов Nokia, Sony Ericsson, Siemens, Motorola iDEN, J-Phone,
Sprint PCS, Palm и др.
Редакции Standard и Mobile доступны для платформ Solaris 8 и 9, Windows NT/2000/XP
и Red Hat Linux.
Редакция Enterprise представляет собой среду разработки для Sun Solaris, поддерживающую,
помимо Java, языки программирования C, C++, Fortran.