ИНСТРУМЕНТЫ

В составе представленного в этом году программного комплекса Callisto (www.eclipse.org/callisto), реализованного на технологической платформе Eclipse 3.2, на сегодняшний день имеется около десятка продуктов для разработчиков ПО. Среди них, наверное, особое внимание стоит обратить на два - Web Tools Platform (WTP) и Data Tools Platform (DTP), которые, с одной стороны, нацелены на демонстрацию возможностей Eclipse в плане его применения в наиболее популярных направлениях разработки приложений, а с другой - представляют собой достаточно полные наборы для выполнения реальных программных проектов (в основном за счет различных дополнительных инструментов от многих ведущих игроков на поле Eclipse, предоставляемых в виде их спонсорского участия в проекте).

Каждый из них (WTP и DTP) - это расширения для базовой среды Eclipse, которые разработчику доступны в виде стартовых шаблонов для создания соответствующих приложений.

Web Tools Platform

На самом деле WTP состоит из двух подпроектов - J2EE Standard Tools (JST) и Web Stardard Tools (WST). Первый включает широкий набор инструментов, нацеленных на повышение эффективности J2EE-разработки, в том числе текстовые и графические редакторы для работы с различными компонентами приложения, конструкторы работы с базами данных и мастера для создания Web-сервисов. Второй предлагает интегрированную поддержку для запуска и тестирования приложения на различных Web-серверах (но в рамках технологий Eclipse). WST включен в состав многих шаблонов новых приложений, например Dynamic Web Project поможет писать, тестировать и отлаживать приложения Java Web Archive (WAR), а Enterprise Application Project - Enterprise Archive (EAR).

Пять лет проекту Eclipse

В ноябре в Сан-Франциско (США) американская ИТ-общественность отметила пятилетний юбилей проекта Eclipse - безусловно, феномена ИТ-отрасли начала нынешнего столетия. Его уникальность заключается в двух аспектах. Во-первых, это один из самых масштабных примеров самоорганизации участников ИТ-рынка в решении общих технологических задач, направленных на ускорение развития рынка в целом. Во-вторых - наглядная демонстрация того, как могут сотрудничать сторонники различных бизнес-моделей в области софта (коммерческой и Open Source).

Вообще юбилеи Eclipse можно праздновать чаще обычного, так как проект имеет несколько дней рождения, и в этом тоже есть своя специфика. Как известно, он был начат корпорацией IBM в 1998 г. с целью создания интегрированной среды Java-разработки нового поколения. Однако довольно быстро руководство компании поняло, что для построения конкурентоспособного решения нужно действовать в кооперации с другими поставщиками Java-инструментов. В результате в ноябре 2001-го был сформирован первый совет управляющих проектом Eclipse.org, в состав которого вошли компании Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SUSE, TogetherSoft и Webgain. В последующие два года к этой работе подключились многие другие ведущие ИТ-поставщики, в том числе Sybase, Fujitsu, Hitachi, Oracle, SAP и Intel.

Базовая среда Application Lifecycle Framework, создаваемая в рамках одного из новых проектов Eclipse, предназначена для формирования единой платформы управления жизненным циклом приложений

В начале 2004-го IBM сделала окончательный шаг по преобразованию проекта Eclipse из частного в отраслевой, представив Eclipse Platform в виде ПО с открытыми исходными кодами. В феврале совет управляющих был преобразован в некоммерческую организацию Eclipse Foundation, открытую для участия всем желающим (www.eclipse. org). С тех пор Eclipse развивается как независимый открытый проект, хотя IBM безусловно занимает в нем позицию первой среди равных. Тем не менее именно такое преобразование проекта позволило привлечь к работам самый широкий круг заинтересованных сторон: основных технологических вендоров, заказчиков, университеты и научно-исследовательские институты, органы стандартизации, индивидуальных ученых и программистов.

Сегодня в состав основателей фонда, имеющих статус его стратегических членов, входит элита мировой ИТ-отрасли, в том числе BEA, Borland, CA, Ericsson, HP, IBM, Intel, Motorola, SAP, Sybase. Тут нет Microsoft и Sun, что четко демонстрирует маркетинговую направленность проекта: Eclipse, с одной стороны, олицетворяет противостояние Java и .NET, а с другой - направлен против лидирующей роли Sun в мире Java.

Всего в работе фонда сегодня принимает участие в том или ином виде более 100 компаний. При их поддержке выполняется около 10 проектов верхнего уровня, которые имеют множество подпроектов, и число последних постоянно растет (за последний год оно увеличилось на 30). В целом руководством отдельных направлений деятельности фонда занимается более 600 комитетов и групп.

Хотя система Eclipse изначально создавалась как среда разработки для Java, она давно уже вышла за эти границы. Исследования в рамках идей Open Source ведутся по семи основным направлениям: средства разработки приложений масштаба предприятия, встроенные решения, SOA (сервисно-ориентированная архитектура), управление жизненным циклом приложений, насыщенные интернет-приложения, платформа многофункционального клиента и базовые среды поддержки приложений.

