Асинхронный веб-интерфейс, контролируемый сервером через websocket и автоматическое обнаружением потери подключения позволяют оператору всегда быть уверенным, что у него на экране действительно актуальные данные, совпадающие с данными на сервере
Упрощенная интеграция с js-библиотеками - позволяет легко интегрировать весь накопленный пласт интерфейсных решений на Js и управлять ими напрямую из Java;
Бесшовная интеграция HTML-форм и серверных java-механизмов – на уровне приложений для локального компьютера
Позволяет не проектировать детали взаимодействия веб-интерфейса и сервера : экранная html-форма и серверный bean работают как одно целое - все механизмы обмена сигналами, пересылки сообщений и событий пересылка сообщений и событий реализована на уровне ядра;
Предоставляются удобные программные механизмы для быстрой разработки приложений с web-интерфейсом используя "десктопную" модель приложения - программист оперирует понятиями "экранная форма", "модуль виджета", "обработчик нажатий" и т.п. - не заботясь о деталях того, через какие именно механизмы или интерфейсы производится взаимодействие.
При этом сохраняется возможность использовать все типовые механизмы J2EE, в том числе создавать rest-механизмы для сторонних сервисов, использовать все библиотеки и наработки Java, организовывать фоновые процессы и механизмами взаимодействия с другими подсистемами предприятия.
Оптимизация бюджета проекта
Не требует привлечения выделенных JavaScript-разработчиков
для создания динамических веб-интерфейсов и позволяет вести разработку
силами java-разработчиков, обладающих минимумом навыков в JavaScript/HTML/CSS.
Экономия сил при проектировании
Бесшовная интеграция экранной формы и сервера позволяет отказаться
от необходимости в сервлетах и rest-функциях и не тратить время аналитиков
на разработку и согласование API между "фронтом" и "бэком" : механизмы транспорта
стандартизированы и "упакованы" внутрь ядра системы.
Безопасность доступа к данным - в концепции
Клиенту всегда отсылается
только готовая информация для отображения (html-формы) - на клиенте нет ни бизнес-логики,
ни лишних неотображаемых данных – сама идеология подталкивает разработчика к этому.
Модульность приложения
HRUD подталкивает к разбиению функциональности на виджеты-компоненты.
Это позволяет быстро расширять приложение модулями из других
hrud-приложений. Виджеты HRUD, являющиеся "единицами функциональности",
легко переносятся из одной системы в другую, как программы для настольного компьютера
Обеспечивает возможность переноса сессии на другой компьютер или теневой трансляции экрана на компьютер техподдержки - как в RDP (сервисы удаленного рабочего стола ОС Windows) или X-Windows (графическая подсистема ОС Linux);
При разрыве связи или отказе локального оборудования, обеспечивает сохранение сессии на сервере, включая положение окон и несохраненных данных.
Допускает создание "трассирующего лога сессии" - действия оператора и работу интерфейса можно записать и потом воспроизвести, что упростит анализ сбоев и проблемных ситуаций.
Поддерживает многооконный MDI-интерфейс оператора, обеспечивающий удобство работы при решении ситуационных разовых задач (ad-hoc) в привычных механизмах работы с desktop-приложениями.
HRUD создает websocket соединение между клиентом и сервером, и после этого транслирует клиенту HTML-элементы которые составляют web-интерфейс приложения.
HRUD работает с dom-узлами клиента как с записями в БД - по принципу CRUD - Create, Read, Update, Delete
С точки зрения ключевых задач которые решает HRUD – то их всего «3 +1»
(1) Асинхронное управление структурой html через веб-сокеты по командам с сервера
(2) Доставка событий с веб-интерфейса на сервер, их обработка, обмен данными, удаленный вызов процедур.
(3) Организация серверного интерфейсного приложения. Фреймворк обеспечивает ЖЦ серверных java-bean для виджетов и экранов;
(*) Шаблонизация для server-side генерации html (Apache Velocity) Шаблонизатор обеспечивает прогнозируемость того, что вы увидите на экране, и дает возможность применять типовые для html рецепты верстки и встраивания js+css
Преимущества фреймворка напрямую определяют как особенности его применения, так и его огранчиения.
Подход направленный на гибкость настройки и адаптации интерфейса - может обмануть ожидания тех, кто привык к появлению визуальных js-фреймвоков.
Перенос бизнес логики на сервер, тяжеловесность statefull-механизмов, жесткий контроль за правами - также накладывает свои особенности.
HRUD не для публичных сайтов
Hrud не предназначен для создания публичных массовых систем.
Для массовых систем в открытой сети - используйте типичные для вебсайтов механизмы построения систем.
HRUD - это асинхронные промышленные интерфейсы корпоративных АРМ в закрытой сети.
HRUD по организации внутренних механизмов несколько похож на JSF - например, есть аналогичное понятие «серверного bean» для экранной формы.
Однако, в HRUD решены многие проблемы и неудобства присущие технологии JSF.
Если вы использовали JSF, возможно вам следует обратить внимание на преимущества HRUD
Типовые механизмы верстки
Использует стандартные механизмы разметки (html+js вместо xml).
Возможность полной переработки готовых форм
В HRUD упрощенно создание специфических интерфейсных
решений под конкретные бизнес-задачи и адаптация готовых компонент.
HRUD дает доступ к исходнику шаблона любой компоненты, и возможность
создать свой, локальный, вариант формы любого ранее созданного компонента.
Упрощена интеграция с JS|CSS
Встраивание готовых js-компонент - это целевая функция фреймворка.
Допускается генерация интерфейса в «runtime»
Можно создавать автогенерируемые по метаданным формы просмотра и редактирования,
работать с html-структурами, не существующими в compile-time.