
| Разработка композитных веб-приложений при помощи Unify NXJ ActiveForms
Решения Unify базируются на платформе
NXJ Enterprise.
Входящий в ее состав модуль NXJ ActiveWorkflow
предоставляет стандартную функциональность BPM-системы:
графический редактор схем бизнес-процессов,
«движок» (BPM engine), исполняющий экземпляры бизнес-процессов,
средства мониторинга.
Но больший интерес, в контексте
рассматриваемой проблемы,
представляет NXJ ActiveForms — средство разработки композитных приложений, сочетающее:
Рассмотрим в чем перечисленные достоинства выражаются конкретно.
Опыт многих компаний свидетельствует: при всех достоинствах платформы J2EE,
разработчикам со стажем трудно на нее перейти.
Проблема не в языке Java как таковом, а в том, что
стиль разработки веб-приложений в среде J2EE серьезно отличается от того,
к которому привыкли программисты, работающие на Delphi, Visual Basic или Visual C++.
Unify NXJ ActiveForms выгодно отличается от популярных средств разработки Java
тем, что он предоставляет корпоративным разработчикам привычную для них среду.
Программист с опытом Delphi или другого клиент-серверного средства разработки,
попадая в NXJ, оказывается в знакомой оболочке.
Перед ним привычный экранный холст, на который «набрасываются»
таблицы базы данных, кнопки, закладки и другие элементы интерфейса.
Ему не надо разрабатывать карту переходов между веб-страницами,
ведь встроенная функциональность NXJ обеспечивает добавление записей в базу данных,
удаление, редактирование и поиск на одной форме.
Так же на одной форме, при помощи мастера, он может создать связь master-detail,
например для того, чтобы динамически показывать товарные позиции (строки),
перемещаясь по списку документов.
NXJ не вызывает у программистов с клиент-серверным опытом отторжения,
не требует от них изучения технологий J2EE
и позволяет начать разрабатывать 100% J2EE веб-приложения практически сразу.
Вся стандартная функциональность — навигация между полями и закладками,
добавление-модификацию-удаление-поиск, связи master-detail —
не требует кодирования.
У каждого элемента интерфейса есть обширный набор свойств, поведенческих и визуальных,
редактируя которые программист решает как минимум 70% своей задачи.
Оставшаяся нетривиальная бизнес-логика программируется на чистом java.
Фрагменты java-кода привязываются к понятным разработчику событиям:
инициализация формы, изменение данных в поле и т.п.
Для работы с базой данных используется JDBC,
и там, где приложение должно выполнить какие-то фоновые операции над базой,
программист пишет SQL-код.
Встроенный SQL, готовая функциональность, предопределенные события,
мастера (wizards) — все это повышает производительность труда разработчика.
А встроенная поддержка систем контроля версий
и наличие репозитария повторно-используемых компонент
положительно сказывается на производительности командной работы.
Качество результирующего приложения
Веб-приложения обычно ассоциируются с серией HTML-страниц,
которые перезагружаются при каждом обновлении содержимого.
Только недавно веб-разработчики открыли для себя возможность создавать
в рамках браузера приложения, по качеству не уступающие традиционным десктопным.
Технически это реализуется фоновой передачей данных между кодом javascript,
исполняемым на стороне браузера, и программным обеспечением на сервере.
В результате обновляется только та часть экрана, которую затрагивают изменение в данных,
и приложение в целом становится более функциональным и более дружественным по отношению к пользователю.
Эта технология стала известна широким кругам разработчиков и пользователей Интернет
под названием AJAX в середине 2005 г.
Но к этому моменту она уже была реализована на ряде популярных интернет-сайтов,
в частности Gmail и Google Maps.
Эта же технология под именем ActiveWeb™ была реализована в Unify NXJ задолго до появления термина AJAX,
т.е. Unify является пионером в этой области.
В приложениях NXJ все операции с базой данных выполняются через одну форму,
содержимое которой динамически и выборочно обновляется без перерисовки веб-страницы.
По надежности и уровне сервиса для пользователя приложения NXJ не уступают традиционным клиент-серверным,
сохраняя при этом преимущества тонкого клиента.
Помимо чисто визуального аспекта, в веб-приложения Unify NXJ
заложены алгоритмы буферизации, кэширования, предварительной выборки,
без которых невозможна эффективная работа корпоративных приложений,
подразумевающая доступ к базам данных большого объема.
Совместимость с существующей IT-инфраструктурой
Выбирая инструментарий, разработчик хочет, чтобы
-
он был совместим с информационной инфраструктурой,
принятой на предприятии в качестве стандарта
-
и в то же время чтобы он не предъявлял повышенных требований
к наличию этой же самой инфраструктуры
Другими словами, если на предприятии, например, используется СУБД Oracle и J2EE-сервер IBM,
то в идеале инструментарий разработчика должен позволять работать с тем и с другим,
но не требовать ни того, ни другого в качестве обязательного условия для начала работы.
Unify NXJ удовлетворяет обоим этим, на первый взгляд противоречащим друг другу, требованиям.
С одной стороны, он сертифицирован на совместимость с операционными системами,
серверами приложений, системами авторизации и СУБД ведущих производителей
(подробнее),
а с другой — в состав дистрибутива входят
популярный OpenSource J2EE сервер JBoss, встроенная СУБД и система авторизации.
Это дает возможность разработчику на начальном этапе установить Unify NXJ
без доступа к сетевым сервисам (на офисном или на домашнем компьютере),
опробовать NXJ и выполнить начальный этап разработки,
а в нужный момент инсталировать его на корпоративный сервер приложений.
Все что нужно приложению NXJ для работы с точки зрения пользователя —
это Интернет-браузер (поддерживаются Internet Explorer, Netscape, Mozilla, Firefox).
Приложение NXJ — это чистый «тонкий клиент»:
никакой установки программ или плагинов, Java на стороне клиента также не используется.
А выставив одну галочку в окне свойств, разработчик может превратить приложение NXJ в портлет,
соответствующий стандарту JSR-168, т.е. совместимый с большинством существующих порталов.
Далее:
Примеры проектов BPM, выполненных средствами Unify NXJ...
|