В конце февраля германская компания Software AG - один из крупнейших в Европе производителей ПО - представила на суд общественности инструментальное средство Bolero, которое сама же окрестила "фабрикой бизнес-приложений" (Business Application Factory). Собственно, на презентации, проходившей в штаб-квартире компании в Дармштадте, был представлен не сам продукт, а его прототип (выпуск коммерческой версии намечен на осень, а первая демонстрация предварительного варианта должна состояться на выставке CeBit в Ганновере в конце марта). Кроме того, на презентации была оглашена новая концепция, лежащая в основе Bolero, и продемонстрированы его уникальные особенности.

К таковым, прежде всего, относится полная ориентация продукта на создание бизнес-приложений, предназначенных для ведения бизнеса в Internet и в интрасетях, что, несомненно, позволяет считать его средством разработки нового поколения. Bolero дает разработчику возможность полностью сконцентрироваться на создании бизнес-логики приложения, не задумываясь о многочисленных деталях его функционирования, которые при разработке сложных систем обычно отнимают немало времени - например, о поддержке транспортных протоколов, взаимодействии программных компонентов в распределенной среде, связи с базами данных и т. д.

Другим интересным свойством Bolero является поддержка компонентных моделей DCOM и JavaBeans, реализованная "прозрачно" для разработчика. Это, кроме всего прочего, означает, что программные компоненты, созданные с помощью Bolero, могут взаимодействовать в распределенной системе не только между собой, но и с компонентами, разработанными посредством других инструментальных средств.

Еще одна отличительная особенность Bolero состоит в использовании собственного высокоуровневого языка, который, по утверждению представителей компании, с одной стороны, реализует все лучшие свойства языка Java, а с другой, значительно лучше приспособлен для создания серверных бизнес-приложений. Строго говоря, Bolero нельзя отнести к средствам разработки Java-приложений, поскольку при разработке приложения не используется язык Java как таковой. Кроме того, конечный продукт, получаемый "на выходе" Bolero, представляет собой байт-код Java, который должен выполняться на любой платформе, поддерживающей виртуальную машину Java (JVM).

КАК УСТРОЕНА "ФАБРИКА" ПРИЛОЖЕНИЙ

Bolero включает в себя объектно-ориентированный язык программирования, соответствующий компилятор, репозитарий (хранилище объектов) с поддержкой коллективной работы и Bolero Application Server - среду выполнения приложений. Следует отметить, что компилятор Bolero генерирует байт-код Java, соответствующий JDK 1.2, окончательный вариант которого должен появиться в июне.

Picture
Архитектура Bolero

Сервер приложений Bolero

Bolero Application Server расширяет возможности виртуальной машины Java, добавляя к ней свои библиотеки классов, необходимые для выполнения программных компонентов, созданных с помощью Bolero. В совокупности с платформой Java такая концепция обеспечивает два основных преимущества: первое - независимость от платформы (в соответствии с принципом "написано однажды - работает везде"), полностью исключающая необходимость переноса программного кода на другую платформу, и второе - совместимость с другими библиотеками классов Java (Bolero может использовать Java-классы как свои "родные" и наоборот). Более того, Bolero дает возможность разработчику без каких-либо специальных усилий ощутить все достоинства платформы Java: автоматическое освобождение памяти ("сборка мусора"), встроенную синхронизацию потоков, отсутствие операций с указателями, сохранность типов и т. д., что несомненно должно способствовать созданию надежных программ и минимизации количества ошибок программирования.

Язык Bolero

Как отмечалось выше, одной из ключевых особенностей Bolero является его ориентация на автоматизацию бизнес-процессов за счет использования специализированного языка, обеспечивающего высокий уровень абстракции и освобождающего разработчика от необходимости изучения сложных деталей языка Java. Кроме того, язык Bolero предоставляет множество расширений языка Java, облегчающих создание критически важных бизнес-приложений. Например, в нем предусмотрены широко используемые в деловой среде типы данных, поддерживающие операции с датами и преобразование валют. Поддержка Unicode значительно облегчает "интернационализацию" приложений.

Интеграция компонентов

Реализованный в Bolero объектно-ориентированный компонентный подход позволяет разработчикам создавать классы и методы, которые могут быть использованы многократно. Открытость создаваемых с помощью Bolero программных компонентов обеспечивает их двустороннюю интеграцию с другими объектами, сформированными на основе Java-классов, а также с двоичными компонентами, работающими на любой другой платформе. Это достигается за счет возможностей Bolero, позволяющих разработчику создавать по своему выбору объекты COM, либо компоненты JavaBeans (для этого он должен просто задать соответствующий признак в процессе определения объекта). В распределенной среде компоненты COM взаимодействуют друг с другом через интерфейсы DCOM. Для взаимодействия компонентов JavaBeans используется стандартный интерфейс RMI (Remote Method Invocation). В следующей версии Bolero планируется обеспечить поддержку протоколов CORBA и IIOP (Internet Inter-ORB Protocol).

