Пример использования GWT RPC. Часть 1
 

Пример использования GWT RPC. Часть 1

2 сентября 2014 8:00 Категории: Перевод

Продолжаем серию переводов про мощный java фреймворк Google Web Toolkit.

Эта статья является продолжением переводов оригинальной документации по Google Web Toolkit. И как я уже писал ранее в статье GWT для начинающих, подготовка к работе все предложения наклонным шрифтом являются моим отступлением от оригинала.

Оригинал статьи можно найти тут.

В определенный момент большинству приложений на GWT понадобится общение с серверной частью и GWT предлагает несколько способов общения с сервером. Например, вы можете использовать RPC(Remote Procedure Calls), в рамках которого вы сможете прозрачно обращаться к Java сервлетам и фреймворк сам будет заботиться о низкоуровневых деталях, таких как сериализация объектов, например. Кроме того, вы сможете использовать клиентские HTTP классы, чтобы отправлять свои HTTP запросы.

Серверный код

Все, что происходит на вашем веб-сервере, называется серверной работой/обработкой. Когда приложение работает в браузере пользователя, необходимо взаимодействовать с сервером(например, загружать или сохранять данные), делать HTTP запросы по сети с помощью удаленного вызова процедур(RPC). Пока работает RPC, сервер выполняет ваш серверный код.

GWT предоставляет механизм RPC в java-приложениях для обеспечения доступа к серверным ресурсам. Этот механизм включает  в себя генератор эффективного клиентского и серверного кода для сериализации объектов по сети с использованием отложенного связывания.

Совет: хоть GWT и переделывает клиентский Java в Javascript, но в серверный Java байт-код GWT не вмешивается. Поэтому на сервере вы можете спокойно использовать любую библиотеку для Java.

GWT не ограничивает вас только в одном механизме RPC или среде разработки. Вы можете свободно интегрироваться с другими механизмами RPC, такими как JSON с использованием GWT посредством RequestBuilder класса, JSNI методы или сторонние библиотеки.

Вызов удаленных процедур (RPC)

Главным различием между приложениями AJAX и обычными HTML является то, что для приложения AJAX не нужна новая HTML страница, приложение работает без перезагрузки текущей страницы. Потому что AJAX приложения работают больше, как приложения в браузере, и им не нужно получать новый HTML код с сервера, чтобы обновить пользовательский интерфейс. Однако, как и всем клиент-серверным приложениями, приложениям на AJAX необходимо получать данные с сервера, когда они работают. Этот механизм взаимодействия с сервером называется созданием удаленного вызова процедур (remote procedure call — RPC), также иногда его называют вызовом сервера (Server call). GWT RPC делает простым для клиента и для сервера передачу туда и обратно java объектов по HTTP протоколу. При правильном использовании RPC вы сможете создавать всю логику пользовательского интерфейса, в результате чего повысится производительность приложения и повысится пропускная способность, снизится нагрузка ни сервер.

Серверный код, который вызывается из клиента, часто называют службами (service). А процесс удаленного вызова процедуры называют вызовом службы.

RPC диаграмма взаимодействия

В этом разделе приведены основные части, необходимые для вызова служб. Каждая служба имеет семейство вспомогательных интерфейсов и классов. Некоторые из этих классов, например прокси-сервис, автоматически генерируются и вы вообще никогда не узнаете, что они существуют.Шаблон вспомогательных классов одинаковый для каждой службы, которую вы выполняете, поэтому советую ознакомиться с терминологией и целью каждого слоя в процессе обработки вызова сервера. Если вы знакомы с традиционным механизмом удаленного вызова процедур (RPC), то вы уже знаете большинство из этих терминов.

Продолжение: Пример использования GWT RPC. Часть 2