Проект Rich Ajax Platform (RAP)

Прошедший год преподнес нам много подарков от сообщества разработчиков Eclipse. Наряду с рассмотренным ранее проектом eRCP для разработки мобильных приложений появился еще один перспективный проект Rich Ajax Platform (RAP), предназначенный для расширения технологии Eclipse RCP и разработки не менее популярных web-приложений. Хотя данный проект еще окончательно не утвержден, уже можно ознакомиться с предварительными наработками.

Цель проекта RAP


Целью проекта является создание платформы для разработки динамичных Rich Internet Applications (RIA) приложений в "Eclipse-стиле", т.е. с использованием подключаемых модулей с готовыми библиотеками Java-компонент и сервисов без необходимости кодирования AJAX-кода вручную. Компания Innoopract предоставила большую часть кода проекта W4Toolkit, который содержит большое количество компонент для построения визуального интерфейса web-приложений. Данные компоненты базируются на технологии Asynchronous JavaScript and XML (AJAX) и позволяют строить реагирующие на события приложения с предопределенной реакцией на внешние воздействия в реальном режиме времени и сравнимым с технологией Java Server Faces (JSF) жизненным циклом. На будущее рассматривается возможность создания JSF-реализации для W4T-проекта.

Кроме того, данная библиотека компонент способна анализировать среду выполнения и используемые браузеры, автоматически подстраиваться под нюансы и возможности последних для работы с JavaScript, AJAX или без поддержки JavaScript. Используемый в Eclipse OSGi фреймуорк (Equinox) может работать и в web-приложениях, что позволяет использовать данную технологию для создания аналогичной Eclipse платформе разработки, но для Web. Планируется воссоздать полную аналогию столь популярной среды с поддержкой пользовательских сессий; создать точки расширения для различных наборов действий (actions), рабочую среду, проекции, страницы настроек и т.д., позволить сторонним модулям расширять функциональность и предоставлять дополнительные точки расширения. Интерфейс программирования приложений (Application Programming Interface — API) будет максимально приближен к API платформы Eclipse.

Область применения RAP

Основная идея заключается в возможности создания модульных приложений для Web по аналогии с приложениями на основе технологии Eclipse RCP без необходимости создания и установки приложений на клиентском уровне или для возможности дублирования таких клиентских приложений, что позволяет работать с любого компьютера.

Сравнение технологий RAP и Eclipse RCP

RCPRAP
Модель подключаемых модулейOSGiOSGi на сервере
КомпонентыSWTWWW Widget Toolkit (W4T)
Model View ControllerJFaceJFace (адаптирован к JFace стандарту в связке с SWT)
Графический ФреймворкWorkbenchWeb Workbench


План развития проекта

• 2007-01 M3: простая реализация WebWorkbench на OSGi;
• 2007-03 M4: реализация API релиза 1.0;
• 2007-05 RC1: фиксация кода версии 1.0;
• 2007-06 v1.0: релиз версии 1.0.
На данный момент уже есть доступ к библиотекам проекта RAP и примеры его использования.

Пример простого приложения RAP

Пример простого RAP-приложения наглядно демонстрирует возможность создания приложений одновременно с web- и Eclipse RCP графическими интерфейсами. При этом используются общие модули кода — отличие лишь в интерфейсе взаимодействия с пользователем (User Interface — UI). После распаковки и импорта проекта в Eclipse нам доступны следующие модули (префикс org.eclipse. опущен):

. org.apache.commons.logging — необходимая для equinox.jetty библиотека логирования;
. org.eclipse.equinox.http.registry содержит точки расширения сервлета для регистрирования rap.ui.workbench;
. equinox.jetty и equinox.jetty.http предоставляют HTTP-сервис;
. equinox.servlet.api содержит javax servlet API;
. equinox.servlet.bridge.http представляет собой мост к контейнеру сервлетов для OSGi HttpService сервиса. Используется в модуле jetty.http; 
. rap.example.core — общая модель данных для клиентов Eclipse RCP и RAP;
. rap.example.rcp — Eclipse RCP клиент;
. rap.example.ui — RAP-клиент;
. rap.example.data предназначен для временного хранения данных;
. rap.ui.workbench содержит специфичную для RAP точку расширения стартовой страницы (startup form) и отображения ее на сервлет;
. rap.viewer содержит RAP-аналогию JFace API;
. rap.w4t библиотека компонент W4Toolkit.

Проект содержит конфигурации запуска приложений из среды Eclipse.
Для запуска Eclipse RCP клиента вызываем конфигурацию Run -> Run -> Eclipse Application -> RAP-RCP Example.


Рис. 1. Eclipse RCP клиент демонстрационного проекта RAP


Рис. 2. Запрос пароля

Для запуска W4T-клиента вызываем конфигурацию Run -> Run -> Equinox OSGi framework -> sample. Если серверная часть запустится успешно, то в панели консоли будет выведено соответствующее сообщение. Для непосредственно запуска приложения требуется открыть web-браузер и ввести адрес http://localhost/W4TDelegate, а далее на предложенный запрос имени и пароля ввести Demo/Demo.


Рис. 3. W4Toolkit-клиент демонстрационного проекта RAP

Рекомендуемые ресурсы

Сайт проекта Rich Ajax Platform (RAP): сайт
Архив демонстрационного RAP-приложения: сайт
RWT — RAP Widget Toolkit: сайт
Подписка на рассылку проекта RAP: сайт
Проект с открытым исходным кодом по созданию web-ориентированных AJAX-компонент и приложений: сайт
Информация о проекте на сайте innoopract: сайт
Eclipse RAP Webinar: сайт

Сергей Бердачук,
сайт



Компьютерная газета. Статья была опубликована в номере 03 за 2007 год в рубрике программирование

©1997-2024 Компьютерная газета