Интеграция с Web-технологиями

Bolero позволяет создавать компоненты в виде апплетов, которые могут загружаться в Web-браузер и выполняться в нем точно так же, как обычные апплеты Java. После запуска апплета на клиентской системе он может установить связь с любым серверным компонентом, например через DCOM. При этом отпадает необходимость в использовании протокола HTTP. Для Web-браузеров и клиентских платформ, не поддерживающих Java, Bolero обеспечивает другой способ интеграции с Web - посредством генерации динамических HTML-страниц. Работающий на сервере компонент Bolero взаимодействует с HTTP-сервером (через интерфейс CGI, ISAPI, NSAPI или Java Servlet API), генерирует динамические HTML-страницы и через HTTP-сервер возвращает их клиентскому браузеру.

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ СРЕДА РАЗРАБОТКИ

Среда разработки служит для создания программных компонентов на языке Bolero и для сборки из них (и из внешних компонентов) готовых приложений. Вся информация, используемая в процессе разработки приложения, разделена на три части: иерархические структуры классов, пакеты и проекты. Пакеты служат для группирования тематически связанных наборов классов. Это облегчает навигацию по иерархическим структурам классов. Проекты объединяют все классы Bolero и Java, а также ссылки на внешние программы и компоненты, которые необходимы для реализации какого-то одного компонента Bolero или набора взаимосвязанных компонентов. Каждый проект может быть разделен на несколько простых для понимания частей, которые впоследствии могут многократно использоваться в других проектах.

Шаблоны

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

Workbench

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

Workbench имеет встроенное средство построения графических интерфейсов GUI Builder, позволяющее быстро создавать графические клиентские части приложений Bolero. GUI Builder располагает специальным редактором для создания и компоновки графических Bean-компонентов, таких как кнопки, текстовые поля, списки, линейки меню и другие. С помощью этого средства можно создавать как отдельные диалоговые окна, так и полноценные приложения со сложной системой меню и несколькими рабочими окнами. После завершения проектирования графических интерфейсов они сохраняются в виде классов Bolero в общем репозитарии.

Репозитарий

В репозитарии хранится вся информация, используемая в процессе разработки приложений, как-то: определения классов, пакеты и проекты, а также сгенерированный компилятором Bolero байт-код и ссылки на внешние компоненты. С помощью механизма выписки и возврата элементов (check-in/check-out) репозитарий координирует и синхронизирует параллельный доступ к данным нескольких разработчиков, тем самым обеспечивая целостность информации при коллективной разработке приложений.

Среда разработки Bolero обеспечивает доступ к своим элементам через интерфейс репозитария, который в свою очередь взаимодействует с базой данных элементов через специальный драйвер. Такой уровень абстракции позволяет унифицировать доступ к хранящимся в репозитарии данным как из среды разработки, так и из среды выполнения приложений. Предполагается, что в будущем интерфейс репозитария будет служить открытым интерфейсом для интеграции средств независимых производителей, например средств объектно-ориентированного анализа и проектирования.

Документация

Документация к создаваемым в Bolero компонентам является синтаксическим элементом языка Bolero, в котором для каждого метода предусмотрен раздел описания. Эти описания могут быть извлечены из исходного кода и скомпонованы в виде документации, предназначенной для внутреннего пользования.

Пользовательская документация поставляется в двух формах. Для тех, кто предпочитает печатные руководства, формируются файлы в формате PDF, которые могут выводиться на экран и распечатываться с помощью соответствующей программы просмотра. Кроме этого, создаются активные синтаксические диаграммы (привязанные к языковым конструкциям), которые вместе с файлами в формате HTML предоставляют пользователям возможность интерактивного просмотра документации.

* * *

В заключение хочу отметить, что появление на рынке инструментальных средств типа Bolero, на мой взгляд, знаменует начало нового этапа в создании корпоративных приложений. Современные программы и среда их выполнения стали настолько сложными, что возникла настоятельная необходимость максимально облегчить разработчикам процесс проектирования, приближая его к моделированию реальных бизнес-процессов и скрывая от них все сложности технической реализации создаваемых программных продуктов. Именно по такому пути пошла компания Software AG, создав среду разработки Bolero. По реакции разработчиков мы узнаем, насколько они готовы воспринять новую концепцию проектирования приложений.