两边都使用 REST。PHP/Python REST 服务器端。GWT 客户端。
不要使用 GWT-RPC。
下面给出了 Java-java REST 的指导方针,但是还有离开服务器端 Java 的余地。它解释了为什么 REST 是合适的。
http://h2g2java.blessedgeek.com/2011/11/gwt-with-jax-rs-aka-rpcrest-part-0.html。
REST 是一个行业成熟的模式(谷歌、雅虎,实际上每一个稳定的机构都部署了 REST 服务)。
REST 被抽象为 HTTP 级别的数据结构。哪些 Java、PHP 和 Python 已经建立了库来遵守以确保 DTO 完整性。
通信层(最后一层)。它应该使用泛型???
不理解问题或问题存在的原因。只需使用 REST 模式为服务器和客户端之间的非同质语言以及 HTTP 请求/响应提供完整性。
如果您在后端使用 Java,则无法避免使用泛型。泛型保存代码。但是广泛使用泛型需要程序员具有同样广泛的视觉能力来可视化泛型。如果您的后端是 PHP 或 Python,是否有 PHP 的泛型?Python泛型?还不如留在 Java 领域或 C# 领域,忘记无 Java 服务提供商。
你的意思是DTO多态性吗?在建立服务之前不要尝试多态性或决定它。然后,如果您真的看到需要,那么自适应地并敏捷地将多态性引入您的 DTO。但是尽量避免它,因为使用 JSON 数据交换,它在服务器和客户端之间变得相当混乱。特别是如果他们不说相同的编程语言。
如果你问的是 HTTP 级别的泛型?我不知道任何框架,不是 SOAP,不是 REST,您可以在其中使用 XML 或 JSON 携带的泛型。有没有?泛型?
服务层?休息。
请求缓存?在每个适当的机会缓存。为所有会话(如菜单、菜单/下拉框选项、标签等)的通用和静态项目提供服务提供商缓存查询结果。缓存您的历史记录和地点。
在 GWT 端缓存记录,以便前进/后退按钮不会触发无意的查询。使用 MVP 模式和历史来管理可能触发重新显示信息的历史遍历。
如果您正在谈论统一信息抽象,您应该使用 JAX-RS 开始您的项目以定义/测试 API 并执行数据抽象。不执行任何业务逻辑。
然后,一旦定义了 HTTP 级别的 API 和 DTO,将服务器端转换为使用您选择的语言以继续编写更复杂的代码。
顺便说一句,我不挖掘您的术语“后端”。
我们通常将术语客户端用于服务消费者,服务器端用于服务提供者,后端用于数据存储库/持久性访问,中间层或中间件用于提供数学/科学/图形分析/综合所需的干预/辅助软件.
如果我们的术语不一致,我可能回答错了这个问题。