...
...
...

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

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

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

Итак, цель данного проекта - создание платформы для разработки динамичных Rich Internet Applications (RIA) приложений в “Eclipse-стиле”, то есть с использованием подключаемых модулей с готовыми библиотеками java-компонент и сервисов без необходимости кодирования AJAX-кода вручную. Компания Innoopract предоставила большую часть кода проекта W4Toolkit, который содержит большое количество компонент для построения визуального интерфейса веб-приложений.

Данные компоненты базируются на технологии 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.

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



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



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


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

Сайт проекта Rich Ajax Platform (RAP) http://www.eclipse.org/rap

Архив демонстрационного RAP приложения http://download.innoopract.com/rap/rapsample.zip

RWT – RAP Widget Toolkit http://wiki.eclipse.org/index.php/WidgetToolkit

Подписка на рассылку проекта RAP https://dev.eclipse.org/mailman/listinfo/rap-dev

Проект с открытым исходным кодом по созданию Web ориентированных AJAX компонент и приложений http://qooxdoo.org/

Информация о проекте на сайте innoopract http://www.innoopract.com/index.php?bsID=480

Eclipse RAP Webinar http://adobedev.adobe.acrobat.com/p86217246/



Сергей Бердачук, http://www.berdaflex.com


© Сетевые решения