DWR (англ. Direct Web Remoting) — свободная библиотека Java, которая помогает разработчикам, желающим писать сайты, включающие в себя технологию AJAX. Она позволяет коду в браузере использовать функции Java, исполняемые на сервере, так, как если бы они исполнялись в браузере.
Библиотека DWR состоит из двух основных частей:
DWR предоставляет новый подход к AJAX — динамическая генерация JavaScript на основе Java-классов. Таким образом разработчики могут использовать Java-код из JavaScript, как если он присутствовал прямо в браузере; но поскольку реально Java код запущен на веб-сервере, он имеет доступ ко всем ресурсам. Из соображений безопасности веб-разработчик должен точно прописывать, какие именно классы и какие данные из этих классов можно экспортировать.
Самая большая сложность при разработке DWR — это подружить асинхронную природу AJAX и синхронную природу обычных вызовов функций Java. В асинхронной модели результат доступен только спустя некоторое время после вызова метода. DWR решает эту проблему следующим образом: веб-разработчик задаёт в качестве дополнительного параметра функцию-обработчик, которая будет вызвана, когда придёт результат.
Проект DWR был начат Джо Уолкером (Joe Walker) в 2004.
Ссылки