Как лучше всего спроектировать "платформо-независимый" GWT-сервер?

Как лучше всего спроектировать архитектуру Java-сервера, который взаимодействует с клиентским GWT-приложением, но при этом правильно реагирует на различные другие клиентские запросы с других платформ? В частности, я хотел бы использовать один и тот же слой сервлетов для ответа не только на мое GWT-приложение, но и на соответствующие приложения для iOS и Android.

Первый подход, о котором я подумал, заключался в реализации клиентского слоя GWT с использованием "RequestBuilder", а не обычных сервисных интерфейсов методов RPC. Используя этот подход, я мог бы написать общие сервлеты, которые отвечали бы на HTTP-запросы в RESTful манере, обрабатывая переменные, закодированные в чем-то вроде JSON или XML. Хотя это могло бы работать, было бы несколько трудоемко кодировать и декодировать мои объекты/параметры в JSON как на клиенте, так и на сервере, особенно когда RPC предоставляет такое элегантное решение.

Другой подход (который я считаю лучшим) заключается в том, чтобы узнать спецификацию, которую Google использует для сериализации и десериализации вызовов методов RPC, и реализовать некую библиотеку, которая делает то же самое для iOS (на Objective-C) и Android. Проблема в том, что мне не удалось найти хорошую документацию по этому стандарту кодирования, а также библиотеки, реализующие его для iOS или Android (хотя я нашел нечто подобное для PHP на www.gwtphp.com).

Может ли кто-нибудь направить меня в сторону спецификации того, как GWT сериализует/десериализует свои объекты или, еще лучше, библиотек для iOS и/или Android, реализующих интерфейсы RPC?

5
задан depthfirstdesigner 13 January 2012 в 22:02
поделиться