Любопытно выглядит взаимодействие общественного фонда с коммерческими компаниями. Разработками фонда могут пользоваться все желающие, в том числе ИТ-вендоры для создания своих коммерческих продуктов. В то же время арсенал его технологий постоянно пополняется за счет продуктов и средств, которые ИТ-компании передают в общественное пользование. Все это дает мощный синергетический импульс для развития как фонда, так и отдельных его участников.

И все же, несмотря на расширение задач глобальной отраслевой инициативы Eclipse, ключевым и наиболее известным ее проектом остается создание открытой индустриальной платформы (она так и называется - Eclipse Platform) для разработки интегрированных инструментов (IDE) и функционально насыщенных клиентских приложений (Rich Client). В начале 2006 г. была представлена новая версия - Eclipse 3.2. На ее базе ведется комплексный проект под названием Callisto, который включает несколько параллельных подпроектов, нацеленных на разработку ПО. Каждый из них представляет собой то или иное расширение базовой среды Eclipse 3.2: Business Intelligence and Reporting Tools, C/C++ IDE, Data Tools Platform, Eclipse Modeling Framework, Graphical Editing Framework, Graphical Modeling Framework, Test & Performance Tools Platform, Web Tools Platform, Visual Editor.

Главная задача этих проектов - демонстрация возможностей базовой платформы, на основе которой ИТ-поставщики и заказчики могли бы формировать собственные инструментальные наборы, пополняя исходные варианты решений модулями или средствами третьих фирм. В то же время формируемые в ходе этих работ инструменты могут использоваться и в готовом виде для создания ПО.

С проектом Callisto связано и другое важное направление - построение в рамках Eclipse платформы управления жизненным циклом приложений (Application Lifecycle Management, ALM). Здесь нужно отметить начатые в этом году два новых проекта по созданию Application Lifecycle Framework (см. рисунок) и Tools Services Framework, стартовавших в этом году под руководством соответственно компаний Serena и Compuware.

Маркетинговые исследования отмечают быстрый рост популярности Eclipse у разработчиков ПО. В обзоре компании Evans Data, опубликованном нынешним летом, говорится, что доля Eclipse, применяемой американскими программистами в качестве "первой" IDE, за год возросла с 32 до 60%. Правда, в качестве ОС пользователи Eclipse чаще всего (в 80% случаев) применяют Windows (Linux - только 8,8%). Результирующие приложения также нацелены в большинстве своем на Windows (60%, на Linux - 20%). Главными проблемами на пути более широкого применения Eclipse, по мнению респондентов, являются сомнения по поводу технической поддержки и, как это ни странно, схем лицензирования продуктов Open Source.

В стандартный вариант поставки пакета Eclipse 3.2 никакие расширения не входят. Чтобы их загрузить, нужно воспользоваться функцией Remote Update. Попав на сайт http://download.eclipse.org/ callisto/releases/, далее следует пройти по ссылкам Help> Software Updates> Find and Install). В диалоговом окне выбирается позиция Callisto Discovery Site, и тогда вы увидите полный набор доступных расширений Callisto (рис. 1). В данном случае нужно выбрать Web and J2EE development и еще несколько необходимых вспомогательных опций: Enabling Features, Graphical Editors and Frameworks и Models and Model Development.

Рис. 1. Установка WTP с Remote Site

Стандартный вариант Eclipse предлагает весьма ограниченные возможности для редактирования не-Java-файлов, в то время как для создания Web-приложений нужны различные языки. Поэтому раньше для профессиональной работы требовались дополнительные инструменты от третьих фирм. С появлением WTP в них уже нет необходимости, платформа включает набор первоклассных редакторов для файлов самых разных типов: HTML, JSP, JSTL, XML, DTD, XML Schema, XSL, WSDL, JavaScript, CSS и др. Каждый из них позволяет анализировать не только содержимое файла, но и древовидную структуру документа (рис. 2) или его программного кода. Впоследствии будет реализована полная поддержка JSF-файлов, которая пока представлена в ограниченном варианте (на уровне проверки синтаксиса).

Рис. 2. Редактирование файла JSP/JSTL в среде WTP

Отдельно нужно сказать о работе с XML. Стандартный XML-редактор позволяет использовать трехоконное представление XML-документа (исходный код, структура и список свойств), обеспечивая при этом проверку его соответствия заданной XML-схеме. Работа с XML-схемами возможна как в текстовом, так и в графическом форматах.

Поддержка технологии Web Services в пакете WTP реализована на базе библиотек Apache Axis Web Service, обеспечивающих функционирование как самих Web-сервисов, так и клиентских приложений. Описание Web-сервисов хранится в виде WSDL-файлов, для визуальной работы с которыми используется встроенный XML-редактор (рис. 3); при этом от программиста не требуются глубокие познания в спецификациях WSDL.

Рис. 3. Редактирование WSDL-файла

