¿Cuál es la mejor manera de diseñar una arquitectura de servidor Java que interactúa con una aplicación GWT del lado del cliente, pero también responde correctamente a varias otras solicitudes de clientes de otras plataformas? Específicamente, me gustaría usar la misma capa de servlet para responder no solo a mi aplicación GWT, sino a las aplicaciones iOS y Android correspondientes.¿Cuál es la mejor manera de diseñar un servidor GWT "independiente de la plataforma"?
El primer enfoque que pensé sería implementar la capa de cliente GWT utilizando "RequestBuilder" en lugar de las interfaces de servicio de método RPC habituales. Usando este enfoque, pude codificar los servlets genéricos que responden a las solicitudes HTTP de manera RESTful mediante el procesamiento de variables codificadas en algo como JSON o XML. Aunque esto funcionaría, sería un poco laborioso tener que codificar y decodificar mis objetos/parámetros en JSON tanto en el cliente como en el servidor, especialmente cuando RPC proporcionaba una solución tan elegante.
El otro enfoque (que creo que es mejor), sería encontrar la especificación que Google utiliza para serializar y deserializar sus llamadas al método RPC e implementar algún tipo de biblioteca que haga lo mismo para iOS (en Objective-C) y Android. El problema es que no he podido encontrar buena documentación sobre este estándar de codificación, ni he encontrado bibliotecas que lo implementen para iOS o Android (aunque encontré algo así para PHP en www.gwtphp.com).
¿Alguien podría dirigirme hacia una especificación de cómo GWT serializa/deserializa sus objetos o, mejor aún, bibliotecas para iOS y/o Android que implementan interfaces RPC?
Gracias por las recomendaciones sobre la serialización JSON. – depthfirstdesigner