Особенности современных средств создания 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-приложений или средства оптимизации производительности приложений).