Чтобы задействовать существующий Web-сервис в клиентской программе, нужно просто обратиться к соответствующему WSDL-файлу, который находится либо на локальном компьютере, либо на каком-то Web-cайте. Eclipse сам создаст все необходимые Java-классы. Такой подход полезен, когда вы имеете дело со стабильными Web-сервисами, предоставляемыми, например, сервис-провайдерами на коммерческой основе. Если же вы применяете Web-сервис, созданный для внутреннего пользования, как часть своего клиентского приложения, то можно реализовать вариант динамического доступа, встроив обращение к сервису в формируемый процесс.

WTP предлагает также все необходимое для написания, тестирования и развертывания собственных Web-сервисов. Тут есть два варианта их создания. В первом разработка идет от бизнес-логики, когда для имеющегося Java-класса автоматически генерируется WDSL-файл. Во втором случае, наоборот, сначала формируется описание Web-сервиса (в виде WSDL-файла и соответствующей XML-схемы), а вслед за ним генерируется каркас Java-класса, который потом заполняется кодом с бизнес-логикой. В обоих сценариях вы из Eclipse запускаете Web-сервер, записываете туда созданный Web-сервис и тестируете его, следя за обменом SOAP-сообщениями между Web-сервисом и клиентом.

Если речь идет о создании серьезного JEE-приложения, то желательно, чтобы разработчик посмотрел, как оно будет выполняться не в среде Eclipse, а на реальном Web-сервере. Для этого в WTP реализована поддержка большого числа (в настоящее время 15) серверов приложений, как коммерческих, так и Open Source. Их можно подключать, конфигурировать и использовать для запуска приложений прямо из среды Eclipse.

В заключение еще раз подчеркнем, что WTP создавался как базовая платформа Web-разработки и по инструментальным возможностям, конечно, уступает коммерческим продуктам, таким как Exadel Studio Pro, BEA Workshop или MyEclipse, которые, впрочем, тоже построены на основе WTP. И все же благодаря расширениям, появившимся в рамках спонсорской поддержки, WTP вполне пригоден для практической работы.

Data Tools Platform

Это средство также является расширением среды Eclipse 3.2 и представляет собой набор инструментов для создания приложений, ориентированных на работы с базами данных (data-centric development). Возможности DTP включают использование JDBC-соединений, поддержку SQL-запросов (в том числе их визуальное моделирование), трассировку сценариев обработки данных. Разработчик может использовать объектную среду для редактирования отладки запросов и хранимых процедур и иметь дело с широким спектром самых разных источников данных, а не только с реляционными БД.

Инсталляция DTP на компьютер выполняется так же, как WTP, но в этом случае можно дополнительно указывать загружаемые программные компоненты продукта.

При создании приложения в среде DTP обычно первым делом нужно установить соединение с базой данных. Система имеет готовый набор драйверов для реляционных СУБД DB2, Derby, MySQL Oracle и Sybase (рис. 4); для подключения других БД нужно использовать общий JDBC-коннектор. Но источниками данных в DTP могут быть не только реляционные БД. Средство ODA (Open Data Access) Data Sources позволяет получить доступ к другим источникам (например, к файлам CSV или XML), а также к другим пользовательским наборам информации.

Рис. 4. Создание соединения с новой базой данных

С помощью средства Data Source Explorer разработчик может проанализировать структуру базы данных, представленную в виде дерева. Тут видны таблицы, колонки, хранимые процедуры, индексы, триггеры и пр. При этом нельзя ничего модифицировать - только просматривать, но можно запустить на выполнение хранимую процедуру. Чтобы посмотреть содержимое БД или определить время выполнения сложного SQL-запроса, нужно использовать другие инструменты DTP. Проверку синтаксиса и правильности исполнения запроса в режиме отладки можно выполнить в редакторе SQL-файлов, а сформированный запрос сохранить в наиболее подходящем для дальнейшей работы формате.

Разумеется, работать с базами данных приходится в других продуктах Callisto, в том же Web Tools Platform. Правда, в нынешней версии из WTP нельзя напрямую обратиться к Data Source Explorer - для создания соединения с БД тут нужно использовать ее встроенное средство Database Explorer. Но в отличие от DTP здесь можно не только просматривать, но и корректировать структуру базы данных, а также выполнять запросы к содержимому. WTP предлагает также альтернативный вариант запуска нерегламентированных (ad-hoc) SQL-запросов с помощью функции SQL Scrapbook (DTP имеет аналогичное средство SQL Page, но с более широкими возможностями).

В составе DTP уже сейчас много других полезных для разработчика инструментов, но самое главное заключается в том, что их набор будет расти. На самом деле проект DTP стартовал в рамках Eclipse относительно недавно, однако авторы вынашивают весьма амбициозные планы по его развитию. Другие продукты Callisto также имеют встроенные средства работы с базами данных, но DTP - это "образцовый" инструмент для создания БД-ориентированных приложений в среде Eclipse.